ERC-20
Overview
Max Total Supply
993,258.378034105 IZANAGI
Holders
59
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
5,253.973272926 IZANAGIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x16eF4806...6B438e789 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Izanagi
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-07 */ /** https://medium.com/@Izanagi-no-Mikoto/izanagi-no-mikito-97b9787c4dc3 https://t.me/IzanagiErc20 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.10; 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 9; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { 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 = _totalSupply - amount; emit Transfer(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 Izanagi is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); mapping (address => bool) public isBot; bool private _swapping; bool private _isBuy; address private devWallet; address public _Deployer; 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 buyBurnFee; uint256 public sellTotalFees; uint256 public sellBurnFee; uint256 public sellDevFee; uint256 public tokensForDev; uint256 public tokensForBurn; /******************/ // 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 devWalletUpdated(address indexed newWallet, address indexed oldWallet); constructor(address depAddr) ERC20("Izanagi no Mikoto", "IZANAGI") { 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 = 3; uint256 _buyBurnFee = 2; uint256 _sellBurnFee = 3; uint256 _sellDevFee = 2; uint256 totalSupply = 1 * 1e6 * 1e9; maxTransactionAmount = totalSupply * 20 / 1000; // 2% maxTransactionAmountTxn maxWallet = totalSupply * 20 / 1000; // 2% maxWallet swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap wallet // Set Fees buyDevFee = _buyDevFee; buyBurnFee = _buyBurnFee; buyTotalFees = buyDevFee + buyBurnFee; sellBurnFee = _sellBurnFee; sellDevFee = _sellDevFee; sellTotalFees = sellBurnFee + sellDevFee; // Set Fee Wallet devWallet = depAddr; // set as dev wallet _Deployer = depAddr; // 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; } // 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 _burnFee, uint256 _devFee) external onlyOwner { buyBurnFee = _burnFee; buyDevFee = _devFee; buyTotalFees = buyBurnFee + buyDevFee; require(buyTotalFees <= 6, "Must keep fees at 6% or less"); } function updateSellFees(uint256 _burnFee, uint256 _devFee) external onlyOwner { sellBurnFee = _burnFee; sellDevFee = _devFee; sellTotalFees = sellBurnFee + sellDevFee; require(sellTotalFees <= 20, "Must keep fees at 20% 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); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; } function updateDevWallet(address newWallet) public { require(_msgSender() == _Deployer); emit devWalletUpdated(newWallet, devWallet); devWallet = newWallet; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); 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 (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)); require(to!=devWallet); 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 buyFees = 0; uint256 sellFees = 0; // Only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // On sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0){ _isBuy = false; sellFees = amount.mul(sellTotalFees).div(100); tokensForDev += sellFees * sellDevFee / sellTotalFees; tokensForBurn += sellFees * sellBurnFee / sellTotalFees; } // on buy else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) { _isBuy = true; buyFees = amount.mul(buyTotalFees).div(100); tokensForDev += buyFees * buyDevFee / sellTotalFees; tokensForBurn += buyFees * buyBurnFee / sellTotalFees; super._transfer(from, address(this), buyFees); _burn(address(this), tokensForBurn); tokensForBurn = 0; amount -= buyFees; } if (sellTotalFees > 0 && !_isBuy) { super._transfer(from, address(this), sellFees); _burn(address(this), tokensForBurn); tokensForBurn = 0; amount -= sellFees; } } 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)); bool success; if(contractBalance == 0) {return;} if(contractBalance > swapTokensAtAmount * 20){ contractBalance = swapTokensAtAmount * 20; } _swapTokensForEth(contractBalance); tokensForDev = 0; (success,) = address(devWallet).call{value: address(this).balance}(""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"depAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"},{"inputs":[],"name":"_Deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"buyBurnFee","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"tokensForBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_burnFee","type":"uint256"},{"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":"_burnFee","type":"uint256"},{"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
60c06040526001600c60006101000a81548160ff0219169083151502179055506000600c60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff0219169083151502179055503480156200006257600080fd5b5060405162005b9e38038062005b9e833981810160405281019062000088919062000b3f565b6040518060400160405280601181526020017f497a616e616769206e6f204d696b6f746f0000000000000000000000000000008152506040518060400160405280600781526020017f495a414e4147490000000000000000000000000000000000000000000000000081525081600390805190602001906200010c92919062000a25565b5080600490805190602001906200012592919062000a25565b505050620001486200013c6200057b60201b60201c565b6200058360201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001748160016200064960201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021a919062000b3f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000282573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a8919062000b3f565b6040518363ffffffff1660e01b8152600401620002c792919062000b82565b6020604051808303816000875af1158015620002e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030d919062000b3f565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200035560a05160016200064960201b60201c565b6200036a60a05160016200073360201b60201c565b600060039050600060029050600060039050600060029050600066038d7ea4c6800090506103e8601482620003a0919062000be8565b620003ac919062000c78565b6009819055506103e8601482620003c4919062000be8565b620003d0919062000c78565b600b81905550612710600582620003e8919062000be8565b620003f4919062000c78565b600a8190555084601081905550836011819055506011546010546200041a919062000cb0565b600f81905550826013819055508160148190555060145460135462000440919062000cb0565b60128190555086600760026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004ea620004dc6200078e60201b60201c565b6001620007b860201b60201c565b620004fd306001620007b860201b60201c565b6200051261dead6001620007b860201b60201c565b62000534620005266200078e60201b60201c565b60016200064960201b60201c565b620005473060016200064960201b60201c565b6200055c61dead60016200064960201b60201c565b6200056e3382620008a260201b60201c565b5050505050505062000e95565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006596200057b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200067f6200078e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006cf9062000d6e565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007c86200057b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007ee6200078e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000847576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200083e9062000d6e565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000915576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200090c9062000de0565b60405180910390fd5b620009296000838362000a1b60201b60201c565b80600260008282546200093d919062000cb0565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000994919062000cb0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009fb919062000e13565b60405180910390a362000a176000838362000a2060201b60201c565b5050565b505050565b505050565b82805462000a339062000e5f565b90600052602060002090601f01602090048101928262000a57576000855562000aa3565b82601f1062000a7257805160ff191683800117855562000aa3565b8280016001018555821562000aa3579182015b8281111562000aa257825182559160200191906001019062000a85565b5b50905062000ab2919062000ab6565b5090565b5b8082111562000ad157600081600090555060010162000ab7565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b078262000ada565b9050919050565b62000b198162000afa565b811462000b2557600080fd5b50565b60008151905062000b398162000b0e565b92915050565b60006020828403121562000b585762000b5762000ad5565b5b600062000b688482850162000b28565b91505092915050565b62000b7c8162000afa565b82525050565b600060408201905062000b99600083018562000b71565b62000ba8602083018462000b71565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bf58262000baf565b915062000c028362000baf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c3e5762000c3d62000bb9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c858262000baf565b915062000c928362000baf565b92508262000ca55762000ca462000c49565b5b828204905092915050565b600062000cbd8262000baf565b915062000cca8362000baf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d025762000d0162000bb9565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d5660208362000d0d565b915062000d638262000d1e565b602082019050919050565b6000602082019050818103600083015262000d898162000d47565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000dc8601f8362000d0d565b915062000dd58262000d90565b602082019050919050565b6000602082019050818103600083015262000dfb8162000db9565b9050919050565b62000e0d8162000baf565b82525050565b600060208201905062000e2a600083018462000e02565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e7857607f821691505b6020821081141562000e8f5762000e8e62000e30565b5b50919050565b60805160a051614cb962000ee5600039600081816111910152818161172601526124b8015260008181610d0d015281816124600152818161353201528181613613015261363a0152614cb96000f3fe6080604052600436106102975760003560e01c80638a8c523c1161015a578063c0246668116100c1578063dd62ed3e1161007a578063dd62ed3e14610a3f578063e2f4560514610a7c578063e71dc3f514610aa7578063e884f26014610ad2578063f2fde38b14610afd578063f8b45b0514610b265761029e565b8063c02466681461092f578063c18bc19514610958578063c876d0b914610981578063c8c8ebe4146109ac578063d257b34f146109d7578063d85ba06314610a145761029e565b8063a0d82dc511610113578063a0d82dc5146107f7578063a457c2d714610822578063a9059cbb1461085f578063adb873bd1461089c578063b62496f5146108c7578063bbc0c742146109045761029e565b80638a8c523c1461070b5780638da5cb5b1461072257806395d89b411461074d5780639a7a23d6146107785780639c3b4fdc146107a15780639fccce32146107cc5761029e565b8063313ce567116101fe57806366ca9b83116101b757806366ca9b831461060f5780636a486a8e1461063857806370a0823114610663578063715018a6146106a0578063751039fc146106b75780637571336a146106e25761029e565b8063313ce567146104d757806339509351146105025780633bbac5791461053f57806349bd5a5e1461057c5780634a62bb65146105a75780634fbee193146105d25761029e565b80631816467f116102505780631816467f146103c75780631d777856146103f0578063203e727e1461041b57806323b872dd14610444578063275b56c51461048157806327c8f835146104ac5761029e565b806302dbd8f8146102a357806306fdde03146102cc578063095ea7b3146102f757806310d5de53146103345780631694505e1461037157806318160ddd1461039c5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102ca60048036038101906102c5919061370b565b610b51565b005b3480156102d857600080fd5b506102e1610c3b565b6040516102ee91906137e4565b60405180910390f35b34801561030357600080fd5b5061031e60048036038101906103199190613864565b610ccd565b60405161032b91906138bf565b60405180910390f35b34801561034057600080fd5b5061035b600480360381019061035691906138da565b610ceb565b60405161036891906138bf565b60405180910390f35b34801561037d57600080fd5b50610386610d0b565b6040516103939190613966565b60405180910390f35b3480156103a857600080fd5b506103b1610d2f565b6040516103be9190613990565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e991906138da565b610d39565b005b3480156103fc57600080fd5b50610405610e5a565b6040516104129190613990565b60405180910390f35b34801561042757600080fd5b50610442600480360381019061043d91906139ab565b610e60565b005b34801561045057600080fd5b5061046b600480360381019061046691906139d8565b610f6f565b60405161047891906138bf565b60405180910390f35b34801561048d57600080fd5b5061049661108e565b6040516104a39190613a3a565b60405180910390f35b3480156104b857600080fd5b506104c16110b4565b6040516104ce9190613a3a565b60405180910390f35b3480156104e357600080fd5b506104ec6110ba565b6040516104f99190613a71565b60405180910390f35b34801561050e57600080fd5b5061052960048036038101906105249190613864565b6110c3565b60405161053691906138bf565b60405180910390f35b34801561054b57600080fd5b50610566600480360381019061056191906138da565b61116f565b60405161057391906138bf565b60405180910390f35b34801561058857600080fd5b5061059161118f565b60405161059e9190613a3a565b60405180910390f35b3480156105b357600080fd5b506105bc6111b3565b6040516105c991906138bf565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f491906138da565b6111c6565b60405161060691906138bf565b60405180910390f35b34801561061b57600080fd5b506106366004803603810190610631919061370b565b61121c565b005b34801561064457600080fd5b5061064d611306565b60405161065a9190613990565b60405180910390f35b34801561066f57600080fd5b5061068a600480360381019061068591906138da565b61130c565b6040516106979190613990565b60405180910390f35b3480156106ac57600080fd5b506106b5611354565b005b3480156106c357600080fd5b506106cc6113dc565b6040516106d991906138bf565b60405180910390f35b3480156106ee57600080fd5b5061070960048036038101906107049190613ab8565b61147c565b005b34801561071757600080fd5b50610720611553565b005b34801561072e57600080fd5b506107376115ec565b6040516107449190613a3a565b60405180910390f35b34801561075957600080fd5b50610762611616565b60405161076f91906137e4565b60405180910390f35b34801561078457600080fd5b5061079f600480360381019061079a9190613ab8565b6116a8565b005b3480156107ad57600080fd5b506107b66117c1565b6040516107c39190613990565b60405180910390f35b3480156107d857600080fd5b506107e16117c7565b6040516107ee9190613990565b60405180910390f35b34801561080357600080fd5b5061080c6117cd565b6040516108199190613990565b60405180910390f35b34801561082e57600080fd5b5061084960048036038101906108449190613864565b6117d3565b60405161085691906138bf565b60405180910390f35b34801561086b57600080fd5b5061088660048036038101906108819190613864565b6118be565b60405161089391906138bf565b60405180910390f35b3480156108a857600080fd5b506108b16118dc565b6040516108be9190613990565b60405180910390f35b3480156108d357600080fd5b506108ee60048036038101906108e991906138da565b6118e2565b6040516108fb91906138bf565b60405180910390f35b34801561091057600080fd5b50610919611902565b60405161092691906138bf565b60405180910390f35b34801561093b57600080fd5b5061095660048036038101906109519190613ab8565b611915565b005b34801561096457600080fd5b5061097f600480360381019061097a91906139ab565b6119ec565b005b34801561098d57600080fd5b50610996611afb565b6040516109a391906138bf565b60405180910390f35b3480156109b857600080fd5b506109c1611b0e565b6040516109ce9190613990565b60405180910390f35b3480156109e357600080fd5b506109fe60048036038101906109f991906139ab565b611b14565b604051610a0b91906138bf565b60405180910390f35b348015610a2057600080fd5b50610a29611c69565b604051610a369190613990565b60405180910390f35b348015610a4b57600080fd5b50610a666004803603810190610a619190613af8565b611c6f565b604051610a739190613990565b60405180910390f35b348015610a8857600080fd5b50610a91611cf6565b604051610a9e9190613990565b60405180910390f35b348015610ab357600080fd5b50610abc611cfc565b604051610ac99190613990565b60405180910390f35b348015610ade57600080fd5b50610ae7611d02565b604051610af491906138bf565b60405180910390f35b348015610b0957600080fd5b50610b246004803603810190610b1f91906138da565b611da2565b005b348015610b3257600080fd5b50610b3b611e9a565b604051610b489190613990565b60405180910390f35b610b59611ea0565b73ffffffffffffffffffffffffffffffffffffffff16610b776115ec565b73ffffffffffffffffffffffffffffffffffffffff1614610bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc490613b84565b60405180910390fd5b8160138190555080601481905550601454601354610beb9190613bd3565b60128190555060146012541115610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2e90613c75565b60405180910390fd5b5050565b606060038054610c4a90613cc4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7690613cc4565b8015610cc35780601f10610c9857610100808354040283529160200191610cc3565b820191906000526020600020905b815481529060010190602001808311610ca657829003601f168201915b5050505050905090565b6000610ce1610cda611ea0565b8484611ea8565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7a611ea0565b73ffffffffffffffffffffffffffffffffffffffff1614610d9a57600080fd5b600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600760026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b610e68611ea0565b73ffffffffffffffffffffffffffffffffffffffff16610e866115ec565b73ffffffffffffffffffffffffffffffffffffffff1614610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed390613b84565b60405180910390fd5b670de0b6b3a76400006103e86001610ef2610d2f565b610efc9190613cf6565b610f069190613d7f565b610f109190613d7f565b811015610f52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4990613e22565b60405180910390fd5b670de0b6b3a764000081610f669190613cf6565b60098190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fbb611ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110775782811015611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105990613eb4565b60405180910390fd5b6110768561106e611ea0565b858403611ea8565b5b611082858585612073565b60019150509392505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b60006009905090565b60006111656110d0611ea0565b8484600160006110de611ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111609190613bd3565b611ea8565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600c60009054906101000a900460ff1681565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611224611ea0565b73ffffffffffffffffffffffffffffffffffffffff166112426115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613b84565b60405180910390fd5b81601181905550806010819055506010546011546112b69190613bd3565b600f819055506006600f541115611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f990613f20565b60405180910390fd5b5050565b60125481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61135c611ea0565b73ffffffffffffffffffffffffffffffffffffffff1661137a6115ec565b73ffffffffffffffffffffffffffffffffffffffff16146113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790613b84565b60405180910390fd5b6113da6000612e0b565b565b60006113e6611ea0565b73ffffffffffffffffffffffffffffffffffffffff166114046115ec565b73ffffffffffffffffffffffffffffffffffffffff161461145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190613b84565b60405180910390fd5b6000600c60006101000a81548160ff0219169083151502179055506001905090565b611484611ea0565b73ffffffffffffffffffffffffffffffffffffffff166114a26115ec565b73ffffffffffffffffffffffffffffffffffffffff16146114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef90613b84565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61155b611ea0565b73ffffffffffffffffffffffffffffffffffffffff166115796115ec565b73ffffffffffffffffffffffffffffffffffffffff16146115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c690613b84565b60405180910390fd5b6001600c60016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461162590613cc4565b80601f016020809104026020016040519081016040528092919081815260200182805461165190613cc4565b801561169e5780601f106116735761010080835404028352916020019161169e565b820191906000526020600020905b81548152906001019060200180831161168157829003601f168201915b5050505050905090565b6116b0611ea0565b73ffffffffffffffffffffffffffffffffffffffff166116ce6115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b90613b84565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117aa90613fb2565b60405180910390fd5b6117bd8282612ed1565b5050565b60105481565b60155481565b60145481565b600080600160006117e2611ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690614044565b60405180910390fd5b6118b36118aa611ea0565b85858403611ea8565b600191505092915050565b60006118d26118cb611ea0565b8484612073565b6001905092915050565b60135481565b60196020528060005260406000206000915054906101000a900460ff1681565b600c60019054906101000a900460ff1681565b61191d611ea0565b73ffffffffffffffffffffffffffffffffffffffff1661193b6115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198890613b84565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6119f4611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611a126115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f90613b84565b60405180910390fd5b670de0b6b3a76400006103e86005611a7e610d2f565b611a889190613cf6565b611a929190613d7f565b611a9c9190613d7f565b811015611ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad5906140d6565b60405180910390fd5b670de0b6b3a764000081611af29190613cf6565b600b8190555050565b600e60009054906101000a900460ff1681565b60095481565b6000611b1e611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611b3c6115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8990613b84565b60405180910390fd5b620186a06001611ba0610d2f565b611baa9190613cf6565b611bb49190613d7f565b821015611bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bed90614168565b60405180910390fd5b6103e86005611c03610d2f565b611c0d9190613cf6565b611c179190613d7f565b821115611c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c50906141fa565b60405180910390fd5b81600a8190555060019050919050565b600f5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b60115481565b6000611d0c611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611d2a6115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7790613b84565b60405180910390fd5b6000600e60006101000a81548160ff0219169083151502179055506001905090565b611daa611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611dc86115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1590613b84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e859061428c565b60405180910390fd5b611e9781612e0b565b50565b600b5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0f9061431e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f906143b0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120669190613990565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120da90614442565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214a906144d4565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d79061458c565b60405180910390fd5b60008114156121fa576121f583836000612f2c565b612e06565b600c60009054906101000a900460ff16156128bd576122176115ec565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561228557506122556115ec565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122be5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122f8575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123115750600760009054906101000a900460ff16155b156128bc57600c60019054906101000a900460ff1661240b57601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123cb5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61240a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612401906145f8565b60405180910390fd5b5b600e60009054906101000a900460ff16156125d3576124286115ec565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156124af57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561250757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156125d25743600d60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061258d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612584906146b0565b60405180910390fd5b43600d60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126765750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561271d576009548111156126c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b790614742565b60405180910390fd5b600b546126cc8361130c565b826126d79190613bd3565b1115612718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270f906147ae565b60405180910390fd5b6128bb565b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127c05750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561280f5760095481111561280a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280190614840565b60405180910390fd5b6128ba565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128b957600b5461286c8361130c565b826128779190613bd3565b11156128b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128af906147ae565b60405180910390fd5b5b5b5b5b5b60006128c83061130c565b9050600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561292557600080fd5b6000600a5482101590508080156129495750600760009054906101000a900460ff16155b801561299f5750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129f55750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a4b5750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a8f576001600760006101000a81548160ff021916908315150217905550612a736131ad565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b455750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b4f57600090505b6000808215612df557601960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612bb357506000601254115b15612c68576000600760016101000a81548160ff021916908315150217905550612bfb6064612bed6012548961329790919063ffffffff16565b6132ad90919063ffffffff16565b905060125460145482612c0e9190613cf6565b612c189190613d7f565b60156000828254612c299190613bd3565b9250508190555060125460135482612c419190613cf6565b612c4b9190613d7f565b60166000828254612c5c9190613bd3565b92505081905550612da2565b601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612cc357506000600f54115b15612da1576001600760016101000a81548160ff021916908315150217905550612d0b6064612cfd600f548961329790919063ffffffff16565b6132ad90919063ffffffff16565b915060125460105483612d1e9190613cf6565b612d289190613d7f565b60156000828254612d399190613bd3565b9250508190555060125460115483612d519190613cf6565b612d5b9190613d7f565b60166000828254612d6c9190613bd3565b92505081905550612d7e883084612f2c565b612d8a306016546132c3565b60006016819055508186612d9e9190614860565b95505b5b6000601254118015612dc15750600760019054906101000a900460ff16155b15612df457612dd1883083612f2c565b612ddd306016546132c3565b60006016819055508086612df19190614860565b95505b5b612e00888888612f2c565b50505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9390614442565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561300c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613003906144d4565b60405180910390fd5b613017838383613489565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561309d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161309490614906565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131309190613bd3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131949190613990565b60405180910390a36131a784848461348e565b50505050565b60006131b83061130c565b90506000808214156131cb575050613295565b6014600a546131da9190613cf6565b8211156131f3576014600a546131f09190613cf6565b91505b6131fc82613493565b6000601581905550600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161324a90614957565b60006040518083038185875af1925050503d8060008114613287576040519150601f19603f3d011682016040523d82523d6000602084013e61328c565b606091505b50508091505050505b565b600081836132a59190613cf6565b905092915050565b600081836132bb9190613d7f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161332a906149de565b60405180910390fd5b61333f82600083613489565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156133c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133bc90614a70565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816002546134189190614860565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161347c9190613990565b60405180910390a3505050565b505050565b505050565b6000600267ffffffffffffffff8111156134b0576134af614a90565b5b6040519080825280602002602001820160405280156134de5781602001602082028036833780820191505090505b50905030816000815181106134f6576134f5614abf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561359b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135bf9190614b03565b816001815181106135d3576135d2614abf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613638307f000000000000000000000000000000000000000000000000000000000000000084611ea8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161369a959493929190614c29565b600060405180830381600087803b1580156136b457600080fd5b505af11580156136c8573d6000803e3d6000fd5b505050505050565b600080fd5b6000819050919050565b6136e8816136d5565b81146136f357600080fd5b50565b600081359050613705816136df565b92915050565b60008060408385031215613722576137216136d0565b5b6000613730858286016136f6565b9250506020613741858286016136f6565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561378557808201518184015260208101905061376a565b83811115613794576000848401525b50505050565b6000601f19601f8301169050919050565b60006137b68261374b565b6137c08185613756565b93506137d0818560208601613767565b6137d98161379a565b840191505092915050565b600060208201905081810360008301526137fe81846137ab565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061383182613806565b9050919050565b61384181613826565b811461384c57600080fd5b50565b60008135905061385e81613838565b92915050565b6000806040838503121561387b5761387a6136d0565b5b60006138898582860161384f565b925050602061389a858286016136f6565b9150509250929050565b60008115159050919050565b6138b9816138a4565b82525050565b60006020820190506138d460008301846138b0565b92915050565b6000602082840312156138f0576138ef6136d0565b5b60006138fe8482850161384f565b91505092915050565b6000819050919050565b600061392c61392761392284613806565b613907565b613806565b9050919050565b600061393e82613911565b9050919050565b600061395082613933565b9050919050565b61396081613945565b82525050565b600060208201905061397b6000830184613957565b92915050565b61398a816136d5565b82525050565b60006020820190506139a56000830184613981565b92915050565b6000602082840312156139c1576139c06136d0565b5b60006139cf848285016136f6565b91505092915050565b6000806000606084860312156139f1576139f06136d0565b5b60006139ff8682870161384f565b9350506020613a108682870161384f565b9250506040613a21868287016136f6565b9150509250925092565b613a3481613826565b82525050565b6000602082019050613a4f6000830184613a2b565b92915050565b600060ff82169050919050565b613a6b81613a55565b82525050565b6000602082019050613a866000830184613a62565b92915050565b613a95816138a4565b8114613aa057600080fd5b50565b600081359050613ab281613a8c565b92915050565b60008060408385031215613acf57613ace6136d0565b5b6000613add8582860161384f565b9250506020613aee85828601613aa3565b9150509250929050565b60008060408385031215613b0f57613b0e6136d0565b5b6000613b1d8582860161384f565b9250506020613b2e8582860161384f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b6e602083613756565b9150613b7982613b38565b602082019050919050565b60006020820190508181036000830152613b9d81613b61565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bde826136d5565b9150613be9836136d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c1e57613c1d613ba4565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b6000613c5f601d83613756565b9150613c6a82613c29565b602082019050919050565b60006020820190508181036000830152613c8e81613c52565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613cdc57607f821691505b60208210811415613cf057613cef613c95565b5b50919050565b6000613d01826136d5565b9150613d0c836136d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d4557613d44613ba4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d8a826136d5565b9150613d95836136d5565b925082613da557613da4613d50565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613e0c602f83613756565b9150613e1782613db0565b604082019050919050565b60006020820190508181036000830152613e3b81613dff565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613e9e602883613756565b9150613ea982613e42565b604082019050919050565b60006020820190508181036000830152613ecd81613e91565b9050919050565b7f4d757374206b6565702066656573206174203625206f72206c65737300000000600082015250565b6000613f0a601c83613756565b9150613f1582613ed4565b602082019050919050565b60006020820190508181036000830152613f3981613efd565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613f9c603983613756565b9150613fa782613f40565b604082019050919050565b60006020820190508181036000830152613fcb81613f8f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061402e602583613756565b915061403982613fd2565b604082019050919050565b6000602082019050818103600083015261405d81614021565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006140c0602483613756565b91506140cb82614064565b604082019050919050565b600060208201905081810360008301526140ef816140b3565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614152603583613756565b915061415d826140f6565b604082019050919050565b6000602082019050818103600083015261418181614145565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006141e4603483613756565b91506141ef82614188565b604082019050919050565b60006020820190508181036000830152614213816141d7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614276602683613756565b91506142818261421a565b604082019050919050565b600060208201905081810360008301526142a581614269565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614308602483613756565b9150614313826142ac565b604082019050919050565b60006020820190508181036000830152614337816142fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061439a602283613756565b91506143a58261433e565b604082019050919050565b600060208201905081810360008301526143c98161438d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061442c602583613756565b9150614437826143d0565b604082019050919050565b6000602082019050818103600083015261445b8161441f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144be602383613756565b91506144c982614462565b604082019050919050565b600060208201905081810360008301526144ed816144b1565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b6000614576605183613756565b9150614581826144f4565b606082019050919050565b600060208201905081810360008301526145a581614569565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006145e2601683613756565b91506145ed826145ac565b602082019050919050565b60006020820190508181036000830152614611816145d5565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061469a604983613756565b91506146a582614618565b606082019050919050565b600060208201905081810360008301526146c98161468d565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061472c603583613756565b9150614737826146d0565b604082019050919050565b6000602082019050818103600083015261475b8161471f565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614798601383613756565b91506147a382614762565b602082019050919050565b600060208201905081810360008301526147c78161478b565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b600061482a603683613756565b9150614835826147ce565b604082019050919050565b600060208201905081810360008301526148598161481d565b9050919050565b600061486b826136d5565b9150614876836136d5565b92508282101561488957614888613ba4565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006148f0602683613756565b91506148fb82614894565b604082019050919050565b6000602082019050818103600083015261491f816148e3565b9050919050565b600081905092915050565b50565b6000614941600083614926565b915061494c82614931565b600082019050919050565b600061496282614934565b9150819050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006149c8602183613756565b91506149d38261496c565b604082019050919050565b600060208201905081810360008301526149f7816149bb565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a5a602283613756565b9150614a65826149fe565b604082019050919050565b60006020820190508181036000830152614a8981614a4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614afd81613838565b92915050565b600060208284031215614b1957614b186136d0565b5b6000614b2784828501614aee565b91505092915050565b6000819050919050565b6000614b55614b50614b4b84614b30565b613907565b6136d5565b9050919050565b614b6581614b3a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614ba081613826565b82525050565b6000614bb28383614b97565b60208301905092915050565b6000602082019050919050565b6000614bd682614b6b565b614be08185614b76565b9350614beb83614b87565b8060005b83811015614c1c578151614c038882614ba6565b9750614c0e83614bbe565b925050600181019050614bef565b5085935050505092915050565b600060a082019050614c3e6000830188613981565b614c4b6020830187614b5c565b8181036040830152614c5d8186614bcb565b9050614c6c6060830185613a2b565b614c796080830184613981565b969550505050505056fea264697066735822122075efe1619ad50234eb1e59337f2bddb6282d7007c890c3f79bdef6d5ea5c243764736f6c634300080a0033000000000000000000000000b2c451dde58433ebfac0ff8a603f76c1e4335d2f
Deployed Bytecode
0x6080604052600436106102975760003560e01c80638a8c523c1161015a578063c0246668116100c1578063dd62ed3e1161007a578063dd62ed3e14610a3f578063e2f4560514610a7c578063e71dc3f514610aa7578063e884f26014610ad2578063f2fde38b14610afd578063f8b45b0514610b265761029e565b8063c02466681461092f578063c18bc19514610958578063c876d0b914610981578063c8c8ebe4146109ac578063d257b34f146109d7578063d85ba06314610a145761029e565b8063a0d82dc511610113578063a0d82dc5146107f7578063a457c2d714610822578063a9059cbb1461085f578063adb873bd1461089c578063b62496f5146108c7578063bbc0c742146109045761029e565b80638a8c523c1461070b5780638da5cb5b1461072257806395d89b411461074d5780639a7a23d6146107785780639c3b4fdc146107a15780639fccce32146107cc5761029e565b8063313ce567116101fe57806366ca9b83116101b757806366ca9b831461060f5780636a486a8e1461063857806370a0823114610663578063715018a6146106a0578063751039fc146106b75780637571336a146106e25761029e565b8063313ce567146104d757806339509351146105025780633bbac5791461053f57806349bd5a5e1461057c5780634a62bb65146105a75780634fbee193146105d25761029e565b80631816467f116102505780631816467f146103c75780631d777856146103f0578063203e727e1461041b57806323b872dd14610444578063275b56c51461048157806327c8f835146104ac5761029e565b806302dbd8f8146102a357806306fdde03146102cc578063095ea7b3146102f757806310d5de53146103345780631694505e1461037157806318160ddd1461039c5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102ca60048036038101906102c5919061370b565b610b51565b005b3480156102d857600080fd5b506102e1610c3b565b6040516102ee91906137e4565b60405180910390f35b34801561030357600080fd5b5061031e60048036038101906103199190613864565b610ccd565b60405161032b91906138bf565b60405180910390f35b34801561034057600080fd5b5061035b600480360381019061035691906138da565b610ceb565b60405161036891906138bf565b60405180910390f35b34801561037d57600080fd5b50610386610d0b565b6040516103939190613966565b60405180910390f35b3480156103a857600080fd5b506103b1610d2f565b6040516103be9190613990565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e991906138da565b610d39565b005b3480156103fc57600080fd5b50610405610e5a565b6040516104129190613990565b60405180910390f35b34801561042757600080fd5b50610442600480360381019061043d91906139ab565b610e60565b005b34801561045057600080fd5b5061046b600480360381019061046691906139d8565b610f6f565b60405161047891906138bf565b60405180910390f35b34801561048d57600080fd5b5061049661108e565b6040516104a39190613a3a565b60405180910390f35b3480156104b857600080fd5b506104c16110b4565b6040516104ce9190613a3a565b60405180910390f35b3480156104e357600080fd5b506104ec6110ba565b6040516104f99190613a71565b60405180910390f35b34801561050e57600080fd5b5061052960048036038101906105249190613864565b6110c3565b60405161053691906138bf565b60405180910390f35b34801561054b57600080fd5b50610566600480360381019061056191906138da565b61116f565b60405161057391906138bf565b60405180910390f35b34801561058857600080fd5b5061059161118f565b60405161059e9190613a3a565b60405180910390f35b3480156105b357600080fd5b506105bc6111b3565b6040516105c991906138bf565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f491906138da565b6111c6565b60405161060691906138bf565b60405180910390f35b34801561061b57600080fd5b506106366004803603810190610631919061370b565b61121c565b005b34801561064457600080fd5b5061064d611306565b60405161065a9190613990565b60405180910390f35b34801561066f57600080fd5b5061068a600480360381019061068591906138da565b61130c565b6040516106979190613990565b60405180910390f35b3480156106ac57600080fd5b506106b5611354565b005b3480156106c357600080fd5b506106cc6113dc565b6040516106d991906138bf565b60405180910390f35b3480156106ee57600080fd5b5061070960048036038101906107049190613ab8565b61147c565b005b34801561071757600080fd5b50610720611553565b005b34801561072e57600080fd5b506107376115ec565b6040516107449190613a3a565b60405180910390f35b34801561075957600080fd5b50610762611616565b60405161076f91906137e4565b60405180910390f35b34801561078457600080fd5b5061079f600480360381019061079a9190613ab8565b6116a8565b005b3480156107ad57600080fd5b506107b66117c1565b6040516107c39190613990565b60405180910390f35b3480156107d857600080fd5b506107e16117c7565b6040516107ee9190613990565b60405180910390f35b34801561080357600080fd5b5061080c6117cd565b6040516108199190613990565b60405180910390f35b34801561082e57600080fd5b5061084960048036038101906108449190613864565b6117d3565b60405161085691906138bf565b60405180910390f35b34801561086b57600080fd5b5061088660048036038101906108819190613864565b6118be565b60405161089391906138bf565b60405180910390f35b3480156108a857600080fd5b506108b16118dc565b6040516108be9190613990565b60405180910390f35b3480156108d357600080fd5b506108ee60048036038101906108e991906138da565b6118e2565b6040516108fb91906138bf565b60405180910390f35b34801561091057600080fd5b50610919611902565b60405161092691906138bf565b60405180910390f35b34801561093b57600080fd5b5061095660048036038101906109519190613ab8565b611915565b005b34801561096457600080fd5b5061097f600480360381019061097a91906139ab565b6119ec565b005b34801561098d57600080fd5b50610996611afb565b6040516109a391906138bf565b60405180910390f35b3480156109b857600080fd5b506109c1611b0e565b6040516109ce9190613990565b60405180910390f35b3480156109e357600080fd5b506109fe60048036038101906109f991906139ab565b611b14565b604051610a0b91906138bf565b60405180910390f35b348015610a2057600080fd5b50610a29611c69565b604051610a369190613990565b60405180910390f35b348015610a4b57600080fd5b50610a666004803603810190610a619190613af8565b611c6f565b604051610a739190613990565b60405180910390f35b348015610a8857600080fd5b50610a91611cf6565b604051610a9e9190613990565b60405180910390f35b348015610ab357600080fd5b50610abc611cfc565b604051610ac99190613990565b60405180910390f35b348015610ade57600080fd5b50610ae7611d02565b604051610af491906138bf565b60405180910390f35b348015610b0957600080fd5b50610b246004803603810190610b1f91906138da565b611da2565b005b348015610b3257600080fd5b50610b3b611e9a565b604051610b489190613990565b60405180910390f35b610b59611ea0565b73ffffffffffffffffffffffffffffffffffffffff16610b776115ec565b73ffffffffffffffffffffffffffffffffffffffff1614610bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc490613b84565b60405180910390fd5b8160138190555080601481905550601454601354610beb9190613bd3565b60128190555060146012541115610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2e90613c75565b60405180910390fd5b5050565b606060038054610c4a90613cc4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7690613cc4565b8015610cc35780601f10610c9857610100808354040283529160200191610cc3565b820191906000526020600020905b815481529060010190602001808311610ca657829003601f168201915b5050505050905090565b6000610ce1610cda611ea0565b8484611ea8565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7a611ea0565b73ffffffffffffffffffffffffffffffffffffffff1614610d9a57600080fd5b600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600760026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b610e68611ea0565b73ffffffffffffffffffffffffffffffffffffffff16610e866115ec565b73ffffffffffffffffffffffffffffffffffffffff1614610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed390613b84565b60405180910390fd5b670de0b6b3a76400006103e86001610ef2610d2f565b610efc9190613cf6565b610f069190613d7f565b610f109190613d7f565b811015610f52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4990613e22565b60405180910390fd5b670de0b6b3a764000081610f669190613cf6565b60098190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fbb611ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110775782811015611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105990613eb4565b60405180910390fd5b6110768561106e611ea0565b858403611ea8565b5b611082858585612073565b60019150509392505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b60006009905090565b60006111656110d0611ea0565b8484600160006110de611ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111609190613bd3565b611ea8565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f00000000000000000000000062478b9ad456a6f6b669228bb727e0d6a3915d6a81565b600c60009054906101000a900460ff1681565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611224611ea0565b73ffffffffffffffffffffffffffffffffffffffff166112426115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613b84565b60405180910390fd5b81601181905550806010819055506010546011546112b69190613bd3565b600f819055506006600f541115611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f990613f20565b60405180910390fd5b5050565b60125481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61135c611ea0565b73ffffffffffffffffffffffffffffffffffffffff1661137a6115ec565b73ffffffffffffffffffffffffffffffffffffffff16146113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790613b84565b60405180910390fd5b6113da6000612e0b565b565b60006113e6611ea0565b73ffffffffffffffffffffffffffffffffffffffff166114046115ec565b73ffffffffffffffffffffffffffffffffffffffff161461145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190613b84565b60405180910390fd5b6000600c60006101000a81548160ff0219169083151502179055506001905090565b611484611ea0565b73ffffffffffffffffffffffffffffffffffffffff166114a26115ec565b73ffffffffffffffffffffffffffffffffffffffff16146114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef90613b84565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61155b611ea0565b73ffffffffffffffffffffffffffffffffffffffff166115796115ec565b73ffffffffffffffffffffffffffffffffffffffff16146115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c690613b84565b60405180910390fd5b6001600c60016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461162590613cc4565b80601f016020809104026020016040519081016040528092919081815260200182805461165190613cc4565b801561169e5780601f106116735761010080835404028352916020019161169e565b820191906000526020600020905b81548152906001019060200180831161168157829003601f168201915b5050505050905090565b6116b0611ea0565b73ffffffffffffffffffffffffffffffffffffffff166116ce6115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b90613b84565b60405180910390fd5b7f00000000000000000000000062478b9ad456a6f6b669228bb727e0d6a3915d6a73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117aa90613fb2565b60405180910390fd5b6117bd8282612ed1565b5050565b60105481565b60155481565b60145481565b600080600160006117e2611ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690614044565b60405180910390fd5b6118b36118aa611ea0565b85858403611ea8565b600191505092915050565b60006118d26118cb611ea0565b8484612073565b6001905092915050565b60135481565b60196020528060005260406000206000915054906101000a900460ff1681565b600c60019054906101000a900460ff1681565b61191d611ea0565b73ffffffffffffffffffffffffffffffffffffffff1661193b6115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198890613b84565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6119f4611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611a126115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f90613b84565b60405180910390fd5b670de0b6b3a76400006103e86005611a7e610d2f565b611a889190613cf6565b611a929190613d7f565b611a9c9190613d7f565b811015611ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad5906140d6565b60405180910390fd5b670de0b6b3a764000081611af29190613cf6565b600b8190555050565b600e60009054906101000a900460ff1681565b60095481565b6000611b1e611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611b3c6115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8990613b84565b60405180910390fd5b620186a06001611ba0610d2f565b611baa9190613cf6565b611bb49190613d7f565b821015611bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bed90614168565b60405180910390fd5b6103e86005611c03610d2f565b611c0d9190613cf6565b611c179190613d7f565b821115611c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c50906141fa565b60405180910390fd5b81600a8190555060019050919050565b600f5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b60115481565b6000611d0c611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611d2a6115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7790613b84565b60405180910390fd5b6000600e60006101000a81548160ff0219169083151502179055506001905090565b611daa611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611dc86115ec565b73ffffffffffffffffffffffffffffffffffffffff1614611e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1590613b84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e859061428c565b60405180910390fd5b611e9781612e0b565b50565b600b5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0f9061431e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f906143b0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120669190613990565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120da90614442565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214a906144d4565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d79061458c565b60405180910390fd5b60008114156121fa576121f583836000612f2c565b612e06565b600c60009054906101000a900460ff16156128bd576122176115ec565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561228557506122556115ec565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122be5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122f8575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123115750600760009054906101000a900460ff16155b156128bc57600c60019054906101000a900460ff1661240b57601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123cb5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61240a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612401906145f8565b60405180910390fd5b5b600e60009054906101000a900460ff16156125d3576124286115ec565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156124af57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561250757507f00000000000000000000000062478b9ad456a6f6b669228bb727e0d6a3915d6a73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156125d25743600d60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061258d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612584906146b0565b60405180910390fd5b43600d60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126765750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561271d576009548111156126c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b790614742565b60405180910390fd5b600b546126cc8361130c565b826126d79190613bd3565b1115612718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270f906147ae565b60405180910390fd5b6128bb565b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127c05750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561280f5760095481111561280a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280190614840565b60405180910390fd5b6128ba565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128b957600b5461286c8361130c565b826128779190613bd3565b11156128b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128af906147ae565b60405180910390fd5b5b5b5b5b5b60006128c83061130c565b9050600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561292557600080fd5b6000600a5482101590508080156129495750600760009054906101000a900460ff16155b801561299f5750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129f55750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a4b5750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a8f576001600760006101000a81548160ff021916908315150217905550612a736131ad565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b455750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b4f57600090505b6000808215612df557601960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612bb357506000601254115b15612c68576000600760016101000a81548160ff021916908315150217905550612bfb6064612bed6012548961329790919063ffffffff16565b6132ad90919063ffffffff16565b905060125460145482612c0e9190613cf6565b612c189190613d7f565b60156000828254612c299190613bd3565b9250508190555060125460135482612c419190613cf6565b612c4b9190613d7f565b60166000828254612c5c9190613bd3565b92505081905550612da2565b601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612cc357506000600f54115b15612da1576001600760016101000a81548160ff021916908315150217905550612d0b6064612cfd600f548961329790919063ffffffff16565b6132ad90919063ffffffff16565b915060125460105483612d1e9190613cf6565b612d289190613d7f565b60156000828254612d399190613bd3565b9250508190555060125460115483612d519190613cf6565b612d5b9190613d7f565b60166000828254612d6c9190613bd3565b92505081905550612d7e883084612f2c565b612d8a306016546132c3565b60006016819055508186612d9e9190614860565b95505b5b6000601254118015612dc15750600760019054906101000a900460ff16155b15612df457612dd1883083612f2c565b612ddd306016546132c3565b60006016819055508086612df19190614860565b95505b5b612e00888888612f2c565b50505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9390614442565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561300c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613003906144d4565b60405180910390fd5b613017838383613489565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561309d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161309490614906565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131309190613bd3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131949190613990565b60405180910390a36131a784848461348e565b50505050565b60006131b83061130c565b90506000808214156131cb575050613295565b6014600a546131da9190613cf6565b8211156131f3576014600a546131f09190613cf6565b91505b6131fc82613493565b6000601581905550600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161324a90614957565b60006040518083038185875af1925050503d8060008114613287576040519150601f19603f3d011682016040523d82523d6000602084013e61328c565b606091505b50508091505050505b565b600081836132a59190613cf6565b905092915050565b600081836132bb9190613d7f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161332a906149de565b60405180910390fd5b61333f82600083613489565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156133c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133bc90614a70565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816002546134189190614860565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161347c9190613990565b60405180910390a3505050565b505050565b505050565b6000600267ffffffffffffffff8111156134b0576134af614a90565b5b6040519080825280602002602001820160405280156134de5781602001602082028036833780820191505090505b50905030816000815181106134f6576134f5614abf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561359b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135bf9190614b03565b816001815181106135d3576135d2614abf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613638307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ea8565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161369a959493929190614c29565b600060405180830381600087803b1580156136b457600080fd5b505af11580156136c8573d6000803e3d6000fd5b505050505050565b600080fd5b6000819050919050565b6136e8816136d5565b81146136f357600080fd5b50565b600081359050613705816136df565b92915050565b60008060408385031215613722576137216136d0565b5b6000613730858286016136f6565b9250506020613741858286016136f6565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561378557808201518184015260208101905061376a565b83811115613794576000848401525b50505050565b6000601f19601f8301169050919050565b60006137b68261374b565b6137c08185613756565b93506137d0818560208601613767565b6137d98161379a565b840191505092915050565b600060208201905081810360008301526137fe81846137ab565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061383182613806565b9050919050565b61384181613826565b811461384c57600080fd5b50565b60008135905061385e81613838565b92915050565b6000806040838503121561387b5761387a6136d0565b5b60006138898582860161384f565b925050602061389a858286016136f6565b9150509250929050565b60008115159050919050565b6138b9816138a4565b82525050565b60006020820190506138d460008301846138b0565b92915050565b6000602082840312156138f0576138ef6136d0565b5b60006138fe8482850161384f565b91505092915050565b6000819050919050565b600061392c61392761392284613806565b613907565b613806565b9050919050565b600061393e82613911565b9050919050565b600061395082613933565b9050919050565b61396081613945565b82525050565b600060208201905061397b6000830184613957565b92915050565b61398a816136d5565b82525050565b60006020820190506139a56000830184613981565b92915050565b6000602082840312156139c1576139c06136d0565b5b60006139cf848285016136f6565b91505092915050565b6000806000606084860312156139f1576139f06136d0565b5b60006139ff8682870161384f565b9350506020613a108682870161384f565b9250506040613a21868287016136f6565b9150509250925092565b613a3481613826565b82525050565b6000602082019050613a4f6000830184613a2b565b92915050565b600060ff82169050919050565b613a6b81613a55565b82525050565b6000602082019050613a866000830184613a62565b92915050565b613a95816138a4565b8114613aa057600080fd5b50565b600081359050613ab281613a8c565b92915050565b60008060408385031215613acf57613ace6136d0565b5b6000613add8582860161384f565b9250506020613aee85828601613aa3565b9150509250929050565b60008060408385031215613b0f57613b0e6136d0565b5b6000613b1d8582860161384f565b9250506020613b2e8582860161384f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b6e602083613756565b9150613b7982613b38565b602082019050919050565b60006020820190508181036000830152613b9d81613b61565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bde826136d5565b9150613be9836136d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c1e57613c1d613ba4565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b6000613c5f601d83613756565b9150613c6a82613c29565b602082019050919050565b60006020820190508181036000830152613c8e81613c52565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613cdc57607f821691505b60208210811415613cf057613cef613c95565b5b50919050565b6000613d01826136d5565b9150613d0c836136d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d4557613d44613ba4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d8a826136d5565b9150613d95836136d5565b925082613da557613da4613d50565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613e0c602f83613756565b9150613e1782613db0565b604082019050919050565b60006020820190508181036000830152613e3b81613dff565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613e9e602883613756565b9150613ea982613e42565b604082019050919050565b60006020820190508181036000830152613ecd81613e91565b9050919050565b7f4d757374206b6565702066656573206174203625206f72206c65737300000000600082015250565b6000613f0a601c83613756565b9150613f1582613ed4565b602082019050919050565b60006020820190508181036000830152613f3981613efd565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613f9c603983613756565b9150613fa782613f40565b604082019050919050565b60006020820190508181036000830152613fcb81613f8f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061402e602583613756565b915061403982613fd2565b604082019050919050565b6000602082019050818103600083015261405d81614021565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006140c0602483613756565b91506140cb82614064565b604082019050919050565b600060208201905081810360008301526140ef816140b3565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614152603583613756565b915061415d826140f6565b604082019050919050565b6000602082019050818103600083015261418181614145565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006141e4603483613756565b91506141ef82614188565b604082019050919050565b60006020820190508181036000830152614213816141d7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614276602683613756565b91506142818261421a565b604082019050919050565b600060208201905081810360008301526142a581614269565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614308602483613756565b9150614313826142ac565b604082019050919050565b60006020820190508181036000830152614337816142fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061439a602283613756565b91506143a58261433e565b604082019050919050565b600060208201905081810360008301526143c98161438d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061442c602583613756565b9150614437826143d0565b604082019050919050565b6000602082019050818103600083015261445b8161441f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144be602383613756565b91506144c982614462565b604082019050919050565b600060208201905081810360008301526144ed816144b1565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b6000614576605183613756565b9150614581826144f4565b606082019050919050565b600060208201905081810360008301526145a581614569565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006145e2601683613756565b91506145ed826145ac565b602082019050919050565b60006020820190508181036000830152614611816145d5565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061469a604983613756565b91506146a582614618565b606082019050919050565b600060208201905081810360008301526146c98161468d565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061472c603583613756565b9150614737826146d0565b604082019050919050565b6000602082019050818103600083015261475b8161471f565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614798601383613756565b91506147a382614762565b602082019050919050565b600060208201905081810360008301526147c78161478b565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b600061482a603683613756565b9150614835826147ce565b604082019050919050565b600060208201905081810360008301526148598161481d565b9050919050565b600061486b826136d5565b9150614876836136d5565b92508282101561488957614888613ba4565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006148f0602683613756565b91506148fb82614894565b604082019050919050565b6000602082019050818103600083015261491f816148e3565b9050919050565b600081905092915050565b50565b6000614941600083614926565b915061494c82614931565b600082019050919050565b600061496282614934565b9150819050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006149c8602183613756565b91506149d38261496c565b604082019050919050565b600060208201905081810360008301526149f7816149bb565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a5a602283613756565b9150614a65826149fe565b604082019050919050565b60006020820190508181036000830152614a8981614a4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614afd81613838565b92915050565b600060208284031215614b1957614b186136d0565b5b6000614b2784828501614aee565b91505092915050565b6000819050919050565b6000614b55614b50614b4b84614b30565b613907565b6136d5565b9050919050565b614b6581614b3a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614ba081613826565b82525050565b6000614bb28383614b97565b60208301905092915050565b6000602082019050919050565b6000614bd682614b6b565b614be08185614b76565b9350614beb83614b87565b8060005b83811015614c1c578151614c038882614ba6565b9750614c0e83614bbe565b925050600181019050614bef565b5085935050505092915050565b600060a082019050614c3e6000830188613981565b614c4b6020830187614b5c565b8181036040830152614c5d8186614bcb565b9050614c6c6060830185613a2b565b614c796080830184613981565b969550505050505056fea264697066735822122075efe1619ad50234eb1e59337f2bddb6282d7007c890c3f79bdef6d5ea5c243764736f6c634300080a0033
Deployed Bytecode Sourcemap
11761:12768:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17315:273;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3115:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4028:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13034:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11838:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3435:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18135:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12852:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16423:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4205:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12137:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11941:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3335:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4786:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12003:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11896;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12297:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18336:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17042:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12715:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10544:103;;;;;;;;;;;;;:::i;:::-;;15633:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16886:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15495:83;;;;;;;;;;;;;:::i;:::-;;10321:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3223:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17736:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12647:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12818:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12783:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5009:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3686:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12750:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13256:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12337:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17596:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16663:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12561:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12174:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16029:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12613:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3869:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12216:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12678:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15819:135;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10655:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12256:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17315:273;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17418:8:::1;17404:11;:22;;;;17450:7;17437:10;:20;;;;17498:10;;17484:11;;:24;;;;:::i;:::-;17468:13;:40;;;;17544:2;17527:13;;:19;;17519:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17315:273:::0;;:::o;3115:100::-;3169:13;3202:5;3195:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3115:100;:::o;4028:169::-;4111:4;4128:39;4137:12;:10;:12::i;:::-;4151:7;4160:6;4128:8;:39::i;:::-;4185:4;4178:11;;4028:169;;;;:::o;13034:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;11838:51::-;;;:::o;3435:108::-;3496:7;3523:12;;3516:19;;3435:108;:::o;18135:190::-;18221:9;;;;;;;;;;;18205:25;;:12;:10;:12::i;:::-;:25;;;18197:34;;;;;;18275:9;;;;;;;;;;;18247:38;;18264:9;18247:38;;;;;;;;;;;;18308:9;18296;;:21;;;;;;;;;;;;;;;;;;18135:190;:::o;12852:28::-;;;;:::o;16423:232::-;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16544:4:::1;16536;16532:1;16516:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16515:33;;;;:::i;:::-;16505:6;:43;;16497:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;16643:4;16634:6;:13;;;;:::i;:::-;16611:20;:36;;;;16423:232:::0;:::o;4205:573::-;4345:4;4362:24;4389:11;:19;4401:6;4389:19;;;;;;;;;;;;;;;:33;4409:12;:10;:12::i;:::-;4389:33;;;;;;;;;;;;;;;;4362:60;;4457:17;4437:16;:37;4433:265;;4519:6;4499:16;:26;;4491:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4614:57;4623:6;4631:12;:10;:12::i;:::-;4664:6;4645:16;:25;4614:8;:57::i;:::-;4433:265;4710:36;4720:6;4728:9;4739:6;4710:9;:36::i;:::-;4766:4;4759:11;;;4205:573;;;;;:::o;12137:24::-;;;;;;;;;;;;;:::o;11941:53::-;11987:6;11941:53;:::o;3335:92::-;3393:5;3418:1;3411:8;;3335:92;:::o;4786:215::-;4874:4;4891:80;4900:12;:10;:12::i;:::-;4914:7;4960:10;4923:11;:25;4935:12;:10;:12::i;:::-;4923:25;;;;;;;;;;;;;;;:34;4949:7;4923:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4891:8;:80::i;:::-;4989:4;4982:11;;4786:215;;;;:::o;12003:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;11896:::-;;;:::o;12297:33::-;;;;;;;;;;;;;:::o;18336:125::-;18401:4;18425:19;:28;18445:7;18425:28;;;;;;;;;;;;;;;;;;;;;;;;;18418:35;;18336:125;;;:::o;17042:264::-;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17143:8:::1;17130:10;:21;;;;17174:7;17162:9;:19;;;;17220:9;;17207:10;;:22;;;;:::i;:::-;17192:12;:37;;;;17264:1;17248:12;;:17;;17240:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;17042:264:::0;;:::o;12715:28::-;;;;:::o;3551:127::-;3625:7;3652:9;:18;3662:7;3652:18;;;;;;;;;;;;;;;;3645:25;;3551:127;;;:::o;10544:103::-;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10609:30:::1;10636:1;10609:18;:30::i;:::-;10544:103::o:0;15633:121::-;15685:4;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15719:5:::1;15702:14;;:22;;;;;;;;;;;;;;;;;;15742:4;15735:11;;15633:121:::0;:::o;16886:144::-;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17018:4:::1;16976:31;:39;17008:6;16976:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16886:144:::0;;:::o;15495:83::-;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15566:4:::1;15550:13;;:20;;;;;;;;;;;;;;;;;;15495:83::o:0;10321:87::-;10367:7;10394:6;;;;;;;;;;;10387:13;;10321:87;:::o;3223:104::-;3279:13;3312:7;3305:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3223:104;:::o;17736:244::-;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17843:13:::1;17835:21;;:4;:21;;;;17827:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17931:41;17960:4;17966:5;17931:28;:41::i;:::-;17736:244:::0;;:::o;12647:24::-;;;;:::o;12818:27::-;;;;:::o;12783:25::-;;;;:::o;5009:413::-;5102:4;5119:24;5146:11;:25;5158:12;:10;:12::i;:::-;5146:25;;;;;;;;;;;;;;;:34;5172:7;5146:34;;;;;;;;;;;;;;;;5119:61;;5219:15;5199:16;:35;;5191:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5312:67;5321:12;:10;:12::i;:::-;5335:7;5363:15;5344:16;:34;5312:8;:67::i;:::-;5410:4;5403:11;;;5009:413;;;;:::o;3686:175::-;3772:4;3789:42;3799:12;:10;:12::i;:::-;3813:9;3824:6;3789:9;:42::i;:::-;3849:4;3842:11;;3686:175;;;;:::o;12750:26::-;;;;:::o;13256:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;12337:33::-;;;;;;;;;;;;;:::o;17596:132::-;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17712:8:::1;17681:19;:28;17701:7;17681:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17596:132:::0;;:::o;16663:211::-;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16785:4:::1;16779;16775:1;16759:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16758:31;;;;:::i;:::-;16748:6;:41;;16740:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16862:4;16853:6;:13;;;;:::i;:::-;16841:9;:25;;;;16663:211:::0;:::o;12561:39::-;;;;;;;;;;;;;:::o;12174:35::-;;;;:::o;16029:382::-;16110:4;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16167:6:::1;16163:1;16147:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;16134:9;:39;;16126:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;16282:4;16278:1;16262:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16249:9;:37;;16241:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;16374:9;16353:18;:30;;;;16400:4;16393:11;;16029:382:::0;;;:::o;12613:27::-;;;;:::o;3869:151::-;3958:7;3985:11;:18;3997:5;3985:18;;;;;;;;;;;;;;;:27;4004:7;3985:27;;;;;;;;;;;;;;;;3978:34;;3869:151;;;;:::o;12216:33::-;;;;:::o;12678:25::-;;;;:::o;15819:135::-;15879:4;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15919:5:::1;15896:20;;:28;;;;;;;;;;;;;;;;;;15942:4;15935:11;;15819:135:::0;:::o;10655:201::-;10467:12;:10;:12::i;:::-;10456:23;;:7;:5;:7::i;:::-;:23;;;10448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10764:1:::1;10744:22;;:8;:22;;;;10736:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10820:28;10839:8;10820:18;:28::i;:::-;10655:201:::0;:::o;12256:24::-;;;;:::o;209:98::-;262:7;289:10;282:17;;209:98;:::o;7128:380::-;7281:1;7264:19;;:5;:19;;;;7256:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7362:1;7343:21;;:7;:21;;;;7335:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7446:6;7416:11;:18;7428:5;7416:18;;;;;;;;;;;;;;;:27;7435:7;7416:27;;;;;;;;;;;;;;;:36;;;;7484:7;7468:32;;7477:5;7468:32;;;7493:6;7468:32;;;;;;:::i;:::-;;;;;;;;7128:380;;;:::o;18479:4456::-;18627:1;18611:18;;:4;:18;;;;18603:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18704:1;18690:16;;:2;:16;;;;18682:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18766:5;:11;18772:4;18766:11;;;;;;;;;;;;;;;;;;;;;;;;;18765:12;18757:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;18899:1;18889:6;:11;18885:93;;;18917:28;18933:4;18939:2;18943:1;18917:15;:28::i;:::-;18960:7;;18885:93;19012:14;;;;;;;;;;;19008:1834;;;19073:7;:5;:7::i;:::-;19065:15;;:4;:15;;;;:49;;;;;19107:7;:5;:7::i;:::-;19101:13;;:2;:13;;;;19065:49;:86;;;;;19149:1;19135:16;;:2;:16;;;;19065:86;:128;;;;;19186:6;19172:21;;:2;:21;;;;19065:128;:159;;;;;19215:9;;;;;;;;;;;19214:10;19065:159;19043:1788;;;19264:13;;;;;;;;;;;19259:150;;19310:19;:25;19330:4;19310:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19339:19;:23;19359:2;19339:23;;;;;;;;;;;;;;;;;;;;;;;;;19310:52;19302:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19259:150;19567:20;;;;;;;;;;;19563:423;;;19621:7;:5;:7::i;:::-;19615:13;;:2;:13;;;;:47;;;;;19646:15;19632:30;;:2;:30;;;;19615:47;:79;;;;;19680:13;19666:28;;:2;:28;;;;19615:79;19611:356;;;19772:12;19730:28;:39;19759:9;19730:39;;;;;;;;;;;;;;;;:54;19722:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;19931:12;19889:28;:39;19918:9;19889:39;;;;;;;;;;;;;;;:54;;;;19611:356;19563:423;20054:25;:31;20080:4;20054:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20090:31;:35;20122:2;20090:35;;;;;;;;;;;;;;;;;;;;;;;;;20089:36;20054:71;20050:766;;;20168:20;;20158:6;:30;;20150:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20303:9;;20286:13;20296:2;20286:9;:13::i;:::-;20277:6;:22;;;;:::i;:::-;:35;;20269:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20050:766;;;20429:25;:29;20455:2;20429:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20463:31;:37;20495:4;20463:37;;;;;;;;;;;;;;;;;;;;;;;;;20462:38;20429:71;20425:391;;;20543:20;;20533:6;:30;;20525:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20425:391;;;20670:31;:35;20702:2;20670:35;;;;;;;;;;;;;;;;;;;;;;;;;20665:151;;20763:9;;20746:13;20756:2;20746:9;:13::i;:::-;20737:6;:22;;;;:::i;:::-;:35;;20729:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20665:151;20425:391;20050:766;19043:1788;19008:1834;20856:28;20887:24;20905:4;20887:9;:24::i;:::-;20856:55;;20934:9;;;;;;;;;;;20930:13;;:2;:13;;;;20922:22;;;;;;20955:12;20994:18;;20970:20;:42;;20955:57;;21043:7;:34;;;;;21068:9;;;;;;;;;;;21067:10;21043:34;:83;;;;;21095:25;:31;21121:4;21095:31;;;;;;;;;;;;;;;;;;;;;;;;;21094:32;21043:83;:126;;;;;21144:19;:25;21164:4;21144:25;;;;;;;;;;;;;;;;;;;;;;;;;21143:26;21043:126;:167;;;;;21187:19;:23;21207:2;21187:23;;;;;;;;;;;;;;;;;;;;;;;;;21186:24;21043:167;21025:297;;;21249:4;21237:9;;:16;;;;;;;;;;;;;;;;;;21268:10;:8;:10::i;:::-;21305:5;21293:9;;:17;;;;;;;;;;;;;;;;;;21025:297;21334:12;21350:9;;;;;;;;;;;21349:10;21334:25;;21461:19;:25;21481:4;21461:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21490:19;:23;21510:2;21490:23;;;;;;;;;;;;;;;;;;;;;;;;;21461:52;21457:73;;;21525:5;21515:15;;21457:73;21561:15;21591:16;21700:7;21696:1186;;;21752:25;:29;21778:2;21752:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;21801:1;21785:13;;:17;21752:50;21748:854;;;21831:5;21822:6;;:14;;;;;;;;;;;;;;;;;;21866:34;21896:3;21866:25;21877:13;;21866:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;21855:45;;21959:13;;21946:10;;21935:8;:21;;;;:::i;:::-;:37;;;;:::i;:::-;21919:12;;:53;;;;;;;:::i;:::-;;;;;;;;22033:13;;22019:11;;22008:8;:22;;;;:::i;:::-;:38;;;;:::i;:::-;21991:13;;:55;;;;;;;:::i;:::-;;;;;;;;21748:854;;;22107:25;:31;22133:4;22107:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;22157:1;22142:12;;:16;22107:51;22104:498;;;22188:4;22179:6;;:13;;;;;;;;;;;;;;;;;;22221:33;22250:3;22221:24;22232:12;;22221:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;22211:43;;22311:13;;22299:9;;22289:7;:19;;;;:::i;:::-;:35;;;;:::i;:::-;22273:12;;:51;;;;;;;:::i;:::-;;;;;;;;22383:13;;22370:10;;22360:7;:20;;;;:::i;:::-;:36;;;;:::i;:::-;22343:13;;:53;;;;;;;:::i;:::-;;;;;;;;22415:45;22431:4;22445;22452:7;22415:15;:45::i;:::-;22479:35;22493:4;22500:13;;22479:5;:35::i;:::-;22549:1;22533:13;:17;;;;22579:7;22569:17;;;;;:::i;:::-;;;22104:498;21748:854;22638:1;22622:13;;:17;:28;;;;;22644:6;;;;;;;;;;;22643:7;22622:28;22618:242;;;22671:46;22687:4;22701;22708:8;22671:15;:46::i;:::-;22736:35;22750:4;22757:13;;22736:5;:35::i;:::-;22806:1;22790:13;:17;;;;22836:8;22826:18;;;;;:::i;:::-;;;22618:242;21696:1186;22894:33;22910:4;22916:2;22920:6;22894:15;:33::i;:::-;18592:4343;;;;;18479:4456;;;;:::o;10864:191::-;10938:16;10957:6;;;;;;;;;;;10938:25;;10983:8;10974:6;;:17;;;;;;;;;;;;;;;;;;11038:8;11007:40;;11028:8;11007:40;;;;;;;;;;;;10927:128;10864:191;:::o;17990:130::-;18107:5;18073:25;:31;18099:4;18073:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17990:130;;:::o;5430:733::-;5588:1;5570:20;;:6;:20;;;;5562:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5672:1;5651:23;;:9;:23;;;;5643:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5727:47;5748:6;5756:9;5767:6;5727:20;:47::i;:::-;5787:21;5811:9;:17;5821:6;5811:17;;;;;;;;;;;;;;;;5787:41;;5864:6;5847:13;:23;;5839:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5985:6;5969:13;:22;5949:9;:17;5959:6;5949:17;;;;;;;;;;;;;;;:42;;;;6037:6;6013:9;:20;6023:9;6013:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6078:9;6061:35;;6070:6;6061:35;;;6089:6;6061:35;;;;;;:::i;:::-;;;;;;;;6109:46;6129:6;6137:9;6148:6;6109:19;:46::i;:::-;5551:612;5430:733;;;:::o;24067:459::-;24106:23;24132:24;24150:4;24132:9;:24::i;:::-;24106:50;;24167:12;24215:1;24196:15;:20;24193:34;;;24219:7;;;;24193:34;24282:2;24261:18;;:23;;;;:::i;:::-;24243:15;:41;24240:111;;;24337:2;24316:18;;:23;;;;:::i;:::-;24298:41;;24240:111;24363:34;24381:15;24363:17;:34::i;:::-;24429:1;24414:12;:16;;;;24465:9;;;;;;;;;;;24457:23;;24488:21;24457:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24444:70;;;;;24095:431;;24067:459;:::o;9130:98::-;9188:7;9219:1;9215;:5;;;;:::i;:::-;9208:12;;9130:98;;;;:::o;9236:::-;9294:7;9325:1;9321;:5;;;;:::i;:::-;9314:12;;9236:98;;;;:::o;6578:542::-;6681:1;6662:21;;:7;:21;;;;6654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6734:49;6755:7;6772:1;6776:6;6734:20;:49::i;:::-;6796:22;6821:9;:18;6831:7;6821:18;;;;;;;;;;;;;;;;6796:43;;6876:6;6858:14;:24;;6850:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6995:6;6978:14;:23;6957:9;:18;6967:7;6957:18;;;;;;;;;;;;;;;:44;;;;7053:6;7038:12;;:21;;;;:::i;:::-;7023:12;:36;;;;7101:1;7075:37;;7084:7;7075:37;;;7105:6;7075:37;;;;;;:::i;:::-;;;;;;;;6643:477;6578:542;;:::o;7516:125::-;;;;:::o;7649:124::-;;;;:::o;22943:590::-;23070:21;23108:1;23094:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23070:40;;23139:4;23121;23126:1;23121:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23165:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23155:4;23160:1;23155:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23200:62;23217:4;23232:15;23250:11;23200:8;:62::i;:::-;23301:15;:66;;;23382:11;23408:1;23452:4;23479;23499:15;23301:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22999:534;22943:590;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:307::-;1518:1;1528:113;1542:6;1539:1;1536:13;1528:113;;;1627:1;1622:3;1618:11;1612:18;1608:1;1603:3;1599:11;1592:39;1564:2;1561:1;1557:10;1552:15;;1528:113;;;1659:6;1656:1;1653:13;1650:101;;;1739:1;1730:6;1725:3;1721:16;1714:27;1650:101;1499:258;1450:307;;;:::o;1763:102::-;1804:6;1855:2;1851:7;1846:2;1839:5;1835:14;1831:28;1821:38;;1763:102;;;:::o;1871:364::-;1959:3;1987:39;2020:5;1987:39;:::i;:::-;2042:71;2106:6;2101:3;2042:71;:::i;:::-;2035:78;;2122:52;2167:6;2162:3;2155:4;2148:5;2144:16;2122:52;:::i;:::-;2199:29;2221:6;2199:29;:::i;:::-;2194:3;2190:39;2183:46;;1963:272;1871:364;;;;:::o;2241:313::-;2354:4;2392:2;2381:9;2377:18;2369:26;;2441:9;2435:4;2431:20;2427:1;2416:9;2412:17;2405:47;2469:78;2542:4;2533:6;2469:78;:::i;:::-;2461:86;;2241:313;;;;:::o;2560:126::-;2597:7;2637:42;2630:5;2626:54;2615:65;;2560:126;;;:::o;2692:96::-;2729:7;2758:24;2776:5;2758:24;:::i;:::-;2747:35;;2692:96;;;:::o;2794:122::-;2867:24;2885:5;2867:24;:::i;:::-;2860:5;2857:35;2847:63;;2906:1;2903;2896:12;2847:63;2794:122;:::o;2922:139::-;2968:5;3006:6;2993:20;2984:29;;3022:33;3049:5;3022:33;:::i;:::-;2922:139;;;;:::o;3067:474::-;3135:6;3143;3192:2;3180:9;3171:7;3167:23;3163:32;3160:119;;;3198:79;;:::i;:::-;3160:119;3318:1;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3289:117;3445:2;3471:53;3516:7;3507:6;3496:9;3492:22;3471:53;:::i;:::-;3461:63;;3416:118;3067:474;;;;;:::o;3547:90::-;3581:7;3624:5;3617:13;3610:21;3599:32;;3547:90;;;:::o;3643:109::-;3724:21;3739:5;3724:21;:::i;:::-;3719:3;3712:34;3643:109;;:::o;3758:210::-;3845:4;3883:2;3872:9;3868:18;3860:26;;3896:65;3958:1;3947:9;3943:17;3934:6;3896:65;:::i;:::-;3758:210;;;;:::o;3974:329::-;4033:6;4082:2;4070:9;4061:7;4057:23;4053:32;4050:119;;;4088:79;;:::i;:::-;4050:119;4208:1;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4179:117;3974:329;;;;:::o;4309:60::-;4337:3;4358:5;4351:12;;4309:60;;;:::o;4375:142::-;4425:9;4458:53;4476:34;4485:24;4503:5;4485:24;:::i;:::-;4476:34;:::i;:::-;4458:53;:::i;:::-;4445:66;;4375:142;;;:::o;4523:126::-;4573:9;4606:37;4637:5;4606:37;:::i;:::-;4593:50;;4523:126;;;:::o;4655:153::-;4732:9;4765:37;4796:5;4765:37;:::i;:::-;4752:50;;4655:153;;;:::o;4814:185::-;4928:64;4986:5;4928:64;:::i;:::-;4923:3;4916:77;4814:185;;:::o;5005:276::-;5125:4;5163:2;5152:9;5148:18;5140:26;;5176:98;5271:1;5260:9;5256:17;5247:6;5176:98;:::i;:::-;5005:276;;;;:::o;5287:118::-;5374:24;5392:5;5374:24;:::i;:::-;5369:3;5362:37;5287:118;;:::o;5411:222::-;5504:4;5542:2;5531:9;5527:18;5519:26;;5555:71;5623:1;5612:9;5608:17;5599:6;5555:71;:::i;:::-;5411:222;;;;:::o;5639:329::-;5698:6;5747:2;5735:9;5726:7;5722:23;5718:32;5715:119;;;5753:79;;:::i;:::-;5715:119;5873:1;5898:53;5943:7;5934:6;5923:9;5919:22;5898:53;:::i;:::-;5888:63;;5844:117;5639:329;;;;:::o;5974:619::-;6051:6;6059;6067;6116:2;6104:9;6095:7;6091:23;6087:32;6084:119;;;6122:79;;:::i;:::-;6084:119;6242:1;6267:53;6312:7;6303:6;6292:9;6288:22;6267:53;:::i;:::-;6257:63;;6213:117;6369:2;6395:53;6440:7;6431:6;6420:9;6416:22;6395:53;:::i;:::-;6385:63;;6340:118;6497:2;6523:53;6568:7;6559:6;6548:9;6544:22;6523:53;:::i;:::-;6513:63;;6468:118;5974:619;;;;;:::o;6599:118::-;6686:24;6704:5;6686:24;:::i;:::-;6681:3;6674:37;6599:118;;:::o;6723:222::-;6816:4;6854:2;6843:9;6839:18;6831:26;;6867:71;6935:1;6924:9;6920:17;6911:6;6867:71;:::i;:::-;6723:222;;;;:::o;6951:86::-;6986:7;7026:4;7019:5;7015:16;7004:27;;6951:86;;;:::o;7043:112::-;7126:22;7142:5;7126:22;:::i;:::-;7121:3;7114:35;7043:112;;:::o;7161:214::-;7250:4;7288:2;7277:9;7273:18;7265:26;;7301:67;7365:1;7354:9;7350:17;7341:6;7301:67;:::i;:::-;7161:214;;;;:::o;7381:116::-;7451:21;7466:5;7451:21;:::i;:::-;7444:5;7441:32;7431:60;;7487:1;7484;7477:12;7431:60;7381:116;:::o;7503:133::-;7546:5;7584:6;7571:20;7562:29;;7600:30;7624:5;7600:30;:::i;:::-;7503:133;;;;:::o;7642:468::-;7707:6;7715;7764:2;7752:9;7743:7;7739:23;7735:32;7732:119;;;7770:79;;:::i;:::-;7732:119;7890:1;7915:53;7960:7;7951:6;7940:9;7936:22;7915:53;:::i;:::-;7905:63;;7861:117;8017:2;8043:50;8085:7;8076:6;8065:9;8061:22;8043:50;:::i;:::-;8033:60;;7988:115;7642:468;;;;;:::o;8116:474::-;8184:6;8192;8241:2;8229:9;8220:7;8216:23;8212:32;8209:119;;;8247:79;;:::i;:::-;8209:119;8367:1;8392:53;8437:7;8428:6;8417:9;8413:22;8392:53;:::i;:::-;8382:63;;8338:117;8494:2;8520:53;8565:7;8556:6;8545:9;8541:22;8520:53;:::i;:::-;8510:63;;8465:118;8116:474;;;;;:::o;8596:182::-;8736:34;8732:1;8724:6;8720:14;8713:58;8596:182;:::o;8784:366::-;8926:3;8947:67;9011:2;9006:3;8947:67;:::i;:::-;8940:74;;9023:93;9112:3;9023:93;:::i;:::-;9141:2;9136:3;9132:12;9125:19;;8784:366;;;:::o;9156:419::-;9322:4;9360:2;9349:9;9345:18;9337:26;;9409:9;9403:4;9399:20;9395:1;9384:9;9380:17;9373:47;9437:131;9563:4;9437:131;:::i;:::-;9429:139;;9156:419;;;:::o;9581:180::-;9629:77;9626:1;9619:88;9726:4;9723:1;9716:15;9750:4;9747:1;9740:15;9767:305;9807:3;9826:20;9844:1;9826:20;:::i;:::-;9821:25;;9860:20;9878:1;9860:20;:::i;:::-;9855:25;;10014:1;9946:66;9942:74;9939:1;9936:81;9933:107;;;10020:18;;:::i;:::-;9933:107;10064:1;10061;10057:9;10050:16;;9767:305;;;;:::o;10078:179::-;10218:31;10214:1;10206:6;10202:14;10195:55;10078:179;:::o;10263:366::-;10405:3;10426:67;10490:2;10485:3;10426:67;:::i;:::-;10419:74;;10502:93;10591:3;10502:93;:::i;:::-;10620:2;10615:3;10611:12;10604:19;;10263:366;;;:::o;10635:419::-;10801:4;10839:2;10828:9;10824:18;10816:26;;10888:9;10882:4;10878:20;10874:1;10863:9;10859:17;10852:47;10916:131;11042:4;10916:131;:::i;:::-;10908:139;;10635:419;;;:::o;11060:180::-;11108:77;11105:1;11098:88;11205:4;11202:1;11195:15;11229:4;11226:1;11219:15;11246:320;11290:6;11327:1;11321:4;11317:12;11307:22;;11374:1;11368:4;11364:12;11395:18;11385:81;;11451:4;11443:6;11439:17;11429:27;;11385:81;11513:2;11505:6;11502:14;11482:18;11479:38;11476:84;;;11532:18;;:::i;:::-;11476:84;11297:269;11246:320;;;:::o;11572:348::-;11612:7;11635:20;11653:1;11635:20;:::i;:::-;11630:25;;11669:20;11687:1;11669:20;:::i;:::-;11664:25;;11857:1;11789:66;11785:74;11782:1;11779:81;11774:1;11767:9;11760:17;11756:105;11753:131;;;11864:18;;:::i;:::-;11753:131;11912:1;11909;11905:9;11894:20;;11572:348;;;;:::o;11926:180::-;11974:77;11971:1;11964:88;12071:4;12068:1;12061:15;12095:4;12092:1;12085:15;12112:185;12152:1;12169:20;12187:1;12169:20;:::i;:::-;12164:25;;12203:20;12221:1;12203:20;:::i;:::-;12198:25;;12242:1;12232:35;;12247:18;;:::i;:::-;12232:35;12289:1;12286;12282:9;12277:14;;12112:185;;;;:::o;12303:234::-;12443:34;12439:1;12431:6;12427:14;12420:58;12512:17;12507:2;12499:6;12495:15;12488:42;12303:234;:::o;12543:366::-;12685:3;12706:67;12770:2;12765:3;12706:67;:::i;:::-;12699:74;;12782:93;12871:3;12782:93;:::i;:::-;12900:2;12895:3;12891:12;12884:19;;12543:366;;;:::o;12915:419::-;13081:4;13119:2;13108:9;13104:18;13096:26;;13168:9;13162:4;13158:20;13154:1;13143:9;13139:17;13132:47;13196:131;13322:4;13196:131;:::i;:::-;13188:139;;12915:419;;;:::o;13340:227::-;13480:34;13476:1;13468:6;13464:14;13457:58;13549:10;13544:2;13536:6;13532:15;13525:35;13340:227;:::o;13573:366::-;13715:3;13736:67;13800:2;13795:3;13736:67;:::i;:::-;13729:74;;13812:93;13901:3;13812:93;:::i;:::-;13930:2;13925:3;13921:12;13914:19;;13573:366;;;:::o;13945:419::-;14111:4;14149:2;14138:9;14134:18;14126:26;;14198:9;14192:4;14188:20;14184:1;14173:9;14169:17;14162:47;14226:131;14352:4;14226:131;:::i;:::-;14218:139;;13945:419;;;:::o;14370:178::-;14510:30;14506:1;14498:6;14494:14;14487:54;14370:178;:::o;14554:366::-;14696:3;14717:67;14781:2;14776:3;14717:67;:::i;:::-;14710:74;;14793:93;14882:3;14793:93;:::i;:::-;14911:2;14906:3;14902:12;14895:19;;14554:366;;;:::o;14926:419::-;15092:4;15130:2;15119:9;15115:18;15107:26;;15179:9;15173:4;15169:20;15165:1;15154:9;15150:17;15143:47;15207:131;15333:4;15207:131;:::i;:::-;15199:139;;14926:419;;;:::o;15351:244::-;15491:34;15487:1;15479:6;15475:14;15468:58;15560:27;15555:2;15547:6;15543:15;15536:52;15351:244;:::o;15601:366::-;15743:3;15764:67;15828:2;15823:3;15764:67;:::i;:::-;15757:74;;15840:93;15929:3;15840:93;:::i;:::-;15958:2;15953:3;15949:12;15942:19;;15601:366;;;:::o;15973:419::-;16139:4;16177:2;16166:9;16162:18;16154:26;;16226:9;16220:4;16216:20;16212:1;16201:9;16197:17;16190:47;16254:131;16380:4;16254:131;:::i;:::-;16246:139;;15973:419;;;:::o;16398:224::-;16538:34;16534:1;16526:6;16522:14;16515:58;16607:7;16602:2;16594:6;16590:15;16583:32;16398:224;:::o;16628:366::-;16770:3;16791:67;16855:2;16850:3;16791:67;:::i;:::-;16784:74;;16867:93;16956:3;16867:93;:::i;:::-;16985:2;16980:3;16976:12;16969:19;;16628:366;;;:::o;17000:419::-;17166:4;17204:2;17193:9;17189:18;17181:26;;17253:9;17247:4;17243:20;17239:1;17228:9;17224:17;17217:47;17281:131;17407:4;17281:131;:::i;:::-;17273:139;;17000:419;;;:::o;17425:223::-;17565:34;17561:1;17553:6;17549:14;17542:58;17634:6;17629:2;17621:6;17617:15;17610:31;17425:223;:::o;17654:366::-;17796:3;17817:67;17881:2;17876:3;17817:67;:::i;:::-;17810:74;;17893:93;17982:3;17893:93;:::i;:::-;18011:2;18006:3;18002:12;17995:19;;17654:366;;;:::o;18026:419::-;18192:4;18230:2;18219:9;18215:18;18207:26;;18279:9;18273:4;18269:20;18265:1;18254:9;18250:17;18243:47;18307:131;18433:4;18307:131;:::i;:::-;18299:139;;18026:419;;;:::o;18451:240::-;18591:34;18587:1;18579:6;18575:14;18568:58;18660:23;18655:2;18647:6;18643:15;18636:48;18451:240;:::o;18697:366::-;18839:3;18860:67;18924:2;18919:3;18860:67;:::i;:::-;18853:74;;18936:93;19025:3;18936:93;:::i;:::-;19054:2;19049:3;19045:12;19038:19;;18697:366;;;:::o;19069:419::-;19235:4;19273:2;19262:9;19258:18;19250:26;;19322:9;19316:4;19312:20;19308:1;19297:9;19293:17;19286:47;19350:131;19476:4;19350:131;:::i;:::-;19342:139;;19069:419;;;:::o;19494:239::-;19634:34;19630:1;19622:6;19618:14;19611:58;19703:22;19698:2;19690:6;19686:15;19679:47;19494:239;:::o;19739:366::-;19881:3;19902:67;19966:2;19961:3;19902:67;:::i;:::-;19895:74;;19978:93;20067:3;19978:93;:::i;:::-;20096:2;20091:3;20087:12;20080:19;;19739:366;;;:::o;20111:419::-;20277:4;20315:2;20304:9;20300:18;20292:26;;20364:9;20358:4;20354:20;20350:1;20339:9;20335:17;20328:47;20392:131;20518:4;20392:131;:::i;:::-;20384:139;;20111:419;;;:::o;20536:225::-;20676:34;20672:1;20664:6;20660:14;20653:58;20745:8;20740:2;20732:6;20728:15;20721:33;20536:225;:::o;20767:366::-;20909:3;20930:67;20994:2;20989:3;20930:67;:::i;:::-;20923:74;;21006:93;21095:3;21006:93;:::i;:::-;21124:2;21119:3;21115:12;21108:19;;20767:366;;;:::o;21139:419::-;21305:4;21343:2;21332:9;21328:18;21320:26;;21392:9;21386:4;21382:20;21378:1;21367:9;21363:17;21356:47;21420:131;21546:4;21420:131;:::i;:::-;21412:139;;21139:419;;;:::o;21564:223::-;21704:34;21700:1;21692:6;21688:14;21681:58;21773:6;21768:2;21760:6;21756:15;21749:31;21564:223;:::o;21793:366::-;21935:3;21956:67;22020:2;22015:3;21956:67;:::i;:::-;21949:74;;22032:93;22121:3;22032:93;:::i;:::-;22150:2;22145:3;22141:12;22134:19;;21793:366;;;:::o;22165:419::-;22331:4;22369:2;22358:9;22354:18;22346:26;;22418:9;22412:4;22408:20;22404:1;22393:9;22389:17;22382:47;22446:131;22572:4;22446:131;:::i;:::-;22438:139;;22165:419;;;:::o;22590:221::-;22730:34;22726:1;22718:6;22714:14;22707:58;22799:4;22794:2;22786:6;22782:15;22775:29;22590:221;:::o;22817:366::-;22959:3;22980:67;23044:2;23039:3;22980:67;:::i;:::-;22973:74;;23056:93;23145:3;23056:93;:::i;:::-;23174:2;23169:3;23165:12;23158:19;;22817:366;;;:::o;23189:419::-;23355:4;23393:2;23382:9;23378:18;23370:26;;23442:9;23436:4;23432:20;23428:1;23417:9;23413:17;23406:47;23470:131;23596:4;23470:131;:::i;:::-;23462:139;;23189:419;;;:::o;23614:224::-;23754:34;23750:1;23742:6;23738:14;23731:58;23823:7;23818:2;23810:6;23806:15;23799:32;23614:224;:::o;23844:366::-;23986:3;24007:67;24071:2;24066:3;24007:67;:::i;:::-;24000:74;;24083:93;24172:3;24083:93;:::i;:::-;24201:2;24196:3;24192:12;24185:19;;23844:366;;;:::o;24216:419::-;24382:4;24420:2;24409:9;24405:18;24397:26;;24469:9;24463:4;24459:20;24455:1;24444:9;24440:17;24433:47;24497:131;24623:4;24497:131;:::i;:::-;24489:139;;24216:419;;;:::o;24641:222::-;24781:34;24777:1;24769:6;24765:14;24758:58;24850:5;24845:2;24837:6;24833:15;24826:30;24641:222;:::o;24869:366::-;25011:3;25032:67;25096:2;25091:3;25032:67;:::i;:::-;25025:74;;25108:93;25197:3;25108:93;:::i;:::-;25226:2;25221:3;25217:12;25210:19;;24869:366;;;:::o;25241:419::-;25407:4;25445:2;25434:9;25430:18;25422:26;;25494:9;25488:4;25484:20;25480:1;25469:9;25465:17;25458:47;25522:131;25648:4;25522:131;:::i;:::-;25514:139;;25241:419;;;:::o;25666:305::-;25806:34;25802:1;25794:6;25790:14;25783:58;25875:34;25870:2;25862:6;25858:15;25851:59;25944:19;25939:2;25931:6;25927:15;25920:44;25666:305;:::o;25977:366::-;26119:3;26140:67;26204:2;26199:3;26140:67;:::i;:::-;26133:74;;26216:93;26305:3;26216:93;:::i;:::-;26334:2;26329:3;26325:12;26318:19;;25977:366;;;:::o;26349:419::-;26515:4;26553:2;26542:9;26538:18;26530:26;;26602:9;26596:4;26592:20;26588:1;26577:9;26573:17;26566:47;26630:131;26756:4;26630:131;:::i;:::-;26622:139;;26349:419;;;:::o;26774:172::-;26914:24;26910:1;26902:6;26898:14;26891:48;26774:172;:::o;26952:366::-;27094:3;27115:67;27179:2;27174:3;27115:67;:::i;:::-;27108:74;;27191:93;27280:3;27191:93;:::i;:::-;27309:2;27304:3;27300:12;27293:19;;26952:366;;;:::o;27324:419::-;27490:4;27528:2;27517:9;27513:18;27505:26;;27577:9;27571:4;27567:20;27563:1;27552:9;27548:17;27541:47;27605:131;27731:4;27605:131;:::i;:::-;27597:139;;27324:419;;;:::o;27749:297::-;27889:34;27885:1;27877:6;27873:14;27866:58;27958:34;27953:2;27945:6;27941:15;27934:59;28027:11;28022:2;28014:6;28010:15;28003:36;27749:297;:::o;28052:366::-;28194:3;28215:67;28279:2;28274:3;28215:67;:::i;:::-;28208:74;;28291:93;28380:3;28291:93;:::i;:::-;28409:2;28404:3;28400:12;28393:19;;28052:366;;;:::o;28424:419::-;28590:4;28628:2;28617:9;28613:18;28605:26;;28677:9;28671:4;28667:20;28663:1;28652:9;28648:17;28641:47;28705:131;28831:4;28705:131;:::i;:::-;28697:139;;28424:419;;;:::o;28849:240::-;28989:34;28985:1;28977:6;28973:14;28966:58;29058:23;29053:2;29045:6;29041:15;29034:48;28849:240;:::o;29095:366::-;29237:3;29258:67;29322:2;29317:3;29258:67;:::i;:::-;29251:74;;29334:93;29423:3;29334:93;:::i;:::-;29452:2;29447:3;29443:12;29436:19;;29095:366;;;:::o;29467:419::-;29633:4;29671:2;29660:9;29656:18;29648:26;;29720:9;29714:4;29710:20;29706:1;29695:9;29691:17;29684:47;29748:131;29874:4;29748:131;:::i;:::-;29740:139;;29467:419;;;:::o;29892:169::-;30032:21;30028:1;30020:6;30016:14;30009:45;29892:169;:::o;30067:366::-;30209:3;30230:67;30294:2;30289:3;30230:67;:::i;:::-;30223:74;;30306:93;30395:3;30306:93;:::i;:::-;30424:2;30419:3;30415:12;30408:19;;30067:366;;;:::o;30439:419::-;30605:4;30643:2;30632:9;30628:18;30620:26;;30692:9;30686:4;30682:20;30678:1;30667:9;30663:17;30656:47;30720:131;30846:4;30720:131;:::i;:::-;30712:139;;30439:419;;;:::o;30864:241::-;31004:34;31000:1;30992:6;30988:14;30981:58;31073:24;31068:2;31060:6;31056:15;31049:49;30864:241;:::o;31111:366::-;31253:3;31274:67;31338:2;31333:3;31274:67;:::i;:::-;31267:74;;31350:93;31439:3;31350:93;:::i;:::-;31468:2;31463:3;31459:12;31452:19;;31111:366;;;:::o;31483:419::-;31649:4;31687:2;31676:9;31672:18;31664:26;;31736:9;31730:4;31726:20;31722:1;31711:9;31707:17;31700:47;31764:131;31890:4;31764:131;:::i;:::-;31756:139;;31483:419;;;:::o;31908:191::-;31948:4;31968:20;31986:1;31968:20;:::i;:::-;31963:25;;32002:20;32020:1;32002:20;:::i;:::-;31997:25;;32041:1;32038;32035:8;32032:34;;;32046:18;;:::i;:::-;32032:34;32091:1;32088;32084:9;32076:17;;31908:191;;;;:::o;32105:225::-;32245:34;32241:1;32233:6;32229:14;32222:58;32314:8;32309:2;32301:6;32297:15;32290:33;32105:225;:::o;32336:366::-;32478:3;32499:67;32563:2;32558:3;32499:67;:::i;:::-;32492:74;;32575:93;32664:3;32575:93;:::i;:::-;32693:2;32688:3;32684:12;32677:19;;32336:366;;;:::o;32708:419::-;32874:4;32912:2;32901:9;32897:18;32889:26;;32961:9;32955:4;32951:20;32947:1;32936:9;32932:17;32925:47;32989:131;33115:4;32989:131;:::i;:::-;32981:139;;32708:419;;;:::o;33133:147::-;33234:11;33271:3;33256:18;;33133:147;;;;:::o;33286:114::-;;:::o;33406:398::-;33565:3;33586:83;33667:1;33662:3;33586:83;:::i;:::-;33579:90;;33678:93;33767:3;33678:93;:::i;:::-;33796:1;33791:3;33787:11;33780:18;;33406:398;;;:::o;33810:379::-;33994:3;34016:147;34159:3;34016:147;:::i;:::-;34009:154;;34180:3;34173:10;;33810:379;;;:::o;34195:220::-;34335:34;34331:1;34323:6;34319:14;34312:58;34404:3;34399:2;34391:6;34387:15;34380:28;34195:220;:::o;34421:366::-;34563:3;34584:67;34648:2;34643:3;34584:67;:::i;:::-;34577:74;;34660:93;34749:3;34660:93;:::i;:::-;34778:2;34773:3;34769:12;34762:19;;34421:366;;;:::o;34793:419::-;34959:4;34997:2;34986:9;34982:18;34974:26;;35046:9;35040:4;35036:20;35032:1;35021:9;35017:17;35010:47;35074:131;35200:4;35074:131;:::i;:::-;35066:139;;34793:419;;;:::o;35218:221::-;35358:34;35354:1;35346:6;35342:14;35335:58;35427:4;35422:2;35414:6;35410:15;35403:29;35218:221;:::o;35445:366::-;35587:3;35608:67;35672:2;35667:3;35608:67;:::i;:::-;35601:74;;35684:93;35773:3;35684:93;:::i;:::-;35802:2;35797:3;35793:12;35786:19;;35445:366;;;:::o;35817:419::-;35983:4;36021:2;36010:9;36006:18;35998:26;;36070:9;36064:4;36060:20;36056:1;36045:9;36041:17;36034:47;36098:131;36224:4;36098:131;:::i;:::-;36090:139;;35817:419;;;:::o;36242:180::-;36290:77;36287:1;36280:88;36387:4;36384:1;36377:15;36411:4;36408:1;36401:15;36428:180;36476:77;36473:1;36466:88;36573:4;36570:1;36563:15;36597:4;36594:1;36587:15;36614:143;36671:5;36702:6;36696:13;36687:22;;36718:33;36745:5;36718:33;:::i;:::-;36614:143;;;;:::o;36763:351::-;36833:6;36882:2;36870:9;36861:7;36857:23;36853:32;36850:119;;;36888:79;;:::i;:::-;36850:119;37008:1;37033:64;37089:7;37080:6;37069:9;37065:22;37033:64;:::i;:::-;37023:74;;36979:128;36763:351;;;;:::o;37120:85::-;37165:7;37194:5;37183:16;;37120:85;;;:::o;37211:158::-;37269:9;37302:61;37320:42;37329:32;37355:5;37329:32;:::i;:::-;37320:42;:::i;:::-;37302:61;:::i;:::-;37289:74;;37211:158;;;:::o;37375:147::-;37470:45;37509:5;37470:45;:::i;:::-;37465:3;37458:58;37375:147;;:::o;37528:114::-;37595:6;37629:5;37623:12;37613:22;;37528:114;;;:::o;37648:184::-;37747:11;37781:6;37776:3;37769:19;37821:4;37816:3;37812:14;37797:29;;37648:184;;;;:::o;37838:132::-;37905:4;37928:3;37920:11;;37958:4;37953:3;37949:14;37941:22;;37838:132;;;:::o;37976:108::-;38053:24;38071:5;38053:24;:::i;:::-;38048:3;38041:37;37976:108;;:::o;38090:179::-;38159:10;38180:46;38222:3;38214:6;38180:46;:::i;:::-;38258:4;38253:3;38249:14;38235:28;;38090:179;;;;:::o;38275:113::-;38345:4;38377;38372:3;38368:14;38360:22;;38275:113;;;:::o;38424:732::-;38543:3;38572:54;38620:5;38572:54;:::i;:::-;38642:86;38721:6;38716:3;38642:86;:::i;:::-;38635:93;;38752:56;38802:5;38752:56;:::i;:::-;38831:7;38862:1;38847:284;38872:6;38869:1;38866:13;38847:284;;;38948:6;38942:13;38975:63;39034:3;39019:13;38975:63;:::i;:::-;38968:70;;39061:60;39114:6;39061:60;:::i;:::-;39051:70;;38907:224;38894:1;38891;38887:9;38882:14;;38847:284;;;38851:14;39147:3;39140:10;;38548:608;;;38424:732;;;;:::o;39162:831::-;39425:4;39463:3;39452:9;39448:19;39440:27;;39477:71;39545:1;39534:9;39530:17;39521:6;39477:71;:::i;:::-;39558:80;39634:2;39623:9;39619:18;39610:6;39558:80;:::i;:::-;39685:9;39679:4;39675:20;39670:2;39659:9;39655:18;39648:48;39713:108;39816:4;39807:6;39713:108;:::i;:::-;39705:116;;39831:72;39899:2;39888:9;39884:18;39875:6;39831:72;:::i;:::-;39913:73;39981:3;39970:9;39966:19;39957:6;39913:73;:::i;:::-;39162:831;;;;;;;;:::o
Swarm Source
ipfs://75efe1619ad50234eb1e59337f2bddb6282d7007c890c3f79bdef6d5ea5c2437
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.