ERC-20
Overview
Max Total Supply
10,000,000,000 TSUJI
Holders
606
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SUGOI
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-31 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; pragma experimental ABIEncoderV2; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { 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 IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } 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 per(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= 100, "Percentage must be between 0 and 100"); return a * b / 100; } 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; } } } 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 to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, 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) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, 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; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } contract SUGOI is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable _uniswapV2Router; address public uniswapV2Pair; address private devWallet; address private marketingWallet; address private constant deadAddress = address(0xdead); uint8 private constant _decimals = 9; uint256 public initialTotalSupply = 10000000000 * 10**_decimals; uint256 public buyFee = 0; uint256 public sellFee = 0; // 1% is max wallet uint256 public maxWallet = (initialTotalSupply * 10)/1000; uint256 public maxTransactionAmount = maxWallet; bool private swapping; bool public transferDelayEnabled = true; mapping(address => uint256) private _holderLastTransferTimestamp; //swap for 0.2% uint256 public swapTokensAtAmount = (initialTotalSupply * 2)/1000; bool public tradingOpen = false; bool public swapEnabled = false; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor() ERC20("Tsutsuji", "TSUJI"){ _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); marketingWallet = payable(0xE54ee16AF5A5c2Ae51190F2145b1e6Fa2813E158); devWallet = payable(_msgSender()); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(address(_uniswapV2Router), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); excludeFromMaxTransaction(address(_msgSender()), true); excludeFromMaxTransaction(marketingWallet, true); excludeFromMaxTransaction(devWallet, true); excludeFromFees(address(_msgSender()), true); excludeFromFees(marketingWallet, true); excludeFromFees(devWallet, true); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); // mint _mint(devWallet, initialTotalSupply); } receive() external payable {} function addLPToUniswap() external onlyOwner() { require(!tradingOpen,"Trading is already open"); _approve(address(this), address(_uniswapV2Router), initialTotalSupply); _uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, 0xA4b61FB221062B1aC0Ff96aEb79aF6751987c11B, block.timestamp ); IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max); } function burn(uint256 amount) external { _burn(_msgSender(), amount); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function openTrading() external onlyOwner() { swapEnabled = true; tradingOpen = true; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(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; emit SetAutomatedMarketMakerPair(pair, value); } 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"); if (amount == 0) { super._transfer(from, to, 0); return; } if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingOpen) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (transferDelayEnabled && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]){ if (to != address(_uniswapV2Router) && to != address(uniswapV2Pair)){ require(_holderLastTransferTimestamp[tx.origin] < block.number && _holderLastTransferTimestamp[to] < block.number, "_transfer:: Transfer Delay enabled. Try again later."); _holderLastTransferTimestamp[tx.origin] = block.number; _holderLastTransferTimestamp[to] = block.number; } } if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(amount); swapping = false; } bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]; uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to]) { fees = amount.mul(sellFee).div(100); } else if(automatedMarketMakerPairs[from]) { fees = amount.mul(buyFee).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, marketingWallet, block.timestamp ); } function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner { sellFee = _sellFee; buyFee = _buyFee; } function stopTransferDelay() external onlyOwner { require(transferDelayEnabled, "Already disabled!"); transferDelayEnabled = false; } function removeTheLimits() external onlyOwner { maxTransactionAmount = initialTotalSupply; maxWallet = initialTotalSupply; } function manualSwapToken(uint256 percent) external { require(_msgSender() == marketingWallet); uint256 contractBalance = balanceOf(address(this)); uint256 swapAmount = contractBalance * percent / 100; swapTokensForEth(swapAmount); } function withdrawEth() external { require(address(this).balance > 0, "Token: no ETH in the contract"); require(_msgSender() == devWallet); payable(msg.sender).transfer(address(this).balance); } function tokensWithdraw() external { require(_msgSender() == devWallet); uint256 amount = balanceOf(address(this)); _transfer(address(this), devWallet, amount); } function swapBack(uint256 tokenAmount) private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) { return; } uint256 tokensToSwap = contractBalance; if (tokensToSwap > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } if(tokensToSwap > tokenAmount) { tokensToSwap = tokenAmount; } swapTokensForEth(tokensToSwap); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLPToUniswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapToken","outputs":[],"stateMutability":"nonpayable","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeTheLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","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":"from","type":"address"},{"internalType":"address","name":"to","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":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526009600a6100129190610bf8565b6402540be4006100229190610c42565b6009555f600a555f600b556103e8600a60095461003f9190610c42565b6100499190610cb0565b600c55600c54600d556001600e60016101000a81548160ff0219169083151502179055506103e8600260095461007f9190610c42565b6100899190610cb0565b6010555f60115f6101000a81548160ff0219169083151502179055505f601160016101000a81548160ff0219169083151502179055503480156100ca575f80fd5b506040518060400160405280600881526020017f5473757473756a690000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5453554a4900000000000000000000000000000000000000000000000000000081525081600390816101469190610f11565b5080600490816101569190610f11565b50505061017561016a6105ef60201b60201c565b6105f660201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505073e54ee16af5a5c2ae51190f2145b1e6fa2813e15860085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061021f6105ef60201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061026f3060016106b960201b60201c565b61028261dead60016106b960201b60201c565b610295608051600161076d60201b60201c565b6102a630600161076d60201b60201c565b6102b961dead600161076d60201b60201c565b6102d76102ca6105ef60201b60201c565b600161076d60201b60201c565b61030960085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161076d60201b60201c565b61033b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161076d60201b60201c565b61035961034c6105ef60201b60201c565b60016106b960201b60201c565b61038b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016106b960201b60201c565b6103bd60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016106b960201b60201c565b60805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610408573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042c919061103e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610493573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b7919061103e565b6040518363ffffffff1660e01b81526004016104d4929190611078565b6020604051808303815f875af11580156104f0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610514919061103e565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061058560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161076d60201b60201c565b6105b760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016107d360201b60201c565b6105ea60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660095461087160201b60201c565b61120d565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6106c76109cb60201b60201c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161076191906110b9565b60405180910390a25050565b61077b6109cb60201b60201c565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d69061112c565b60405180910390fd5b6108f05f8383610a5560201b60201c565b8060025f828254610901919061114a565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109ae919061118c565b60405180910390a36109c75f8383610a5a60201b60201c565b5050565b6109d96105ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166109fd610a5f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a906111ef565b60405180910390fd5b565b505050565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610b0957808604811115610ae557610ae4610a87565b5b6001851615610af45780820291505b8081029050610b0285610ab4565b9450610ac9565b94509492505050565b5f82610b215760019050610bdc565b81610b2e575f9050610bdc565b8160018114610b445760028114610b4e57610b7d565b6001915050610bdc565b60ff841115610b6057610b5f610a87565b5b8360020a915084821115610b7757610b76610a87565b5b50610bdc565b5060208310610133831016604e8410600b8410161715610bb25782820a905083811115610bad57610bac610a87565b5b610bdc565b610bbf8484846001610ac0565b92509050818404811115610bd657610bd5610a87565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610c0282610be3565b9150610c0d83610bec565b9250610c3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610b12565b905092915050565b5f610c4c82610be3565b9150610c5783610be3565b9250828202610c6581610be3565b91508282048414831517610c7c57610c7b610a87565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610cba82610be3565b9150610cc583610be3565b925082610cd557610cd4610c83565b5b828204905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5b57607f821691505b602082108103610d6e57610d6d610d17565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610dd07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610d95565b610dda8683610d95565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610e15610e10610e0b84610be3565b610df2565b610be3565b9050919050565b5f819050919050565b610e2e83610dfb565b610e42610e3a82610e1c565b848454610da1565b825550505050565b5f90565b610e56610e4a565b610e61818484610e25565b505050565b5b81811015610e8457610e795f82610e4e565b600181019050610e67565b5050565b601f821115610ec957610e9a81610d74565b610ea384610d86565b81016020851015610eb2578190505b610ec6610ebe85610d86565b830182610e66565b50505b505050565b5f82821c905092915050565b5f610ee95f1984600802610ece565b1980831691505092915050565b5f610f018383610eda565b9150826002028217905092915050565b610f1a82610ce0565b67ffffffffffffffff811115610f3357610f32610cea565b5b610f3d8254610d44565b610f48828285610e88565b5f60209050601f831160018114610f79575f8415610f67578287015190505b610f718582610ef6565b865550610fd8565b601f198416610f8786610d74565b5f5b82811015610fae57848901518255600182019150602085019450602081019050610f89565b86831015610fcb5784890151610fc7601f891682610eda565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61100d82610fe4565b9050919050565b61101d81611003565b8114611027575f80fd5b50565b5f8151905061103881611014565b92915050565b5f6020828403121561105357611052610fe0565b5b5f6110608482850161102a565b91505092915050565b61107281611003565b82525050565b5f60408201905061108b5f830185611069565b6110986020830184611069565b9392505050565b5f8115159050919050565b6110b38161109f565b82525050565b5f6020820190506110cc5f8301846110aa565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f611116601f836110d2565b9150611121826110e2565b602082019050919050565b5f6020820190508181035f8301526111438161110a565b9050919050565b5f61115482610be3565b915061115f83610be3565b925082820190508082111561117757611176610a87565b5b92915050565b61118681610be3565b82525050565b5f60208201905061119f5f83018461117d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6111d96020836110d2565b91506111e4826111a5565b602082019050919050565b5f6020820190508181035f830152611206816111cd565b9050919050565b608051613e236112565f395f8181610aab01528181610ad401528181610bd501528181610d2201528181611a8f015281816125f6015281816126d501526126fc0152613e235ff3fe608060405260043610610228575f3560e01c8063715018a611610122578063a9059cbb116100aa578063dd62ed3e1161006e578063dd62ed3e14610783578063e2f45605146107bf578063f2fde38b146107e9578063f8b45b0514610811578063ffb54a991461083b5761022f565b8063a9059cbb146106b5578063c0246668146106f1578063c876d0b914610719578063c8c8ebe414610743578063c9567bf91461076d5761022f565b806395d89b41116100f157806395d89b41146105fb5780639a7a23d6146106255780639b6365451461064d578063a0ef91df14610663578063a457c2d7146106795761022f565b8063715018a61461056b57806371f5f01a146105815780637571336a146105a95780638da5cb5b146105d15761022f565b806339509351116101b05780634fbee193116101745780634fbee1931461047757806352f7c988146104b3578063583e0568146104db5780636ddd17131461050557806370a082311461052f5761022f565b806339509351146103a95780633edab509146103e557806342966c68146103fb578063470624021461042357806349bd5a5e1461044d5761022f565b806323b872dd116101f757806323b872dd146102d95780632b14ca56146103155780632cb743f71461033f578063311028af14610355578063313ce5671461037f5761022f565b806306fdde0314610233578063095ea7b31461025d578063139864a81461029957806318160ddd146102af5761022f565b3661022f57005b5f80fd5b34801561023e575f80fd5b50610247610865565b6040516102549190612ba3565b60405180910390f35b348015610268575f80fd5b50610283600480360381019061027e9190612c54565b6108f5565b6040516102909190612cac565b60405180910390f35b3480156102a4575f80fd5b506102ad610917565b005b3480156102ba575f80fd5b506102c3610933565b6040516102d09190612cd4565b60405180910390f35b3480156102e4575f80fd5b506102ff60048036038101906102fa9190612ced565b61093c565b60405161030c9190612cac565b60405180910390f35b348015610320575f80fd5b5061032961096a565b6040516103369190612cd4565b60405180910390f35b34801561034a575f80fd5b50610353610970565b005b348015610360575f80fd5b50610369610a0a565b6040516103769190612cd4565b60405180910390f35b34801561038a575f80fd5b50610393610a10565b6040516103a09190612d58565b60405180910390f35b3480156103b4575f80fd5b506103cf60048036038101906103ca9190612c54565b610a18565b6040516103dc9190612cac565b60405180910390f35b3480156103f0575f80fd5b506103f9610a4e565b005b348015610406575f80fd5b50610421600480360381019061041c9190612d71565b610c75565b005b34801561042e575f80fd5b50610437610c89565b6040516104449190612cd4565b60405180910390f35b348015610458575f80fd5b50610461610c8f565b60405161046e9190612dab565b60405180910390f35b348015610482575f80fd5b5061049d60048036038101906104989190612dc4565b610cb4565b6040516104aa9190612cac565b60405180910390f35b3480156104be575f80fd5b506104d960048036038101906104d49190612def565b610d06565b005b3480156104e6575f80fd5b506104ef610d20565b6040516104fc9190612e88565b60405180910390f35b348015610510575f80fd5b50610519610d44565b6040516105269190612cac565b60405180910390f35b34801561053a575f80fd5b5061055560048036038101906105509190612dc4565b610d57565b6040516105629190612cd4565b60405180910390f35b348015610576575f80fd5b5061057f610d9c565b005b34801561058c575f80fd5b506105a760048036038101906105a29190612d71565b610daf565b005b3480156105b4575f80fd5b506105cf60048036038101906105ca9190612ecb565b610e43565b005b3480156105dc575f80fd5b506105e5610ea3565b6040516105f29190612dab565b60405180910390f35b348015610606575f80fd5b5061060f610ecb565b60405161061c9190612ba3565b60405180910390f35b348015610630575f80fd5b5061064b60048036038101906106469190612ecb565b610f5b565b005b348015610658575f80fd5b50610661611000565b005b34801561066e575f80fd5b50610677611073565b005b348015610684575f80fd5b5061069f600480360381019061069a9190612c54565b61115a565b6040516106ac9190612cac565b60405180910390f35b3480156106c0575f80fd5b506106db60048036038101906106d69190612c54565b6111cf565b6040516106e89190612cac565b60405180910390f35b3480156106fc575f80fd5b5061071760048036038101906107129190612ecb565b6111f1565b005b348015610724575f80fd5b5061072d61129f565b60405161073a9190612cac565b60405180910390f35b34801561074e575f80fd5b506107576112b2565b6040516107649190612cd4565b60405180910390f35b348015610778575f80fd5b506107816112b8565b005b34801561078e575f80fd5b506107a960048036038101906107a49190612f09565b6112f7565b6040516107b69190612cd4565b60405180910390f35b3480156107ca575f80fd5b506107d3611379565b6040516107e09190612cd4565b60405180910390f35b3480156107f4575f80fd5b5061080f600480360381019061080a9190612dc4565b61137f565b005b34801561081c575f80fd5b50610825611401565b6040516108329190612cd4565b60405180910390f35b348015610846575f80fd5b5061084f611407565b60405161085c9190612cac565b60405180910390f35b60606003805461087490612f74565b80601f01602080910402602001604051908101604052809291908181526020018280546108a090612f74565b80156108eb5780601f106108c2576101008083540402835291602001916108eb565b820191905f5260205f20905b8154815290600101906020018083116108ce57829003601f168201915b5050505050905090565b5f806108ff611419565b905061090c818585611420565b600191505092915050565b61091f6115e3565b600954600d81905550600954600c81905550565b5f600254905090565b5f80610946611419565b9050610953858285611661565b61095e8585856116ec565b60019150509392505050565b600b5481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b0611419565b73ffffffffffffffffffffffffffffffffffffffff16146109cf575f80fd5b5f6109d930610d57565b9050610a073060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836116ec565b50565b60095481565b5f6009905090565b5f80610a22611419565b9050610a43818585610a3485896112f7565b610a3e9190612fd1565b611420565b600191505092915050565b610a566115e3565b60115f9054906101000a900460ff1615610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c9061304e565b60405180910390fd5b610ad2307f0000000000000000000000000000000000000000000000000000000000000000600954611420565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b1930610d57565b5f8073a4b61fb221062b1ac0ff96aeb79af6751987c11b426040518863ffffffff1660e01b8152600401610b52969594939291906130a5565b60606040518083038185885af1158015610b6e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b939190613118565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c32929190613168565b6020604051808303815f875af1158015610c4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7291906131a3565b50565b610c86610c80611419565b826122d3565b50565b600a5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610d0e6115e3565b80600b8190555081600a819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601160019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610da46115e3565b610dad5f612496565b565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610def611419565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e575f80fd5b5f610e1830610d57565b90505f60648383610e2991906131ce565b610e33919061323c565b9050610e3e81612559565b505050565b610e4b6115e3565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610eda90612f74565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0690612f74565b8015610f515780601f10610f2857610100808354040283529160200191610f51565b820191905f5260205f20905b815481529060010190602001808311610f3457829003601f168201915b5050505050905090565b610f636115e3565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe9906132dc565b60405180910390fd5b610ffc82826127ad565b5050565b6110086115e3565b600e60019054906101000a900460ff16611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104e90613344565b60405180910390fd5b5f600e60016101000a81548160ff021916908315150217905550565b5f47116110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac906133ac565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f5611419565b73ffffffffffffffffffffffffffffffffffffffff1614611114575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611157573d5f803e3d5ffd5b50565b5f80611164611419565b90505f61117182866112f7565b9050838110156111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad9061343a565b60405180910390fd5b6111c38286868403611420565b60019250505092915050565b5f806111d9611419565b90506111e68185856116ec565b600191505092915050565b6111f96115e3565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516112939190612cac565b60405180910390a25050565b600e60019054906101000a900460ff1681565b600d5481565b6112c06115e3565b6001601160016101000a81548160ff021916908315150217905550600160115f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b6113876115e3565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906134c8565b60405180910390fd5b6113fe81612496565b50565b600c5481565b60115f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590613556565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f3906135e4565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115d69190612cd4565b60405180910390a3505050565b6115eb611419565b73ffffffffffffffffffffffffffffffffffffffff16611609610ea3565b73ffffffffffffffffffffffffffffffffffffffff161461165f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116569061364c565b60405180910390fd5b565b5f61166c84846112f7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116e657818110156116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf906136b4565b60405180910390fd5b6116e58484848403611420565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361175a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175190613742565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf906137d0565b60405180910390fd5b5f81036117df576117da83835f61284b565b6122ce565b6117e7610ea3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118555750611825610ea3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561188d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118c7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118df5750600e5f9054906101000a900460ff16155b15611f625760115f9054906101000a900460ff166119d25760125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611992575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c890613838565b60405180910390fd5b5b600e60019054906101000a900460ff168015611a35575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a88575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c88577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611b36575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c875743600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054108015611bc3575043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf9906138c6565b60405180910390fd5b43600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611d25575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dcc57600d54811115611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690613954565b60405180910390fd5b600c54611d7b83610d57565b82611d869190612fd1565b1115611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbe906139bc565b60405180910390fd5b611f61565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e69575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611eb857600d54811115611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613a4a565b60405180910390fd5b611f60565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611f5f57600c54611f1283610d57565b82611f1d9190612fd1565b1115611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f55906139bc565b60405180910390fd5b5b5b5b5b5f611f6c30610d57565b90505f60105482119050808015611f8f5750601160019054906101000a900460ff165b8015611fa75750600e5f9054906101000a900460ff16155b8015611ffa575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561204d575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120a0575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120e2576001600e5f6101000a81548160ff0219169083151502179055506120c883612ab7565b5f600e5f6101000a81548160ff0219169083151502179055505b5f600e5f9054906101000a900460ff16158015612146575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612199575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f81156122be5760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561222057612219606461220b600b5488612aff90919063ffffffff16565b612b1490919063ffffffff16565b905061229b565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561229a576122976064612289600a5488612aff90919063ffffffff16565b612b1490919063ffffffff16565b90505b5b5f8111156122af576122ae87308361284b565b5b80856122bb9190613a68565b94505b6122c987878761284b565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233890613b0b565b60405180910390fd5b61234c825f83612b29565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c690613b99565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161247e9190612cd4565b60405180910390a3612491835f84612b2e565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff81111561257557612574613bb7565b5b6040519080825280602002602001820160405280156125a35781602001602082028036833780820191505090505b50905030815f815181106125ba576125b9613be4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561265d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126819190613c25565b8160018151811061269557612694613be4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126fa307f000000000000000000000000000000000000000000000000000000000000000084611420565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161277c959493929190613d07565b5f604051808303815f87803b158015612793575f80fd5b505af11580156127a5573d5f803e3d5ffd5b505050505050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b090613742565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291e906137d0565b60405180910390fd5b612932838383612b29565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156129b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ac90613dcf565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a9e9190612cd4565b60405180910390a3612ab1848484612b2e565b50505050565b5f612ac130610d57565b90505f8103612ad05750612afc565b5f819050601054811115612ae45760105490505b82811115612af0578290505b612af981612559565b50505b50565b5f8183612b0c91906131ce565b905092915050565b5f8183612b21919061323c565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612b7582612b33565b612b7f8185612b3d565b9350612b8f818560208601612b4d565b612b9881612b5b565b840191505092915050565b5f6020820190508181035f830152612bbb8184612b6b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bf082612bc7565b9050919050565b612c0081612be6565b8114612c0a575f80fd5b50565b5f81359050612c1b81612bf7565b92915050565b5f819050919050565b612c3381612c21565b8114612c3d575f80fd5b50565b5f81359050612c4e81612c2a565b92915050565b5f8060408385031215612c6a57612c69612bc3565b5b5f612c7785828601612c0d565b9250506020612c8885828601612c40565b9150509250929050565b5f8115159050919050565b612ca681612c92565b82525050565b5f602082019050612cbf5f830184612c9d565b92915050565b612cce81612c21565b82525050565b5f602082019050612ce75f830184612cc5565b92915050565b5f805f60608486031215612d0457612d03612bc3565b5b5f612d1186828701612c0d565b9350506020612d2286828701612c0d565b9250506040612d3386828701612c40565b9150509250925092565b5f60ff82169050919050565b612d5281612d3d565b82525050565b5f602082019050612d6b5f830184612d49565b92915050565b5f60208284031215612d8657612d85612bc3565b5b5f612d9384828501612c40565b91505092915050565b612da581612be6565b82525050565b5f602082019050612dbe5f830184612d9c565b92915050565b5f60208284031215612dd957612dd8612bc3565b5b5f612de684828501612c0d565b91505092915050565b5f8060408385031215612e0557612e04612bc3565b5b5f612e1285828601612c40565b9250506020612e2385828601612c40565b9150509250929050565b5f819050919050565b5f612e50612e4b612e4684612bc7565b612e2d565b612bc7565b9050919050565b5f612e6182612e36565b9050919050565b5f612e7282612e57565b9050919050565b612e8281612e68565b82525050565b5f602082019050612e9b5f830184612e79565b92915050565b612eaa81612c92565b8114612eb4575f80fd5b50565b5f81359050612ec581612ea1565b92915050565b5f8060408385031215612ee157612ee0612bc3565b5b5f612eee85828601612c0d565b9250506020612eff85828601612eb7565b9150509250929050565b5f8060408385031215612f1f57612f1e612bc3565b5b5f612f2c85828601612c0d565b9250506020612f3d85828601612c0d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612f8b57607f821691505b602082108103612f9e57612f9d612f47565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612fdb82612c21565b9150612fe683612c21565b9250828201905080821115612ffe57612ffd612fa4565b5b92915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613038601783612b3d565b915061304382613004565b602082019050919050565b5f6020820190508181035f8301526130658161302c565b9050919050565b5f819050919050565b5f61308f61308a6130858461306c565b612e2d565b612c21565b9050919050565b61309f81613075565b82525050565b5f60c0820190506130b85f830189612d9c565b6130c56020830188612cc5565b6130d26040830187613096565b6130df6060830186613096565b6130ec6080830185612d9c565b6130f960a0830184612cc5565b979650505050505050565b5f8151905061311281612c2a565b92915050565b5f805f6060848603121561312f5761312e612bc3565b5b5f61313c86828701613104565b935050602061314d86828701613104565b925050604061315e86828701613104565b9150509250925092565b5f60408201905061317b5f830185612d9c565b6131886020830184612cc5565b9392505050565b5f8151905061319d81612ea1565b92915050565b5f602082840312156131b8576131b7612bc3565b5b5f6131c58482850161318f565b91505092915050565b5f6131d882612c21565b91506131e383612c21565b92508282026131f181612c21565b9150828204841483151761320857613207612fa4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61324682612c21565b915061325183612c21565b9250826132615761326061320f565b5b828204905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6132c6603983612b3d565b91506132d18261326c565b604082019050919050565b5f6020820190508181035f8301526132f3816132ba565b9050919050565b7f416c72656164792064697361626c6564210000000000000000000000000000005f82015250565b5f61332e601183612b3d565b9150613339826132fa565b602082019050919050565b5f6020820190508181035f83015261335b81613322565b9050919050565b7f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000005f82015250565b5f613396601d83612b3d565b91506133a182613362565b602082019050919050565b5f6020820190508181035f8301526133c38161338a565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613424602583612b3d565b915061342f826133ca565b604082019050919050565b5f6020820190508181035f83015261345181613418565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134b2602683612b3d565b91506134bd82613458565b604082019050919050565b5f6020820190508181035f8301526134df816134a6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613540602483612b3d565b915061354b826134e6565b604082019050919050565b5f6020820190508181035f83015261356d81613534565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135ce602283612b3d565b91506135d982613574565b604082019050919050565b5f6020820190508181035f8301526135fb816135c2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613636602083612b3d565b915061364182613602565b602082019050919050565b5f6020820190508181035f8301526136638161362a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61369e601d83612b3d565b91506136a98261366a565b602082019050919050565b5f6020820190508181035f8301526136cb81613692565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61372c602583612b3d565b9150613737826136d2565b604082019050919050565b5f6020820190508181035f83015261375981613720565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137ba602383612b3d565b91506137c582613760565b604082019050919050565b5f6020820190508181035f8301526137e7816137ae565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613822601683612b3d565b915061382d826137ee565b602082019050919050565b5f6020820190508181035f83015261384f81613816565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e202054727920616761696e206c617465722e0000000000000000000000602082015250565b5f6138b0603583612b3d565b91506138bb82613856565b604082019050919050565b5f6020820190508181035f8301526138dd816138a4565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61393e603583612b3d565b9150613949826138e4565b604082019050919050565b5f6020820190508181035f83015261396b81613932565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6139a6601383612b3d565b91506139b182613972565b602082019050919050565b5f6020820190508181035f8301526139d38161399a565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613a34603683612b3d565b9150613a3f826139da565b604082019050919050565b5f6020820190508181035f830152613a6181613a28565b9050919050565b5f613a7282612c21565b9150613a7d83612c21565b9250828203905081811115613a9557613a94612fa4565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af5602183612b3d565b9150613b0082613a9b565b604082019050919050565b5f6020820190508181035f830152613b2281613ae9565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b83602283612b3d565b9150613b8e82613b29565b604082019050919050565b5f6020820190508181035f830152613bb081613b77565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613c1f81612bf7565b92915050565b5f60208284031215613c3a57613c39612bc3565b5b5f613c4784828501613c11565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c8281612be6565b82525050565b5f613c938383613c79565b60208301905092915050565b5f602082019050919050565b5f613cb582613c50565b613cbf8185613c5a565b9350613cca83613c6a565b805f5b83811015613cfa578151613ce18882613c88565b9750613cec83613c9f565b925050600181019050613ccd565b5085935050505092915050565b5f60a082019050613d1a5f830188612cc5565b613d276020830187613096565b8181036040830152613d398186613cab565b9050613d486060830185612d9c565b613d556080830184612cc5565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613db9602683612b3d565b9150613dc482613d5f565b604082019050919050565b5f6020820190508181035f830152613de681613dad565b905091905056fea2646970667358221220988562b1eaab5911b82557d2c8ef724c9c157794a8063ed03567bd4bcd0303d464736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610228575f3560e01c8063715018a611610122578063a9059cbb116100aa578063dd62ed3e1161006e578063dd62ed3e14610783578063e2f45605146107bf578063f2fde38b146107e9578063f8b45b0514610811578063ffb54a991461083b5761022f565b8063a9059cbb146106b5578063c0246668146106f1578063c876d0b914610719578063c8c8ebe414610743578063c9567bf91461076d5761022f565b806395d89b41116100f157806395d89b41146105fb5780639a7a23d6146106255780639b6365451461064d578063a0ef91df14610663578063a457c2d7146106795761022f565b8063715018a61461056b57806371f5f01a146105815780637571336a146105a95780638da5cb5b146105d15761022f565b806339509351116101b05780634fbee193116101745780634fbee1931461047757806352f7c988146104b3578063583e0568146104db5780636ddd17131461050557806370a082311461052f5761022f565b806339509351146103a95780633edab509146103e557806342966c68146103fb578063470624021461042357806349bd5a5e1461044d5761022f565b806323b872dd116101f757806323b872dd146102d95780632b14ca56146103155780632cb743f71461033f578063311028af14610355578063313ce5671461037f5761022f565b806306fdde0314610233578063095ea7b31461025d578063139864a81461029957806318160ddd146102af5761022f565b3661022f57005b5f80fd5b34801561023e575f80fd5b50610247610865565b6040516102549190612ba3565b60405180910390f35b348015610268575f80fd5b50610283600480360381019061027e9190612c54565b6108f5565b6040516102909190612cac565b60405180910390f35b3480156102a4575f80fd5b506102ad610917565b005b3480156102ba575f80fd5b506102c3610933565b6040516102d09190612cd4565b60405180910390f35b3480156102e4575f80fd5b506102ff60048036038101906102fa9190612ced565b61093c565b60405161030c9190612cac565b60405180910390f35b348015610320575f80fd5b5061032961096a565b6040516103369190612cd4565b60405180910390f35b34801561034a575f80fd5b50610353610970565b005b348015610360575f80fd5b50610369610a0a565b6040516103769190612cd4565b60405180910390f35b34801561038a575f80fd5b50610393610a10565b6040516103a09190612d58565b60405180910390f35b3480156103b4575f80fd5b506103cf60048036038101906103ca9190612c54565b610a18565b6040516103dc9190612cac565b60405180910390f35b3480156103f0575f80fd5b506103f9610a4e565b005b348015610406575f80fd5b50610421600480360381019061041c9190612d71565b610c75565b005b34801561042e575f80fd5b50610437610c89565b6040516104449190612cd4565b60405180910390f35b348015610458575f80fd5b50610461610c8f565b60405161046e9190612dab565b60405180910390f35b348015610482575f80fd5b5061049d60048036038101906104989190612dc4565b610cb4565b6040516104aa9190612cac565b60405180910390f35b3480156104be575f80fd5b506104d960048036038101906104d49190612def565b610d06565b005b3480156104e6575f80fd5b506104ef610d20565b6040516104fc9190612e88565b60405180910390f35b348015610510575f80fd5b50610519610d44565b6040516105269190612cac565b60405180910390f35b34801561053a575f80fd5b5061055560048036038101906105509190612dc4565b610d57565b6040516105629190612cd4565b60405180910390f35b348015610576575f80fd5b5061057f610d9c565b005b34801561058c575f80fd5b506105a760048036038101906105a29190612d71565b610daf565b005b3480156105b4575f80fd5b506105cf60048036038101906105ca9190612ecb565b610e43565b005b3480156105dc575f80fd5b506105e5610ea3565b6040516105f29190612dab565b60405180910390f35b348015610606575f80fd5b5061060f610ecb565b60405161061c9190612ba3565b60405180910390f35b348015610630575f80fd5b5061064b60048036038101906106469190612ecb565b610f5b565b005b348015610658575f80fd5b50610661611000565b005b34801561066e575f80fd5b50610677611073565b005b348015610684575f80fd5b5061069f600480360381019061069a9190612c54565b61115a565b6040516106ac9190612cac565b60405180910390f35b3480156106c0575f80fd5b506106db60048036038101906106d69190612c54565b6111cf565b6040516106e89190612cac565b60405180910390f35b3480156106fc575f80fd5b5061071760048036038101906107129190612ecb565b6111f1565b005b348015610724575f80fd5b5061072d61129f565b60405161073a9190612cac565b60405180910390f35b34801561074e575f80fd5b506107576112b2565b6040516107649190612cd4565b60405180910390f35b348015610778575f80fd5b506107816112b8565b005b34801561078e575f80fd5b506107a960048036038101906107a49190612f09565b6112f7565b6040516107b69190612cd4565b60405180910390f35b3480156107ca575f80fd5b506107d3611379565b6040516107e09190612cd4565b60405180910390f35b3480156107f4575f80fd5b5061080f600480360381019061080a9190612dc4565b61137f565b005b34801561081c575f80fd5b50610825611401565b6040516108329190612cd4565b60405180910390f35b348015610846575f80fd5b5061084f611407565b60405161085c9190612cac565b60405180910390f35b60606003805461087490612f74565b80601f01602080910402602001604051908101604052809291908181526020018280546108a090612f74565b80156108eb5780601f106108c2576101008083540402835291602001916108eb565b820191905f5260205f20905b8154815290600101906020018083116108ce57829003601f168201915b5050505050905090565b5f806108ff611419565b905061090c818585611420565b600191505092915050565b61091f6115e3565b600954600d81905550600954600c81905550565b5f600254905090565b5f80610946611419565b9050610953858285611661565b61095e8585856116ec565b60019150509392505050565b600b5481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b0611419565b73ffffffffffffffffffffffffffffffffffffffff16146109cf575f80fd5b5f6109d930610d57565b9050610a073060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836116ec565b50565b60095481565b5f6009905090565b5f80610a22611419565b9050610a43818585610a3485896112f7565b610a3e9190612fd1565b611420565b600191505092915050565b610a566115e3565b60115f9054906101000a900460ff1615610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c9061304e565b60405180910390fd5b610ad2307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600954611420565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b1930610d57565b5f8073a4b61fb221062b1ac0ff96aeb79af6751987c11b426040518863ffffffff1660e01b8152600401610b52969594939291906130a5565b60606040518083038185885af1158015610b6e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b939190613118565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c32929190613168565b6020604051808303815f875af1158015610c4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7291906131a3565b50565b610c86610c80611419565b826122d3565b50565b600a5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610d0e6115e3565b80600b8190555081600a819055505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b601160019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610da46115e3565b610dad5f612496565b565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610def611419565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e575f80fd5b5f610e1830610d57565b90505f60648383610e2991906131ce565b610e33919061323c565b9050610e3e81612559565b505050565b610e4b6115e3565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610eda90612f74565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0690612f74565b8015610f515780601f10610f2857610100808354040283529160200191610f51565b820191905f5260205f20905b815481529060010190602001808311610f3457829003601f168201915b5050505050905090565b610f636115e3565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe9906132dc565b60405180910390fd5b610ffc82826127ad565b5050565b6110086115e3565b600e60019054906101000a900460ff16611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104e90613344565b60405180910390fd5b5f600e60016101000a81548160ff021916908315150217905550565b5f47116110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac906133ac565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f5611419565b73ffffffffffffffffffffffffffffffffffffffff1614611114575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611157573d5f803e3d5ffd5b50565b5f80611164611419565b90505f61117182866112f7565b9050838110156111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad9061343a565b60405180910390fd5b6111c38286868403611420565b60019250505092915050565b5f806111d9611419565b90506111e68185856116ec565b600191505092915050565b6111f96115e3565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516112939190612cac565b60405180910390a25050565b600e60019054906101000a900460ff1681565b600d5481565b6112c06115e3565b6001601160016101000a81548160ff021916908315150217905550600160115f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b6113876115e3565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906134c8565b60405180910390fd5b6113fe81612496565b50565b600c5481565b60115f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590613556565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f3906135e4565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115d69190612cd4565b60405180910390a3505050565b6115eb611419565b73ffffffffffffffffffffffffffffffffffffffff16611609610ea3565b73ffffffffffffffffffffffffffffffffffffffff161461165f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116569061364c565b60405180910390fd5b565b5f61166c84846112f7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116e657818110156116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf906136b4565b60405180910390fd5b6116e58484848403611420565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361175a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175190613742565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf906137d0565b60405180910390fd5b5f81036117df576117da83835f61284b565b6122ce565b6117e7610ea3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118555750611825610ea3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561188d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118c7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118df5750600e5f9054906101000a900460ff16155b15611f625760115f9054906101000a900460ff166119d25760125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611992575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6119d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c890613838565b60405180910390fd5b5b600e60019054906101000a900460ff168015611a35575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a88575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c88577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611b36575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c875743600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054108015611bc3575043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf9906138c6565b60405180910390fd5b43600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611d25575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dcc57600d54811115611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690613954565b60405180910390fd5b600c54611d7b83610d57565b82611d869190612fd1565b1115611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbe906139bc565b60405180910390fd5b611f61565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e69575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611eb857600d54811115611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90613a4a565b60405180910390fd5b611f60565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611f5f57600c54611f1283610d57565b82611f1d9190612fd1565b1115611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f55906139bc565b60405180910390fd5b5b5b5b5b5f611f6c30610d57565b90505f60105482119050808015611f8f5750601160019054906101000a900460ff165b8015611fa75750600e5f9054906101000a900460ff16155b8015611ffa575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561204d575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120a0575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120e2576001600e5f6101000a81548160ff0219169083151502179055506120c883612ab7565b5f600e5f6101000a81548160ff0219169083151502179055505b5f600e5f9054906101000a900460ff16158015612146575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612199575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f81156122be5760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561222057612219606461220b600b5488612aff90919063ffffffff16565b612b1490919063ffffffff16565b905061229b565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561229a576122976064612289600a5488612aff90919063ffffffff16565b612b1490919063ffffffff16565b90505b5b5f8111156122af576122ae87308361284b565b5b80856122bb9190613a68565b94505b6122c987878761284b565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233890613b0b565b60405180910390fd5b61234c825f83612b29565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c690613b99565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161247e9190612cd4565b60405180910390a3612491835f84612b2e565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff81111561257557612574613bb7565b5b6040519080825280602002602001820160405280156125a35781602001602082028036833780820191505090505b50905030815f815181106125ba576125b9613be4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561265d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126819190613c25565b8160018151811061269557612694613be4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126fa307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611420565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161277c959493929190613d07565b5f604051808303815f87803b158015612793575f80fd5b505af11580156127a5573d5f803e3d5ffd5b505050505050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b090613742565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291e906137d0565b60405180910390fd5b612932838383612b29565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156129b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ac90613dcf565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a9e9190612cd4565b60405180910390a3612ab1848484612b2e565b50505050565b5f612ac130610d57565b90505f8103612ad05750612afc565b5f819050601054811115612ae45760105490505b82811115612af0578290505b612af981612559565b50505b50565b5f8183612b0c91906131ce565b905092915050565b5f8183612b21919061323c565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612b7582612b33565b612b7f8185612b3d565b9350612b8f818560208601612b4d565b612b9881612b5b565b840191505092915050565b5f6020820190508181035f830152612bbb8184612b6b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bf082612bc7565b9050919050565b612c0081612be6565b8114612c0a575f80fd5b50565b5f81359050612c1b81612bf7565b92915050565b5f819050919050565b612c3381612c21565b8114612c3d575f80fd5b50565b5f81359050612c4e81612c2a565b92915050565b5f8060408385031215612c6a57612c69612bc3565b5b5f612c7785828601612c0d565b9250506020612c8885828601612c40565b9150509250929050565b5f8115159050919050565b612ca681612c92565b82525050565b5f602082019050612cbf5f830184612c9d565b92915050565b612cce81612c21565b82525050565b5f602082019050612ce75f830184612cc5565b92915050565b5f805f60608486031215612d0457612d03612bc3565b5b5f612d1186828701612c0d565b9350506020612d2286828701612c0d565b9250506040612d3386828701612c40565b9150509250925092565b5f60ff82169050919050565b612d5281612d3d565b82525050565b5f602082019050612d6b5f830184612d49565b92915050565b5f60208284031215612d8657612d85612bc3565b5b5f612d9384828501612c40565b91505092915050565b612da581612be6565b82525050565b5f602082019050612dbe5f830184612d9c565b92915050565b5f60208284031215612dd957612dd8612bc3565b5b5f612de684828501612c0d565b91505092915050565b5f8060408385031215612e0557612e04612bc3565b5b5f612e1285828601612c40565b9250506020612e2385828601612c40565b9150509250929050565b5f819050919050565b5f612e50612e4b612e4684612bc7565b612e2d565b612bc7565b9050919050565b5f612e6182612e36565b9050919050565b5f612e7282612e57565b9050919050565b612e8281612e68565b82525050565b5f602082019050612e9b5f830184612e79565b92915050565b612eaa81612c92565b8114612eb4575f80fd5b50565b5f81359050612ec581612ea1565b92915050565b5f8060408385031215612ee157612ee0612bc3565b5b5f612eee85828601612c0d565b9250506020612eff85828601612eb7565b9150509250929050565b5f8060408385031215612f1f57612f1e612bc3565b5b5f612f2c85828601612c0d565b9250506020612f3d85828601612c0d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612f8b57607f821691505b602082108103612f9e57612f9d612f47565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612fdb82612c21565b9150612fe683612c21565b9250828201905080821115612ffe57612ffd612fa4565b5b92915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613038601783612b3d565b915061304382613004565b602082019050919050565b5f6020820190508181035f8301526130658161302c565b9050919050565b5f819050919050565b5f61308f61308a6130858461306c565b612e2d565b612c21565b9050919050565b61309f81613075565b82525050565b5f60c0820190506130b85f830189612d9c565b6130c56020830188612cc5565b6130d26040830187613096565b6130df6060830186613096565b6130ec6080830185612d9c565b6130f960a0830184612cc5565b979650505050505050565b5f8151905061311281612c2a565b92915050565b5f805f6060848603121561312f5761312e612bc3565b5b5f61313c86828701613104565b935050602061314d86828701613104565b925050604061315e86828701613104565b9150509250925092565b5f60408201905061317b5f830185612d9c565b6131886020830184612cc5565b9392505050565b5f8151905061319d81612ea1565b92915050565b5f602082840312156131b8576131b7612bc3565b5b5f6131c58482850161318f565b91505092915050565b5f6131d882612c21565b91506131e383612c21565b92508282026131f181612c21565b9150828204841483151761320857613207612fa4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61324682612c21565b915061325183612c21565b9250826132615761326061320f565b5b828204905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6132c6603983612b3d565b91506132d18261326c565b604082019050919050565b5f6020820190508181035f8301526132f3816132ba565b9050919050565b7f416c72656164792064697361626c6564210000000000000000000000000000005f82015250565b5f61332e601183612b3d565b9150613339826132fa565b602082019050919050565b5f6020820190508181035f83015261335b81613322565b9050919050565b7f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000005f82015250565b5f613396601d83612b3d565b91506133a182613362565b602082019050919050565b5f6020820190508181035f8301526133c38161338a565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613424602583612b3d565b915061342f826133ca565b604082019050919050565b5f6020820190508181035f83015261345181613418565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134b2602683612b3d565b91506134bd82613458565b604082019050919050565b5f6020820190508181035f8301526134df816134a6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613540602483612b3d565b915061354b826134e6565b604082019050919050565b5f6020820190508181035f83015261356d81613534565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135ce602283612b3d565b91506135d982613574565b604082019050919050565b5f6020820190508181035f8301526135fb816135c2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613636602083612b3d565b915061364182613602565b602082019050919050565b5f6020820190508181035f8301526136638161362a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61369e601d83612b3d565b91506136a98261366a565b602082019050919050565b5f6020820190508181035f8301526136cb81613692565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61372c602583612b3d565b9150613737826136d2565b604082019050919050565b5f6020820190508181035f83015261375981613720565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137ba602383612b3d565b91506137c582613760565b604082019050919050565b5f6020820190508181035f8301526137e7816137ae565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613822601683612b3d565b915061382d826137ee565b602082019050919050565b5f6020820190508181035f83015261384f81613816565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e202054727920616761696e206c617465722e0000000000000000000000602082015250565b5f6138b0603583612b3d565b91506138bb82613856565b604082019050919050565b5f6020820190508181035f8301526138dd816138a4565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61393e603583612b3d565b9150613949826138e4565b604082019050919050565b5f6020820190508181035f83015261396b81613932565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6139a6601383612b3d565b91506139b182613972565b602082019050919050565b5f6020820190508181035f8301526139d38161399a565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613a34603683612b3d565b9150613a3f826139da565b604082019050919050565b5f6020820190508181035f830152613a6181613a28565b9050919050565b5f613a7282612c21565b9150613a7d83612c21565b9250828203905081811115613a9557613a94612fa4565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af5602183612b3d565b9150613b0082613a9b565b604082019050919050565b5f6020820190508181035f830152613b2281613ae9565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b83602283612b3d565b9150613b8e82613b29565b604082019050919050565b5f6020820190508181035f830152613bb081613b77565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613c1f81612bf7565b92915050565b5f60208284031215613c3a57613c39612bc3565b5b5f613c4784828501613c11565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c8281612be6565b82525050565b5f613c938383613c79565b60208301905092915050565b5f602082019050919050565b5f613cb582613c50565b613cbf8185613c5a565b9350613cca83613c6a565b805f5b83811015613cfa578151613ce18882613c88565b9750613cec83613c9f565b925050600181019050613ccd565b5085935050505092915050565b5f60a082019050613d1a5f830188612cc5565b613d276020830187613096565b8181036040830152613d398186613cab565b9050613d486060830185612d9c565b613d556080830184612cc5565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613db9602683612b3d565b9150613dc482613d5f565b604082019050919050565b5f6020820190508181035f830152613de681613dad565b905091905056fea2646970667358221220988562b1eaab5911b82557d2c8ef724c9c157794a8063ed03567bd4bcd0303d464736f6c634300081a0033
Deployed Bytecode Sourcemap
14451:9274:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9680:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10611:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22367:147;;;;;;;;;;;;;:::i;:::-;;10000:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10820:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14900:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23036:194;;;;;;;;;;;;;:::i;:::-;;14796:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9900:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11089:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16997:547;;;;;;;;;;;;;:::i;:::-;;17552:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14868:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14585:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18566:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22059:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14526:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15366:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10116:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;891:103;;;;;;;;;;;;;:::i;:::-;;22522:273;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17645:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;656:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9788:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18107:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22201:156;;;;;;;;;;;;;:::i;:::-;;22803:225;;;;;;;;;;;;;:::i;:::-;;11335:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10251:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17917:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15110:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15024:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17799:110;;;;;;;;;;;;;:::i;:::-;;10452:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15254:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1002:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14960:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15328:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9680:100;9734:13;9767:5;9760:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9680:100;:::o;10611:201::-;10694:4;10711:13;10727:12;:10;:12::i;:::-;10711:28;;10750:32;10759:5;10766:7;10775:6;10750:8;:32::i;:::-;10800:4;10793:11;;;10611:201;;;;:::o;22367:147::-;615:13;:11;:13::i;:::-;22447:18:::1;;22424:20;:41;;;;22488:18;;22476:9;:30;;;;22367:147::o:0;10000:108::-;10061:7;10088:12;;10081:19;;10000:108;:::o;10820:261::-;10917:4;10934:15;10952:12;:10;:12::i;:::-;10934:30;;10975:38;10991:4;10997:7;11006:6;10975:15;:38::i;:::-;11024:27;11034:4;11040:2;11044:6;11024:9;:27::i;:::-;11069:4;11062:11;;;10820:261;;;;;:::o;14900:26::-;;;;:::o;23036:194::-;23106:9;;;;;;;;;;;23090:25;;:12;:10;:12::i;:::-;:25;;;23082:34;;;;;;23127:14;23144:24;23162:4;23144:9;:24::i;:::-;23127:41;;23179:43;23197:4;23204:9;;;;;;;;;;;23215:6;23179:9;:43::i;:::-;23071:159;23036:194::o;14796:63::-;;;;:::o;9900:92::-;9958:5;9983:1;9976:8;;9900:92;:::o;11089:238::-;11177:4;11194:13;11210:12;:10;:12::i;:::-;11194:28;;11233:64;11242:5;11249:7;11286:10;11258:25;11268:5;11275:7;11258:9;:25::i;:::-;:38;;;;:::i;:::-;11233:8;:64::i;:::-;11315:4;11308:11;;;11089:238;;;;:::o;16997:547::-;615:13;:11;:13::i;:::-;17064:11:::1;;;;;;;;;;;17063:12;17055:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17113:70;17130:4;17145:16;17164:18;;17113:8;:70::i;:::-;17194:16;:32;;;17234:21;17279:4;17299:24;17317:4;17299:9;:24::i;:::-;17338:1;17354::::0;17370:42:::1;17427:15;17194:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17471:13;;;;;;;;;;;17464:29;;;17502:16;17521:14;17464:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16997:547::o:0;17552:85::-;17602:27;17608:12;:10;:12::i;:::-;17622:6;17602:5;:27::i;:::-;17552:85;:::o;14868:25::-;;;;:::o;14585:28::-;;;;;;;;;;;;;:::o;18566:126::-;18632:4;18656:19;:28;18676:7;18656:28;;;;;;;;;;;;;;;;;;;;;;;;;18649:35;;18566:126;;;:::o;22059:134::-;615:13;:11;:13::i;:::-;22150:8:::1;22140:7;:18;;;;22178:7;22169:6;:16;;;;22059:134:::0;;:::o;14526:52::-;;;:::o;15366:31::-;;;;;;;;;;;;;:::o;10116:127::-;10190:7;10217:9;:18;10227:7;10217:18;;;;;;;;;;;;;;;;10210:25;;10116:127;;;:::o;891:103::-;615:13;:11;:13::i;:::-;956:30:::1;983:1;956:18;:30::i;:::-;891:103::o:0;22522:273::-;22608:15;;;;;;;;;;;22592:31;;:12;:10;:12::i;:::-;:31;;;22584:40;;;;;;22635:23;22661:24;22679:4;22661:9;:24::i;:::-;22635:50;;22696:18;22745:3;22735:7;22717:15;:25;;;;:::i;:::-;:31;;;;:::i;:::-;22696:52;;22759:28;22776:10;22759:16;:28::i;:::-;22573:222;;22522:273;:::o;17645:144::-;615:13;:11;:13::i;:::-;17777:4:::1;17735:31;:39;17767:6;17735:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17645:144:::0;;:::o;656:87::-;702:7;729:6;;;;;;;;;;;722:13;;656:87;:::o;9788:104::-;9844:13;9877:7;9870:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9788:104;:::o;18107:257::-;615:13;:11;:13::i;:::-;18229::::1;;;;;;;;;;;18221:21;;:4;:21;;::::0;18213:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18315:41;18344:4;18350:5;18315:28;:41::i;:::-;18107:257:::0;;:::o;22201:156::-;615:13;:11;:13::i;:::-;22268:20:::1;;;;;;;;;;;22260:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;22344:5;22321:20;;:28;;;;;;;;;;;;;;;;;;22201:156::o:0;22803:225::-;22878:1;22854:21;:25;22846:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22948:9;;;;;;;;;;;22932:25;;:12;:10;:12::i;:::-;:25;;;22924:34;;;;;;22977:10;22969:28;;:51;22998:21;22969:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22803:225::o;11335:436::-;11428:4;11445:13;11461:12;:10;:12::i;:::-;11445:28;;11484:24;11511:25;11521:5;11528:7;11511:9;:25::i;:::-;11484:52;;11575:15;11555:16;:35;;11547:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11668:60;11677:5;11684:7;11712:15;11693:16;:34;11668:8;:60::i;:::-;11759:4;11752:11;;;;11335:436;;;;:::o;10251:193::-;10330:4;10347:13;10363:12;:10;:12::i;:::-;10347:28;;10386;10396:5;10403:2;10407:6;10386:9;:28::i;:::-;10432:4;10425:11;;;10251:193;;;;:::o;17917:182::-;615:13;:11;:13::i;:::-;18033:8:::1;18002:19;:28;18022:7;18002:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18073:7;18057:34;;;18082:8;18057:34;;;;;;:::i;:::-;;;;;;;;17917:182:::0;;:::o;15110:39::-;;;;;;;;;;;;;:::o;15024:47::-;;;;:::o;17799:110::-;615:13;:11;:13::i;:::-;17868:4:::1;17854:11;;:18;;;;;;;;;;;;;;;;;;17897:4;17883:11;;:18;;;;;;;;;;;;;;;;;;17799:110::o:0;10452:151::-;10541:7;10568:11;:18;10580:5;10568:18;;;;;;;;;;;;;;;:27;10587:7;10568:27;;;;;;;;;;;;;;;;10561:34;;10452:151;;;;:::o;15254:65::-;;;;:::o;1002:201::-;615:13;:11;:13::i;:::-;1111:1:::1;1091:22;;:8;:22;;::::0;1083:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1167:28;1186:8;1167:18;:28::i;:::-;1002:201:::0;:::o;14960:57::-;;;;:::o;15328:31::-;;;;;;;;;;;;;:::o;129:98::-;182:7;209:10;202:17;;129:98;:::o;13474:346::-;13593:1;13576:19;;:5;:19;;;13568:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13674:1;13655:21;;:7;:21;;;13647:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13758:6;13728:11;:18;13740:5;13728:18;;;;;;;;;;;;;;;:27;13747:7;13728:27;;;;;;;;;;;;;;;:36;;;;13796:7;13780:32;;13789:5;13780:32;;;13805:6;13780:32;;;;;;:::i;:::-;;;;;;;;13474:346;;;:::o;751:132::-;826:12;:10;:12::i;:::-;815:23;;:7;:5;:7::i;:::-;:23;;;807:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;751:132::o;13828:419::-;13929:24;13956:25;13966:5;13973:7;13956:9;:25::i;:::-;13929:52;;14016:17;13996:16;:37;13992:248;;14078:6;14058:16;:26;;14050:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14162:51;14171:5;14178:7;14206:6;14187:16;:25;14162:8;:51::i;:::-;13992:248;13918:329;13828:419;;;:::o;18700:2867::-;18814:1;18798:18;;:4;:18;;;18790:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18891:1;18877:16;;:2;:16;;;18869:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18960:1;18950:6;:11;18946:93;;18978:28;18994:4;19000:2;19004:1;18978:15;:28::i;:::-;19021:7;;18946:93;19063:7;:5;:7::i;:::-;19055:15;;:4;:15;;;;:32;;;;;19080:7;:5;:7::i;:::-;19074:13;;:2;:13;;;;19055:32;:52;;;;;19105:1;19091:16;;:2;:16;;;;19055:52;:77;;;;;19125:6;19111:21;;:2;:21;;;;19055:77;:90;;;;;19137:8;;;;;;;;;;;19136:9;19055:90;19051:1545;;;19167:11;;;;;;;;;;;19162:140;;19207:19;:25;19227:4;19207:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19236:19;:23;19256:2;19236:23;;;;;;;;;;;;;;;;;;;;;;;;;19207:52;19199:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19162:140;19322:20;;;;;;;;;;;:50;;;;;19347:19;:25;19367:4;19347:25;;;;;;;;;;;;;;;;;;;;;;;;;19346:26;19322:50;:78;;;;;19377:19;:23;19397:2;19377:23;;;;;;;;;;;;;;;;;;;;;;;;;19376:24;19322:78;19318:566;;;19442:16;19428:31;;:2;:31;;;;:63;;;;;19477:13;;;;;;;;;;;19463:28;;:2;:28;;;;19428:63;19424:445;;;19569:12;19527:28;:39;19556:9;19527:39;;;;;;;;;;;;;;;;:54;:105;;;;;19620:12;19585:28;:32;19614:2;19585:32;;;;;;;;;;;;;;;;:47;19527:105;19519:171;;;;;;;;;;;;:::i;:::-;;;;;;;;;19759:12;19717:28;:39;19746:9;19717:39;;;;;;;;;;;;;;;:54;;;;19833:12;19798:28;:32;19827:2;19798:32;;;;;;;;;;;;;;;:47;;;;19424:445;19318:566;19904:25;:31;19930:4;19904:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19940:31;:35;19972:2;19940:35;;;;;;;;;;;;;;;;;;;;;;;;;19939:36;19904:71;19900:685;;;20014:20;;20004:6;:30;;19996:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20145:9;;20128:13;20138:2;20128:9;:13::i;:::-;20119:6;:22;;;;:::i;:::-;:35;;20111:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19900:685;;;20217:25;:29;20243:2;20217:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20251:31;:37;20283:4;20251:37;;;;;;;;;;;;;;;;;;;;;;;;;20250:38;20217:71;20213:372;;;20327:20;;20317:6;:30;;20309:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20213:372;;;20446:31;:35;20478:2;20446:35;;;;;;;;;;;;;;;;;;;;;;;;;20441:144;;20536:9;;20519:13;20529:2;20519:9;:13::i;:::-;20510:6;:22;;;;:::i;:::-;:35;;20502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20441:144;20213:372;19900:685;19051:1545;20608:28;20639:24;20657:4;20639:9;:24::i;:::-;20608:55;;20674:12;20712:18;;20689:20;:41;20674:56;;20745:7;:22;;;;;20756:11;;;;;;;;;;;20745:22;:35;;;;;20772:8;;;;;;;;;;;20771:9;20745:35;:71;;;;;20785:25;:31;20811:4;20785:31;;;;;;;;;;;;;;;;;;;;;;;;;20784:32;20745:71;:101;;;;;20821:19;:25;20841:4;20821:25;;;;;;;;;;;;;;;;;;;;;;;;;20820:26;20745:101;:129;;;;;20851:19;:23;20871:2;20851:23;;;;;;;;;;;;;;;;;;;;;;;;;20850:24;20745:129;20741:239;;;20902:4;20891:8;;:15;;;;;;;;;;;;;;;;;;20921:16;20930:6;20921:8;:16::i;:::-;20963:5;20952:8;;:16;;;;;;;;;;;;;;;;;;20741:239;20992:12;21008:8;;;;;;;;;;;21007:9;:39;;;;;21021:19;:25;21041:4;21021:25;;;;;;;;;;;;;;;;;;;;;;;;;21020:26;21007:39;:67;;;;;21051:19;:23;21071:2;21051:23;;;;;;;;;;;;;;;;;;;;;;;;;21050:24;21007:67;20992:82;;21087:12;21118:7;21114:402;;;21146:25;:29;21172:2;21146:29;;;;;;;;;;;;;;;;;;;;;;;;;21142:229;;;21203:28;21227:3;21203:19;21214:7;;21203:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;21196:35;;21142:229;;;21269:25;:31;21295:4;21269:31;;;;;;;;;;;;;;;;;;;;;;;;;21266:105;;;21328:27;21351:3;21328:18;21339:6;;21328;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;21321:34;;21266:105;21142:229;21396:1;21389:4;:8;21385:91;;;21418:42;21434:4;21448;21455;21418:15;:42::i;:::-;21385:91;21500:4;21490:14;;;;;:::i;:::-;;;21114:402;21526:33;21542:4;21548:2;21552:6;21526:15;:33::i;:::-;18779:2788;;;;18700:2867;;;;:::o;12871:595::-;12974:1;12955:21;;:7;:21;;;12947:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13027:49;13048:7;13065:1;13069:6;13027:20;:49::i;:::-;13089:22;13114:9;:18;13124:7;13114:18;;;;;;;;;;;;;;;;13089:43;;13169:6;13151:14;:24;;13143:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13288:6;13271:14;:23;13250:9;:18;13260:7;13250:18;;;;;;;;;;;;;;;:44;;;;13325:6;13309:12;;:22;;;;;;;;;;;13386:1;13360:37;;13369:7;13360:37;;;13390:6;13360:37;;;;;;:::i;:::-;;;;;;;;13410:48;13430:7;13447:1;13451:6;13410:19;:48::i;:::-;12936:530;12871:595;;:::o;1211:191::-;1285:16;1304:6;;;;;;;;;;;1285:25;;1330:8;1321:6;;:17;;;;;;;;;;;;;;;;;;1385:8;1354:40;;1375:8;1354:40;;;;;;;;;;;;1274:128;1211:191;:::o;21575:476::-;21641:21;21679:1;21665:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21641:40;;21710:4;21692;21697:1;21692:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21736:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21726:4;21731:1;21726:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21770:63;21787:4;21802:16;21821:11;21770:8;:63::i;:::-;21844:16;:67;;;21926:11;21952:1;21968:4;21987:15;;;;;;;;;;;22017;21844:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21630:421;21575:476;:::o;18372:186::-;18489:5;18455:25;:31;18481:4;18455:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18544:5;18510:40;;18538:4;18510:40;;;;;;;;;;;;18372:186;;:::o;11779:641::-;11892:1;11876:18;;:4;:18;;;11868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11969:1;11955:16;;:2;:16;;;11947:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12024:38;12045:4;12051:2;12055:6;12024:20;:38::i;:::-;12075:19;12097:9;:15;12107:4;12097:15;;;;;;;;;;;;;;;;12075:37;;12146:6;12131:11;:21;;12123:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12263:6;12249:11;:20;12231:9;:15;12241:4;12231:15;;;;;;;;;;;;;;;:38;;;;12301:6;12284:9;:13;12294:2;12284:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12351:2;12336:26;;12345:4;12336:26;;;12355:6;12336:26;;;;;;:::i;:::-;;;;;;;;12375:37;12395:4;12401:2;12405:6;12375:19;:37::i;:::-;11857:563;11779:641;;;:::o;23238:484::-;23296:23;23322:24;23340:4;23322:9;:24::i;:::-;23296:50;;23380:1;23361:15;:20;23357:59;;23398:7;;;23357:59;23426:20;23449:15;23426:38;;23496:18;;23481:12;:33;23477:99;;;23546:18;;23531:33;;23477:99;23606:11;23591:12;:26;23588:84;;;23649:11;23634:26;;23588:84;23684:30;23701:12;23684:16;:30::i;:::-;23285:437;;23238:484;;:::o;8137:98::-;8195:7;8226:1;8222;:5;;;;:::i;:::-;8215:12;;8137:98;;;;:::o;8243:::-;8301:7;8332:1;8328;:5;;;;:::i;:::-;8321:12;;8243:98;;;;:::o;14255:91::-;;;;:::o;14354:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:60::-;6276:3;6297:5;6290:12;;6248:60;;;:::o;6314:142::-;6364:9;6397:53;6415:34;6424:24;6442:5;6424:24;:::i;:::-;6415:34;:::i;:::-;6397:53;:::i;:::-;6384:66;;6314:142;;;:::o;6462:126::-;6512:9;6545:37;6576:5;6545:37;:::i;:::-;6532:50;;6462:126;;;:::o;6594:152::-;6670:9;6703:37;6734:5;6703:37;:::i;:::-;6690:50;;6594:152;;;:::o;6752:183::-;6865:63;6922:5;6865:63;:::i;:::-;6860:3;6853:76;6752:183;;:::o;6941:274::-;7060:4;7098:2;7087:9;7083:18;7075:26;;7111:97;7205:1;7194:9;7190:17;7181:6;7111:97;:::i;:::-;6941:274;;;;:::o;7221:116::-;7291:21;7306:5;7291:21;:::i;:::-;7284:5;7281:32;7271:60;;7327:1;7324;7317:12;7271:60;7221:116;:::o;7343:133::-;7386:5;7424:6;7411:20;7402:29;;7440:30;7464:5;7440:30;:::i;:::-;7343:133;;;;:::o;7482:468::-;7547:6;7555;7604:2;7592:9;7583:7;7579:23;7575:32;7572:119;;;7610:79;;:::i;:::-;7572:119;7730:1;7755:53;7800:7;7791:6;7780:9;7776:22;7755:53;:::i;:::-;7745:63;;7701:117;7857:2;7883:50;7925:7;7916:6;7905:9;7901:22;7883:50;:::i;:::-;7873:60;;7828:115;7482:468;;;;;:::o;7956:474::-;8024:6;8032;8081:2;8069:9;8060:7;8056:23;8052:32;8049:119;;;8087:79;;:::i;:::-;8049:119;8207:1;8232:53;8277:7;8268:6;8257:9;8253:22;8232:53;:::i;:::-;8222:63;;8178:117;8334:2;8360:53;8405:7;8396:6;8385:9;8381:22;8360:53;:::i;:::-;8350:63;;8305:118;7956:474;;;;;:::o;8436:180::-;8484:77;8481:1;8474:88;8581:4;8578:1;8571:15;8605:4;8602:1;8595:15;8622:320;8666:6;8703:1;8697:4;8693:12;8683:22;;8750:1;8744:4;8740:12;8771:18;8761:81;;8827:4;8819:6;8815:17;8805:27;;8761:81;8889:2;8881:6;8878:14;8858:18;8855:38;8852:84;;8908:18;;:::i;:::-;8852:84;8673:269;8622:320;;;:::o;8948:180::-;8996:77;8993:1;8986:88;9093:4;9090:1;9083:15;9117:4;9114:1;9107:15;9134:191;9174:3;9193:20;9211:1;9193:20;:::i;:::-;9188:25;;9227:20;9245:1;9227:20;:::i;:::-;9222:25;;9270:1;9267;9263:9;9256:16;;9291:3;9288:1;9285:10;9282:36;;;9298:18;;:::i;:::-;9282:36;9134:191;;;;:::o;9331:173::-;9471:25;9467:1;9459:6;9455:14;9448:49;9331:173;:::o;9510:366::-;9652:3;9673:67;9737:2;9732:3;9673:67;:::i;:::-;9666:74;;9749:93;9838:3;9749:93;:::i;:::-;9867:2;9862:3;9858:12;9851:19;;9510:366;;;:::o;9882:419::-;10048:4;10086:2;10075:9;10071:18;10063:26;;10135:9;10129:4;10125:20;10121:1;10110:9;10106:17;10099:47;10163:131;10289:4;10163:131;:::i;:::-;10155:139;;9882:419;;;:::o;10307:85::-;10352:7;10381:5;10370:16;;10307:85;;;:::o;10398:158::-;10456:9;10489:61;10507:42;10516:32;10542:5;10516:32;:::i;:::-;10507:42;:::i;:::-;10489:61;:::i;:::-;10476:74;;10398:158;;;:::o;10562:147::-;10657:45;10696:5;10657:45;:::i;:::-;10652:3;10645:58;10562:147;;:::o;10715:807::-;10964:4;11002:3;10991:9;10987:19;10979:27;;11016:71;11084:1;11073:9;11069:17;11060:6;11016:71;:::i;:::-;11097:72;11165:2;11154:9;11150:18;11141:6;11097:72;:::i;:::-;11179:80;11255:2;11244:9;11240:18;11231:6;11179:80;:::i;:::-;11269;11345:2;11334:9;11330:18;11321:6;11269:80;:::i;:::-;11359:73;11427:3;11416:9;11412:19;11403:6;11359:73;:::i;:::-;11442;11510:3;11499:9;11495:19;11486:6;11442:73;:::i;:::-;10715:807;;;;;;;;;:::o;11528:143::-;11585:5;11616:6;11610:13;11601:22;;11632:33;11659:5;11632:33;:::i;:::-;11528:143;;;;:::o;11677:663::-;11765:6;11773;11781;11830:2;11818:9;11809:7;11805:23;11801:32;11798:119;;;11836:79;;:::i;:::-;11798:119;11956:1;11981:64;12037:7;12028:6;12017:9;12013:22;11981:64;:::i;:::-;11971:74;;11927:128;12094:2;12120:64;12176:7;12167:6;12156:9;12152:22;12120:64;:::i;:::-;12110:74;;12065:129;12233:2;12259:64;12315:7;12306:6;12295:9;12291:22;12259:64;:::i;:::-;12249:74;;12204:129;11677:663;;;;;:::o;12346:332::-;12467:4;12505:2;12494:9;12490:18;12482:26;;12518:71;12586:1;12575:9;12571:17;12562:6;12518:71;:::i;:::-;12599:72;12667:2;12656:9;12652:18;12643:6;12599:72;:::i;:::-;12346:332;;;;;:::o;12684:137::-;12738:5;12769:6;12763:13;12754:22;;12785:30;12809:5;12785:30;:::i;:::-;12684:137;;;;:::o;12827:345::-;12894:6;12943:2;12931:9;12922:7;12918:23;12914:32;12911:119;;;12949:79;;:::i;:::-;12911:119;13069:1;13094:61;13147:7;13138:6;13127:9;13123:22;13094:61;:::i;:::-;13084:71;;13040:125;12827:345;;;;:::o;13178:410::-;13218:7;13241:20;13259:1;13241:20;:::i;:::-;13236:25;;13275:20;13293:1;13275:20;:::i;:::-;13270:25;;13330:1;13327;13323:9;13352:30;13370:11;13352:30;:::i;:::-;13341:41;;13531:1;13522:7;13518:15;13515:1;13512:22;13492:1;13485:9;13465:83;13442:139;;13561:18;;:::i;:::-;13442:139;13226:362;13178:410;;;;:::o;13594:180::-;13642:77;13639:1;13632:88;13739:4;13736:1;13729:15;13763:4;13760:1;13753:15;13780:185;13820:1;13837:20;13855:1;13837:20;:::i;:::-;13832:25;;13871:20;13889:1;13871:20;:::i;:::-;13866:25;;13910:1;13900:35;;13915:18;;:::i;:::-;13900:35;13957:1;13954;13950:9;13945:14;;13780:185;;;;:::o;13971:244::-;14111:34;14107:1;14099:6;14095:14;14088:58;14180:27;14175:2;14167:6;14163:15;14156:52;13971:244;:::o;14221:366::-;14363:3;14384:67;14448:2;14443:3;14384:67;:::i;:::-;14377:74;;14460:93;14549:3;14460:93;:::i;:::-;14578:2;14573:3;14569:12;14562:19;;14221:366;;;:::o;14593:419::-;14759:4;14797:2;14786:9;14782:18;14774:26;;14846:9;14840:4;14836:20;14832:1;14821:9;14817:17;14810:47;14874:131;15000:4;14874:131;:::i;:::-;14866:139;;14593:419;;;:::o;15018:167::-;15158:19;15154:1;15146:6;15142:14;15135:43;15018:167;:::o;15191:366::-;15333:3;15354:67;15418:2;15413:3;15354:67;:::i;:::-;15347:74;;15430:93;15519:3;15430:93;:::i;:::-;15548:2;15543:3;15539:12;15532:19;;15191:366;;;:::o;15563:419::-;15729:4;15767:2;15756:9;15752:18;15744:26;;15816:9;15810:4;15806:20;15802:1;15791:9;15787:17;15780:47;15844:131;15970:4;15844:131;:::i;:::-;15836:139;;15563:419;;;:::o;15988:179::-;16128:31;16124:1;16116:6;16112:14;16105:55;15988:179;:::o;16173:366::-;16315:3;16336:67;16400:2;16395:3;16336:67;:::i;:::-;16329:74;;16412:93;16501:3;16412:93;:::i;:::-;16530:2;16525:3;16521:12;16514:19;;16173:366;;;:::o;16545:419::-;16711:4;16749:2;16738:9;16734:18;16726:26;;16798:9;16792:4;16788:20;16784:1;16773:9;16769:17;16762:47;16826:131;16952:4;16826:131;:::i;:::-;16818:139;;16545:419;;;:::o;16970:224::-;17110:34;17106:1;17098:6;17094:14;17087:58;17179:7;17174:2;17166:6;17162:15;17155:32;16970:224;:::o;17200:366::-;17342:3;17363:67;17427:2;17422:3;17363:67;:::i;:::-;17356:74;;17439:93;17528:3;17439:93;:::i;:::-;17557:2;17552:3;17548:12;17541:19;;17200:366;;;:::o;17572:419::-;17738:4;17776:2;17765:9;17761:18;17753:26;;17825:9;17819:4;17815:20;17811:1;17800:9;17796:17;17789:47;17853:131;17979:4;17853:131;:::i;:::-;17845:139;;17572:419;;;:::o;17997:225::-;18137:34;18133:1;18125:6;18121:14;18114:58;18206:8;18201:2;18193:6;18189:15;18182:33;17997:225;:::o;18228:366::-;18370:3;18391:67;18455:2;18450:3;18391:67;:::i;:::-;18384:74;;18467:93;18556:3;18467:93;:::i;:::-;18585:2;18580:3;18576:12;18569:19;;18228:366;;;:::o;18600:419::-;18766:4;18804:2;18793:9;18789:18;18781:26;;18853:9;18847:4;18843:20;18839:1;18828:9;18824:17;18817:47;18881:131;19007:4;18881:131;:::i;:::-;18873:139;;18600:419;;;:::o;19025:223::-;19165:34;19161:1;19153:6;19149:14;19142:58;19234:6;19229:2;19221:6;19217:15;19210:31;19025:223;:::o;19254:366::-;19396:3;19417:67;19481:2;19476:3;19417:67;:::i;:::-;19410:74;;19493:93;19582:3;19493:93;:::i;:::-;19611:2;19606:3;19602:12;19595:19;;19254:366;;;:::o;19626:419::-;19792:4;19830:2;19819:9;19815:18;19807:26;;19879:9;19873:4;19869:20;19865:1;19854:9;19850:17;19843:47;19907:131;20033:4;19907:131;:::i;:::-;19899:139;;19626:419;;;:::o;20051:221::-;20191:34;20187:1;20179:6;20175:14;20168:58;20260:4;20255:2;20247:6;20243:15;20236:29;20051:221;:::o;20278:366::-;20420:3;20441:67;20505:2;20500:3;20441:67;:::i;:::-;20434:74;;20517:93;20606:3;20517:93;:::i;:::-;20635:2;20630:3;20626:12;20619:19;;20278:366;;;:::o;20650:419::-;20816:4;20854:2;20843:9;20839:18;20831:26;;20903:9;20897:4;20893:20;20889:1;20878:9;20874:17;20867:47;20931:131;21057:4;20931:131;:::i;:::-;20923:139;;20650:419;;;:::o;21075:182::-;21215:34;21211:1;21203:6;21199:14;21192:58;21075:182;:::o;21263:366::-;21405:3;21426:67;21490:2;21485:3;21426:67;:::i;:::-;21419:74;;21502:93;21591:3;21502:93;:::i;:::-;21620:2;21615:3;21611:12;21604:19;;21263:366;;;:::o;21635:419::-;21801:4;21839:2;21828:9;21824:18;21816:26;;21888:9;21882:4;21878:20;21874:1;21863:9;21859:17;21852:47;21916:131;22042:4;21916:131;:::i;:::-;21908:139;;21635:419;;;:::o;22060:179::-;22200:31;22196:1;22188:6;22184:14;22177:55;22060:179;:::o;22245:366::-;22387:3;22408:67;22472:2;22467:3;22408:67;:::i;:::-;22401:74;;22484:93;22573:3;22484:93;:::i;:::-;22602:2;22597:3;22593:12;22586:19;;22245:366;;;:::o;22617:419::-;22783:4;22821:2;22810:9;22806:18;22798:26;;22870:9;22864:4;22860:20;22856:1;22845:9;22841:17;22834:47;22898:131;23024:4;22898:131;:::i;:::-;22890:139;;22617:419;;;:::o;23042:224::-;23182:34;23178:1;23170:6;23166:14;23159:58;23251:7;23246:2;23238:6;23234:15;23227:32;23042:224;:::o;23272:366::-;23414:3;23435:67;23499:2;23494:3;23435:67;:::i;:::-;23428:74;;23511:93;23600:3;23511:93;:::i;:::-;23629:2;23624:3;23620:12;23613:19;;23272:366;;;:::o;23644:419::-;23810:4;23848:2;23837:9;23833:18;23825:26;;23897:9;23891:4;23887:20;23883:1;23872:9;23868:17;23861:47;23925:131;24051:4;23925:131;:::i;:::-;23917:139;;23644:419;;;:::o;24069:222::-;24209:34;24205:1;24197:6;24193:14;24186:58;24278:5;24273:2;24265:6;24261:15;24254:30;24069:222;:::o;24297:366::-;24439:3;24460:67;24524:2;24519:3;24460:67;:::i;:::-;24453:74;;24536:93;24625:3;24536:93;:::i;:::-;24654:2;24649:3;24645:12;24638:19;;24297:366;;;:::o;24669:419::-;24835:4;24873:2;24862:9;24858:18;24850:26;;24922:9;24916:4;24912:20;24908:1;24897:9;24893:17;24886:47;24950:131;25076:4;24950:131;:::i;:::-;24942:139;;24669:419;;;:::o;25094:172::-;25234:24;25230:1;25222:6;25218:14;25211:48;25094:172;:::o;25272:366::-;25414:3;25435:67;25499:2;25494:3;25435:67;:::i;:::-;25428:74;;25511:93;25600:3;25511:93;:::i;:::-;25629:2;25624:3;25620:12;25613:19;;25272:366;;;:::o;25644:419::-;25810:4;25848:2;25837:9;25833:18;25825:26;;25897:9;25891:4;25887:20;25883:1;25872:9;25868:17;25861:47;25925:131;26051:4;25925:131;:::i;:::-;25917:139;;25644:419;;;:::o;26069:240::-;26209:34;26205:1;26197:6;26193:14;26186:58;26278:23;26273:2;26265:6;26261:15;26254:48;26069:240;:::o;26315:366::-;26457:3;26478:67;26542:2;26537:3;26478:67;:::i;:::-;26471:74;;26554:93;26643:3;26554:93;:::i;:::-;26672:2;26667:3;26663:12;26656:19;;26315:366;;;:::o;26687:419::-;26853:4;26891:2;26880:9;26876:18;26868:26;;26940:9;26934:4;26930:20;26926:1;26915:9;26911:17;26904:47;26968:131;27094:4;26968:131;:::i;:::-;26960:139;;26687:419;;;:::o;27112:240::-;27252:34;27248:1;27240:6;27236:14;27229:58;27321:23;27316:2;27308:6;27304:15;27297:48;27112:240;:::o;27358:366::-;27500:3;27521:67;27585:2;27580:3;27521:67;:::i;:::-;27514:74;;27597:93;27686:3;27597:93;:::i;:::-;27715:2;27710:3;27706:12;27699:19;;27358:366;;;:::o;27730:419::-;27896:4;27934:2;27923:9;27919:18;27911:26;;27983:9;27977:4;27973:20;27969:1;27958:9;27954:17;27947:47;28011:131;28137:4;28011:131;:::i;:::-;28003:139;;27730:419;;;:::o;28155:169::-;28295:21;28291:1;28283:6;28279:14;28272:45;28155:169;:::o;28330:366::-;28472:3;28493:67;28557:2;28552:3;28493:67;:::i;:::-;28486:74;;28569:93;28658:3;28569:93;:::i;:::-;28687:2;28682:3;28678:12;28671:19;;28330:366;;;:::o;28702:419::-;28868:4;28906:2;28895:9;28891:18;28883:26;;28955:9;28949:4;28945:20;28941:1;28930:9;28926:17;28919:47;28983:131;29109:4;28983:131;:::i;:::-;28975:139;;28702:419;;;:::o;29127:241::-;29267:34;29263:1;29255:6;29251:14;29244:58;29336:24;29331:2;29323:6;29319:15;29312:49;29127:241;:::o;29374:366::-;29516:3;29537:67;29601:2;29596:3;29537:67;:::i;:::-;29530:74;;29613:93;29702:3;29613:93;:::i;:::-;29731:2;29726:3;29722:12;29715:19;;29374:366;;;:::o;29746:419::-;29912:4;29950:2;29939:9;29935:18;29927:26;;29999:9;29993:4;29989:20;29985:1;29974:9;29970:17;29963:47;30027:131;30153:4;30027:131;:::i;:::-;30019:139;;29746:419;;;:::o;30171:194::-;30211:4;30231:20;30249:1;30231:20;:::i;:::-;30226:25;;30265:20;30283:1;30265:20;:::i;:::-;30260:25;;30309:1;30306;30302:9;30294:17;;30333:1;30327:4;30324:11;30321:37;;;30338:18;;:::i;:::-;30321:37;30171:194;;;;:::o;30371:220::-;30511:34;30507:1;30499:6;30495:14;30488:58;30580:3;30575:2;30567:6;30563:15;30556:28;30371:220;:::o;30597:366::-;30739:3;30760:67;30824:2;30819:3;30760:67;:::i;:::-;30753:74;;30836:93;30925:3;30836:93;:::i;:::-;30954:2;30949:3;30945:12;30938:19;;30597:366;;;:::o;30969:419::-;31135:4;31173:2;31162:9;31158:18;31150:26;;31222:9;31216:4;31212:20;31208:1;31197:9;31193:17;31186:47;31250:131;31376:4;31250:131;:::i;:::-;31242:139;;30969:419;;;:::o;31394:221::-;31534:34;31530:1;31522:6;31518:14;31511:58;31603:4;31598:2;31590:6;31586:15;31579:29;31394:221;:::o;31621:366::-;31763:3;31784:67;31848:2;31843:3;31784:67;:::i;:::-;31777:74;;31860:93;31949:3;31860:93;:::i;:::-;31978:2;31973:3;31969:12;31962:19;;31621:366;;;:::o;31993:419::-;32159:4;32197:2;32186:9;32182:18;32174:26;;32246:9;32240:4;32236:20;32232:1;32221:9;32217:17;32210:47;32274:131;32400:4;32274:131;:::i;:::-;32266:139;;31993:419;;;:::o;32418:180::-;32466:77;32463:1;32456:88;32563:4;32560:1;32553:15;32587:4;32584:1;32577:15;32604:180;32652:77;32649:1;32642:88;32749:4;32746:1;32739:15;32773:4;32770:1;32763:15;32790:143;32847:5;32878:6;32872:13;32863:22;;32894:33;32921:5;32894:33;:::i;:::-;32790:143;;;;:::o;32939:351::-;33009:6;33058:2;33046:9;33037:7;33033:23;33029:32;33026:119;;;33064:79;;:::i;:::-;33026:119;33184:1;33209:64;33265:7;33256:6;33245:9;33241:22;33209:64;:::i;:::-;33199:74;;33155:128;32939:351;;;;:::o;33296:114::-;33363:6;33397:5;33391:12;33381:22;;33296:114;;;:::o;33416:184::-;33515:11;33549:6;33544:3;33537:19;33589:4;33584:3;33580:14;33565:29;;33416:184;;;;:::o;33606:132::-;33673:4;33696:3;33688:11;;33726:4;33721:3;33717:14;33709:22;;33606:132;;;:::o;33744:108::-;33821:24;33839:5;33821:24;:::i;:::-;33816:3;33809:37;33744:108;;:::o;33858:179::-;33927:10;33948:46;33990:3;33982:6;33948:46;:::i;:::-;34026:4;34021:3;34017:14;34003:28;;33858:179;;;;:::o;34043:113::-;34113:4;34145;34140:3;34136:14;34128:22;;34043:113;;;:::o;34192:732::-;34311:3;34340:54;34388:5;34340:54;:::i;:::-;34410:86;34489:6;34484:3;34410:86;:::i;:::-;34403:93;;34520:56;34570:5;34520:56;:::i;:::-;34599:7;34630:1;34615:284;34640:6;34637:1;34634:13;34615:284;;;34716:6;34710:13;34743:63;34802:3;34787:13;34743:63;:::i;:::-;34736:70;;34829:60;34882:6;34829:60;:::i;:::-;34819:70;;34675:224;34662:1;34659;34655:9;34650:14;;34615:284;;;34619:14;34915:3;34908:10;;34316:608;;;34192:732;;;;:::o;34930:831::-;35193:4;35231:3;35220:9;35216:19;35208:27;;35245:71;35313:1;35302:9;35298:17;35289:6;35245:71;:::i;:::-;35326:80;35402:2;35391:9;35387:18;35378:6;35326:80;:::i;:::-;35453:9;35447:4;35443:20;35438:2;35427:9;35423:18;35416:48;35481:108;35584:4;35575:6;35481:108;:::i;:::-;35473:116;;35599:72;35667:2;35656:9;35652:18;35643:6;35599:72;:::i;:::-;35681:73;35749:3;35738:9;35734:19;35725:6;35681:73;:::i;:::-;34930:831;;;;;;;;:::o;35767:225::-;35907:34;35903:1;35895:6;35891:14;35884:58;35976:8;35971:2;35963:6;35959:15;35952:33;35767:225;:::o;35998:366::-;36140:3;36161:67;36225:2;36220:3;36161:67;:::i;:::-;36154:74;;36237:93;36326:3;36237:93;:::i;:::-;36355:2;36350:3;36346:12;36339:19;;35998:366;;;:::o;36370:419::-;36536:4;36574:2;36563:9;36559:18;36551:26;;36623:9;36617:4;36613:20;36609:1;36598:9;36594:17;36587:47;36651:131;36777:4;36651:131;:::i;:::-;36643:139;;36370:419;;;:::o
Swarm Source
ipfs://988562b1eaab5911b82557d2c8ef724c9c157794a8063ed03567bd4bcd0303d4
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.