Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
7,777,777 FELIX
Holders
40
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
48,878.68 FELIXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FELIX
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-18 */ /* .:. .::::. .. ..::::::'':: _ _ _ _ _ _ ::::.. .::'''''::: ''. | (_)_ __ | | _____ __ _| |_ | |_| |__ ___ ':::::::' '. .. '. | | | '_ \| |/ / __| / _` | __| | __| '_ \ / _ \ ::::::' : ':: : | | | | | | <\__ \ | (_| | |_ | |_| | | | __/ ::::: . : ':' : |_|_|_| |_|_|\_\___/ \__,_|\__| \__|_| |_|\___| ::::: ::: :. .'. .:::::: ':' .' '.:::: : _ _ _ ::::::::. . ::::: : | |__ ___ | |_| |_ ___ _ __ ___ ::::: '':.... '' '''' : | '_ \ / _ \| __| __/ _ \| '_ ` _ \ ':::: .:' ...'' : | |_) | (_) | |_| || (_) | | | | | | ..::. '.........:::::' : |_.__/ \___/ \__|\__\___/|_| |_| |_| '':::. '::'':'':::' .' '.. ''.....' ..' - Felix The Cat ''........'' */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _createInitialSupply(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, 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); } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } interface IDexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } contract FELIX is ERC20, Ownable { uint256 public maxBuyAmount; uint256 public maxSellAmount; uint256 public maxWalletAmount; IDexRouter public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool private swapping; uint256 public swapTokensAtAmount; address public marketingAddress; bool public tradingActive = false; bool public swapEnabled = false; uint256 private buyTotalFees; uint256 public buyMarketingFee; uint256 public buyLiquidityFee; uint256 public buyBurnFee; uint256 private sellTotalFees; uint256 public sellMarketingFee; uint256 public sellLiquidityFee; uint256 public sellBurnFee; uint256 public tokensForMarketing; uint256 public tokensForLiquidity; uint256 public tokensForBurn; /******************/ //exlcude from fees and max transaction amount mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping (address => bool) public automatedMarketMakerPairs; event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event EnabledTrading(); event ExcludeFromFees(address indexed account, bool isExcluded); event UpdatedMaxBuyAmount(uint256 newAmount); event UpdatedMaxSellAmount(uint256 newAmount); event UpdatedMaxWalletAmount(uint256 newAmount); event UpdatedMarketingAddress(address indexed newWallet); event MaxTransactionExclusion(address _address, bool excluded); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event TransferForeignToken(address token, uint256 amount); constructor() ERC20("FELIX THE CAT", "FELIX") { address newOwner = msg.sender; // can leave alone if owner is deployer. IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IDexFactory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 totalSupply = 7777777 * 1e18; maxBuyAmount = totalSupply * 69 / 10000; maxSellAmount = totalSupply * 69 / 10000; maxWalletAmount = totalSupply * 69 / 10000; swapTokensAtAmount = totalSupply * 100 / 100000; // 0.1% swap amount buyMarketingFee = 8; buyLiquidityFee = 0; buyBurnFee = 0; buyTotalFees = buyMarketingFee + buyLiquidityFee; sellMarketingFee = 8; sellLiquidityFee = 0; sellBurnFee = 0; sellTotalFees = sellMarketingFee + sellLiquidityFee; _excludeFromMaxTransaction(newOwner, true); _excludeFromMaxTransaction(address(this), true); _excludeFromMaxTransaction(address(0xdead), true); excludeFromFees(newOwner, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); marketingAddress = 0x3F04d3499FF9500153C3667B46d5Cc908a72DbE1; _createInitialSupply(newOwner, totalSupply); transferOwnership(newOwner); } receive() external payable {} // once enabled, can never be turned off function enableTrading() external onlyOwner { require(!tradingActive, "Cannot reenable trading"); tradingActive = true; swapEnabled = true; emit EnabledTrading(); } function updateMaxBuyAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 25 / 10000)/1e18, "Cannot set maxBuy lower than 0.25%"); maxBuyAmount = newNum * (10**18); emit UpdatedMaxBuyAmount(maxBuyAmount); } function updateMaxSellAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 25 / 10000)/1e18, "Cannot set maxSell lower than 0.25%"); maxSellAmount = newNum * (10**18); emit UpdatedMaxSellAmount(maxSellAmount); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 25 / 10000)/1e18, "Cannot set maxWallet lower than 0.25%"); maxWalletAmount = newNum * (10**18); emit UpdatedMaxWalletAmount(maxWalletAmount); } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner { require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= totalSupply() * 3 / 100, "Swap amount cannot be higher than 3% total supply."); swapTokensAtAmount = newAmount * (10**18); } function _excludeFromMaxTransaction(address updAds, bool isExcluded) private { _isExcludedMaxTransactionAmount[updAds] = isExcluded; emit MaxTransactionExclusion(updAds, isExcluded); } function excludeFromMaxTransaction(address updAds, bool isEx) external onlyOwner { if(!isEx){ require(updAds != uniswapV2Pair, "Cannot remove uniswap pair from max txn"); } _isExcludedMaxTransactionAmount[updAds] = isEx; } function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; _excludeFromMaxTransaction(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function updateBuyFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _burnFee) external onlyOwner { buyMarketingFee = _marketingFee; buyLiquidityFee = _liquidityFee; buyBurnFee = _burnFee; buyTotalFees = buyMarketingFee + buyLiquidityFee; require((buyTotalFees + buyBurnFee) <= 25,"Total buy fees cannot be greater than 25%"); } function updateSellFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _burnFee) external onlyOwner { sellMarketingFee = _marketingFee; sellLiquidityFee = _liquidityFee; sellBurnFee = _burnFee; sellTotalFees = sellMarketingFee + sellLiquidityFee; require((sellTotalFees + sellBurnFee) <= 25,"Total sell fees cannot be greater than 25%"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "amount must be greater than 0"); if (from != owner() && to != owner() && to != address(0) && to != address(0xdead)){ if(!tradingActive){ require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy."); require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxSellAmount, "Sell transfer amount exceeds the max sell."); } else if (!_isExcludedMaxTransactionAmount[to] && !_isExcludedMaxTransactionAmount[from]){ require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet"); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if(canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = true; // if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if(takeFee){ // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0){ fees = amount * sellTotalFees /100; tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees; tokensForMarketing += fees * sellMarketingFee / sellTotalFees; tokensForBurn += amount * sellBurnFee / 100; } // on buy else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount * buyTotalFees / 100; tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees; tokensForMarketing += fees * buyMarketingFee / buyTotalFees; tokensForBurn += amount * sellBurnFee / 100; } if(fees > 0){ super._transfer(from, address(this), fees); } super._transfer(from, address(0xdead), tokensForBurn); amount -= (fees + tokensForBurn); tokensForBurn = 0; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(owner()), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(contractBalance > swapTokensAtAmount * 10){ contractBalance = swapTokensAtAmount * 10; } bool success; // Halve the amount of liquidity tokens uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2; swapTokensForEth(contractBalance - liquidityTokens); uint256 ethBalance = address(this).balance; uint256 ethForLiquidity = ethBalance; uint256 ethForMarketing = ethBalance * tokensForMarketing / (totalTokensToSwap - (tokensForLiquidity/2)); ethForLiquidity -= ethForMarketing; tokensForLiquidity = 0; tokensForMarketing = 0; if(liquidityTokens > 0 && ethForLiquidity > 0){ addLiquidity(liquidityTokens, ethForLiquidity); } (success,) = address(marketingAddress).call{value: address(this).balance}(""); } function transferForeignToken(address _token, address _to) external onlyOwner returns (bool _sent) { require(_token != address(this), "Can't withdraw native tokens"); uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_to, _contractBalance); emit TransferForeignToken(_token, _contractBalance); } // withdraw ETH if stuck or someone sends to the address function withdrawStuckETH() external onlyOwner { bool success; (success,) = address(msg.sender).call{value: address(this).balance}(""); } function setMarketingAddress(address _marketingAddress) external onlyOwner { require(_marketingAddress != address(0), "_marketingAddress address cannot be 0"); marketingAddress = payable(_marketingAddress); emit UpdatedMarketingAddress(_marketingAddress); } } /* https://www.felix-token.com/ https://twitter.com/Felix_ERC20 https://github.com/FELIX-TOKEN */
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"EnabledTrading","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":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedMarketingAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"setMarketingAddress","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":"tokensForBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600b805461ffff60a01b191690553480156200001f57600080fd5b506040518060400160405280600d81526020016c1191531256081512114810d055609a1b8152506040518060400160405280600581526020016408c8a9892b60db1b8152508160039081620000759190620007d8565b506004620000848282620007d8565b505050600062000099620003d060201b60201c565b600580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020620034e0833981519152908290a35033737a250d5630b4cf539739df2c5dacb4c659f2488d620000f9816001620003d4565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000144573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016a9190620008a4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001de9190620008a4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200022c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002529190620008a4565b6001600160a01b031660a08190526200026d90600162000437565b6a066f0222d28f572924000061271062000289826045620008ec565b6200029591906200090c565b600655612710620002a8826045620008ec565b620002b491906200090c565b600755612710620002c7826045620008ec565b620002d391906200090c565b600855620186a0620002e7826064620008ec565b620002f391906200090c565b600a556008600d8190556000600e819055600f81905562000314916200092f565b600c556008601181905560006012819055601381905562000335916200092f565b60105562000345836001620003d4565b62000352306001620003d4565b6200036161dead6001620003d4565b6200036e836001620004a3565b6200037b306001620004a3565b6200038a61dead6001620004a3565b600b80546001600160a01b031916733f04d3499ff9500153c3667b46d5cc908a72dbe1179055620003bc838262000551565b620003c78362000636565b50505062000945565b3390565b6001600160a01b038216600081815260186020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382166000908152601960205260409020805460ff1916821515179055620004678282620003d4565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b03163314620004f25760405162461bcd60e51b81526020600482018190526024820152600080516020620034c083398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005a95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004e9565b8060026000828254620005bd91906200092f565b90915550506001600160a01b03821660009081526020819052604081208054839290620005ec9084906200092f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620006815760405162461bcd60e51b81526020600482018190526024820152600080516020620034c08339815191526044820152606401620004e9565b6001600160a01b038116620006e85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620004e9565b6005546040516001600160a01b03808416921690600080516020620034e083398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200075e57607f821691505b6020821081036200077f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007d357600081815260208120601f850160051c81016020861015620007ae5750805b601f850160051c820191505b81811015620007cf57828155600101620007ba565b5050505b505050565b81516001600160401b03811115620007f457620007f462000733565b6200080c8162000805845462000749565b8462000785565b602080601f8311600181146200084457600084156200082b5750858301515b600019600386901b1c1916600185901b178555620007cf565b600085815260208120601f198616915b82811015620008755788860151825594840194600190910190840162000854565b5085821015620008945787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008b757600080fd5b81516001600160a01b0381168114620008cf57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620009065762000906620008d6565b92915050565b6000826200092a57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620009065762000906620008d6565b60805160a051612b246200099c6000396000818161046001528181610bbd01526110be0152600081816103350152818161245a015281816125130152818161254f015281816125c901526125f00152612b246000f3fe60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063c0246668116100c1578063e2f456051161007a578063e2f45605146107f1578063e71dc3f514610807578063f11a24d31461081d578063f2fde38b14610833578063f5648a4f14610853578063f63743421461086857600080fd5b8063c02466681461070b578063c17b5b8c1461072b578063c18bc1951461074b578063d257b34f1461076b578063dc3f0d0f1461078b578063dd62ed3e146107ab57600080fd5b8063a5ece94111610113578063a5ece9411461064e578063a9059cbb1461066e578063aa4bde281461068e578063adb873bd146106a4578063b62496f5146106ba578063bbc0c742146106ea57600080fd5b80638da5cb5b146105a5578063906e9dd0146105c357806392136913146105e357806395d89b41146105f95780639a7a23d61461060e578063a457c2d71461062e57600080fd5b806339509351116101fe5780637571336a116101b75780637571336a146105045780637bce5a04146105245780638095d5641461053a5780638366e79a1461055a57806388e765ff1461057a5780638a8c523c1461059057600080fd5b8063395093511461042e57806349bd5a5e1461044e57806366d602ae146104825780636ddd17131461049857806370a08231146104b9578063715018a6146104ef57600080fd5b80631a8145bb116102505780631a8145bb1461038e5780631d777856146103a45780631f3fed8f146103ba57806323b872dd146103d05780632be32b61146103f0578063313ce5671461041257600080fd5b806306fdde0314610298578063095ea7b3146102c357806310d5de53146102f35780631694505e1461032357806318160ddd1461036f57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad61087e565b6040516102ba91906126c9565b60405180910390f35b3480156102cf57600080fd5b506102e36102de36600461272f565b610910565b60405190151581526020016102ba565b3480156102ff57600080fd5b506102e361030e36600461275b565b60186020526000908152604090205460ff1681565b34801561032f57600080fd5b506103577f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102ba565b34801561037b57600080fd5b506002545b6040519081526020016102ba565b34801561039a57600080fd5b5061038060155481565b3480156103b057600080fd5b5061038060165481565b3480156103c657600080fd5b5061038060145481565b3480156103dc57600080fd5b506102e36103eb36600461277f565b610927565b3480156103fc57600080fd5b5061041061040b3660046127c0565b6109d6565b005b34801561041e57600080fd5b50604051601281526020016102ba565b34801561043a57600080fd5b506102e361044936600461272f565b610adc565b34801561045a57600080fd5b506103577f000000000000000000000000000000000000000000000000000000000000000081565b34801561048e57600080fd5b5061038060075481565b3480156104a457600080fd5b50600b546102e390600160a81b900460ff1681565b3480156104c557600080fd5b506103806104d436600461275b565b6001600160a01b031660009081526020819052604090205490565b3480156104fb57600080fd5b50610410610b18565b34801561051057600080fd5b5061041061051f3660046127e7565b610b8c565b34801561053057600080fd5b50610380600d5481565b34801561054657600080fd5b50610410610555366004612820565b610c77565b34801561056657600080fd5b506102e361057536600461284c565b610d34565b34801561058657600080fd5b5061038060065481565b34801561059c57600080fd5b50610410610ee7565b3480156105b157600080fd5b506005546001600160a01b0316610357565b3480156105cf57600080fd5b506104106105de36600461275b565b610fab565b3480156105ef57600080fd5b5061038060115481565b34801561060557600080fd5b506102ad611083565b34801561061a57600080fd5b506104106106293660046127e7565b611092565b34801561063a57600080fd5b506102e361064936600461272f565b611171565b34801561065a57600080fd5b50600b54610357906001600160a01b031681565b34801561067a57600080fd5b506102e361068936600461272f565b61120a565b34801561069a57600080fd5b5061038060085481565b3480156106b057600080fd5b5061038060135481565b3480156106c657600080fd5b506102e36106d536600461275b565b60196020526000908152604090205460ff1681565b3480156106f657600080fd5b50600b546102e390600160a01b900460ff1681565b34801561071757600080fd5b506104106107263660046127e7565b611217565b34801561073757600080fd5b50610410610746366004612820565b6112a0565b34801561075757600080fd5b506104106107663660046127c0565b611359565b34801561077757600080fd5b506104106107863660046127c0565b61145b565b34801561079757600080fd5b506104106107a63660046127c0565b6115b6565b3480156107b757600080fd5b506103806107c636600461284c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107fd57600080fd5b50610380600a5481565b34801561081357600080fd5b50610380600f5481565b34801561082957600080fd5b50610380600e5481565b34801561083f57600080fd5b5061041061084e36600461275b565b6116b6565b34801561085f57600080fd5b506104106117a1565b34801561087457600080fd5b5061038060125481565b60606003805461088d9061287a565b80601f01602080910402602001604051908101604052809291908181526020018280546108b99061287a565b80156109065780601f106108db57610100808354040283529160200191610906565b820191906000526020600020905b8154815290600101906020018083116108e957829003601f168201915b5050505050905090565b600061091d338484611818565b5060015b92915050565b600061093484848461193c565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109be5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6109cb8533858403611818565b506001949350505050565b6005546001600160a01b03163314610a005760405162461bcd60e51b81526004016109b5906128b4565b670de0b6b3a7640000612710610a1560025490565b610a209060196128ff565b610a2a9190612916565b610a349190612916565b811015610a8e5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d6178427579206c6f776572207468616e20302e32604482015261352560f01b60648201526084016109b5565b610aa081670de0b6b3a76400006128ff565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161091d918590610b13908690612938565b611818565b6005546001600160a01b03163314610b425760405162461bcd60e51b81526004016109b5906128b4565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610bb65760405162461bcd60e51b81526004016109b5906128b4565b80610c4c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610c4c5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b60648201526084016109b5565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ca15760405162461bcd60e51b81526004016109b5906128b4565b600d839055600e829055600f819055610cba8284612938565b600c819055600f54601991610ccf9190612938565b1115610d2f5760405162461bcd60e51b815260206004820152602960248201527f546f74616c2062757920666565732063616e6e6f742062652067726561746572604482015268207468616e2032352560b81b60648201526084016109b5565b505050565b6005546000906001600160a01b03163314610d615760405162461bcd60e51b81526004016109b5906128b4565b306001600160a01b03841603610db95760405162461bcd60e51b815260206004820152601c60248201527f43616e2774207769746864726177206e617469766520746f6b656e730000000060448201526064016109b5565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e24919061294b565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015610e77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9b9190612964565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610f115760405162461bcd60e51b81526004016109b5906128b4565b600b54600160a01b900460ff1615610f6b5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e6700000000000000000060448201526064016109b5565b600b805461ffff60a01b191661010160a01b1790556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b6005546001600160a01b03163314610fd55760405162461bcd60e51b81526004016109b5906128b4565b6001600160a01b0381166110395760405162461bcd60e51b815260206004820152602560248201527f5f6d61726b6574696e674164647265737320616464726573732063616e6e6f74604482015264020626520360dc1b60648201526084016109b5565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517fd1e7d6a3390dd5008bd1c57798817b9f806e4c417264e7d3d67e42e784dc24a990600090a250565b60606004805461088d9061287a565b6005546001600160a01b031633146110bc5760405162461bcd60e51b81526004016109b5906128b4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036111635760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109b5565b61116d828261207c565b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111f35760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109b5565b6112003385858403611818565b5060019392505050565b600061091d33848461193c565b6005546001600160a01b031633146112415760405162461bcd60e51b81526004016109b5906128b4565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112ca5760405162461bcd60e51b81526004016109b5906128b4565b6011839055601282905560138190556112e38284612938565b60108190556013546019916112f89190612938565b1115610d2f5760405162461bcd60e51b815260206004820152602a60248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201526972207468616e2032352560b01b60648201526084016109b5565b6005546001600160a01b031633146113835760405162461bcd60e51b81526004016109b5906128b4565b670de0b6b3a764000061271061139860025490565b6113a39060196128ff565b6113ad9190612916565b6113b79190612916565b8110156114145760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015264302e32352560d81b60648201526084016109b5565b61142681670de0b6b3a76400006128ff565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610ad1565b6005546001600160a01b031633146114855760405162461bcd60e51b81526004016109b5906128b4565b620186a061149260025490565b61149d9060016128ff565b6114a79190612916565b8110156115145760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109b5565b606461151f60025490565b61152a9060036128ff565b6115349190612916565b81111561159e5760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527137101992903a37ba30b61039bab838363c9760711b60648201526084016109b5565b6115b081670de0b6b3a76400006128ff565b600a5550565b6005546001600160a01b031633146115e05760405162461bcd60e51b81526004016109b5906128b4565b670de0b6b3a76400006127106115f560025490565b6116009060196128ff565b61160a9190612916565b6116149190612916565b81101561166f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60448201526232352560e81b60648201526084016109b5565b61168181670de0b6b3a76400006128ff565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610ad1565b6005546001600160a01b031633146116e05760405162461bcd60e51b81526004016109b5906128b4565b6001600160a01b0381166117455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b5565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146117cb5760405162461bcd60e51b81526004016109b5906128b4565b604051600090339047908381818185875af1925050503d806000811461180d576040519150601f19603f3d011682016040523d82523d6000602084013e611812565b606091505b50505050565b6001600160a01b03831661187a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109b5565b6001600160a01b0382166118db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109b5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166119625760405162461bcd60e51b81526004016109b590612981565b6001600160a01b0382166119885760405162461bcd60e51b81526004016109b5906129c6565b600081116119d85760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016109b5565b6005546001600160a01b03848116911614801590611a0457506005546001600160a01b03838116911614155b8015611a1857506001600160a01b03821615155b8015611a2f57506001600160a01b03821661dead14155b15611d4757600b54600160a01b900460ff16611ac9576001600160a01b03831660009081526017602052604090205460ff1680611a8457506001600160a01b03821660009081526017602052604090205460ff165b611ac95760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109b5565b6001600160a01b03831660009081526019602052604090205460ff168015611b0a57506001600160a01b03821660009081526018602052604090205460ff16155b15611be657600654811115611b725760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b60648201526084016109b5565b6008546001600160a01b038316600090815260208190526040902054611b989083612938565b1115611be15760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016109b5565b611d47565b6001600160a01b03821660009081526019602052604090205460ff168015611c2757506001600160a01b03831660009081526018602052604090205460ff16155b15611c9157600754811115611be15760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b60648201526084016109b5565b6001600160a01b03821660009081526018602052604090205460ff16158015611cd357506001600160a01b03831660009081526018602052604090205460ff16155b15611d47576008546001600160a01b038316600090815260208190526040902054611cfe9083612938565b1115611d475760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016109b5565b30600090815260208190526040902054600a5481108015908190611d745750600b54600160a81b900460ff165b8015611d83575060095460ff16155b8015611da857506001600160a01b03851660009081526019602052604090205460ff16155b8015611dcd57506001600160a01b03851660009081526017602052604090205460ff16155b8015611df257506001600160a01b03841660009081526017602052604090205460ff16155b15611e17576009805460ff19166001179055611e0c6120e6565b6009805460ff191690555b6001600160a01b03851660009081526017602052604090205460019060ff1680611e5957506001600160a01b03851660009081526017602052604090205460ff165b15611e62575060005b60008115612068576001600160a01b03861660009081526019602052604090205460ff168015611e9457506000601054115b15611f4c57606460105486611ea991906128ff565b611eb39190612916565b905060105460125482611ec691906128ff565b611ed09190612916565b60156000828254611ee19190612938565b9091555050601054601154611ef690836128ff565b611f009190612916565b60146000828254611f119190612938565b9091555050601354606490611f2690876128ff565b611f309190612916565b60166000828254611f419190612938565b909155506120299050565b6001600160a01b03871660009081526019602052604090205460ff168015611f7657506000600c54115b15612029576064600c5486611f8b91906128ff565b611f959190612916565b9050600c54600e5482611fa891906128ff565b611fb29190612916565b60156000828254611fc39190612938565b9091555050600c54600d54611fd890836128ff565b611fe29190612916565b60146000828254611ff39190612938565b909155505060135460649061200890876128ff565b6120129190612916565b601660008282546120239190612938565b90915550505b801561203a5761203a87308361224b565b6120498761dead60165461224b565b6016546120569082612938565b6120609086612a09565b600060165594505b61207387878761224b565b50505050505050565b6001600160a01b0382166000908152601960205260409020805460ff19168215151790556120aa82826123a0565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b306000908152602081905260408120549050600060145460155461210a9190612938565b9050811580612117575080155b15612120575050565b600a805461212d916128ff565b82111561214457600a8054612141916128ff565b91505b6000806002836015548661215891906128ff565b6121629190612916565b61216c9190612916565b905061218061217b8286612a09565b612403565b6015544790819060009061219690600290612916565b6121a09087612a09565b6014546121ad90856128ff565b6121b79190612916565b90506121c38183612a09565b60006015819055601455915083158015906121de5750600082115b156121ed576121ed84836125c3565b600b546040516001600160a01b03909116904790600081818185875af1925050503d806000811461223a576040519150601f19603f3d011682016040523d82523d6000602084013e61223f565b606091505b50505050505050505050565b6001600160a01b0383166122715760405162461bcd60e51b81526004016109b590612981565b6001600160a01b0382166122975760405162461bcd60e51b81526004016109b5906129c6565b6001600160a01b0383166000908152602081905260409020548181101561230f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109b5565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612346908490612938565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161239291815260200190565b60405180910390a350505050565b6001600160a01b038216600081815260186020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061243857612438612a1c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124da9190612a32565b816001815181106124ed576124ed612a1c565b60200260200101906001600160a01b031690816001600160a01b031681525050612538307f000000000000000000000000000000000000000000000000000000000000000084611818565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061258d908590600090869030904290600401612a4f565b600060405180830381600087803b1580156125a757600080fd5b505af11580156125bb573d6000803e3d6000fd5b505050505050565b6125ee307f000000000000000000000000000000000000000000000000000000000000000084611818565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198230856000806126356005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561269d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126c29190612ac0565b5050505050565b600060208083528351808285015260005b818110156126f6578581018301518582016040015282016126da565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461272c57600080fd5b50565b6000806040838503121561274257600080fd5b823561274d81612717565b946020939093013593505050565b60006020828403121561276d57600080fd5b813561277881612717565b9392505050565b60008060006060848603121561279457600080fd5b833561279f81612717565b925060208401356127af81612717565b929592945050506040919091013590565b6000602082840312156127d257600080fd5b5035919050565b801515811461272c57600080fd5b600080604083850312156127fa57600080fd5b823561280581612717565b91506020830135612815816127d9565b809150509250929050565b60008060006060848603121561283557600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561285f57600080fd5b823561286a81612717565b9150602083013561281581612717565b600181811c9082168061288e57607f821691505b6020821081036128ae57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610921576109216128e9565b60008261293357634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610921576109216128e9565b60006020828403121561295d57600080fd5b5051919050565b60006020828403121561297657600080fd5b8151612778816127d9565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610921576109216128e9565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612a4457600080fd5b815161277881612717565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a9f5784516001600160a01b031683529383019391830191600101612a7a565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612ad557600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204d3069ba047e2db0312901ccef9a527a1be0268d0c65da493eb098b5e330ea2a64736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063c0246668116100c1578063e2f456051161007a578063e2f45605146107f1578063e71dc3f514610807578063f11a24d31461081d578063f2fde38b14610833578063f5648a4f14610853578063f63743421461086857600080fd5b8063c02466681461070b578063c17b5b8c1461072b578063c18bc1951461074b578063d257b34f1461076b578063dc3f0d0f1461078b578063dd62ed3e146107ab57600080fd5b8063a5ece94111610113578063a5ece9411461064e578063a9059cbb1461066e578063aa4bde281461068e578063adb873bd146106a4578063b62496f5146106ba578063bbc0c742146106ea57600080fd5b80638da5cb5b146105a5578063906e9dd0146105c357806392136913146105e357806395d89b41146105f95780639a7a23d61461060e578063a457c2d71461062e57600080fd5b806339509351116101fe5780637571336a116101b75780637571336a146105045780637bce5a04146105245780638095d5641461053a5780638366e79a1461055a57806388e765ff1461057a5780638a8c523c1461059057600080fd5b8063395093511461042e57806349bd5a5e1461044e57806366d602ae146104825780636ddd17131461049857806370a08231146104b9578063715018a6146104ef57600080fd5b80631a8145bb116102505780631a8145bb1461038e5780631d777856146103a45780631f3fed8f146103ba57806323b872dd146103d05780632be32b61146103f0578063313ce5671461041257600080fd5b806306fdde0314610298578063095ea7b3146102c357806310d5de53146102f35780631694505e1461032357806318160ddd1461036f57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad61087e565b6040516102ba91906126c9565b60405180910390f35b3480156102cf57600080fd5b506102e36102de36600461272f565b610910565b60405190151581526020016102ba565b3480156102ff57600080fd5b506102e361030e36600461275b565b60186020526000908152604090205460ff1681565b34801561032f57600080fd5b506103577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102ba565b34801561037b57600080fd5b506002545b6040519081526020016102ba565b34801561039a57600080fd5b5061038060155481565b3480156103b057600080fd5b5061038060165481565b3480156103c657600080fd5b5061038060145481565b3480156103dc57600080fd5b506102e36103eb36600461277f565b610927565b3480156103fc57600080fd5b5061041061040b3660046127c0565b6109d6565b005b34801561041e57600080fd5b50604051601281526020016102ba565b34801561043a57600080fd5b506102e361044936600461272f565b610adc565b34801561045a57600080fd5b506103577f000000000000000000000000fce7ee2ff7acd197c18ceef47ac01f97be77eaa881565b34801561048e57600080fd5b5061038060075481565b3480156104a457600080fd5b50600b546102e390600160a81b900460ff1681565b3480156104c557600080fd5b506103806104d436600461275b565b6001600160a01b031660009081526020819052604090205490565b3480156104fb57600080fd5b50610410610b18565b34801561051057600080fd5b5061041061051f3660046127e7565b610b8c565b34801561053057600080fd5b50610380600d5481565b34801561054657600080fd5b50610410610555366004612820565b610c77565b34801561056657600080fd5b506102e361057536600461284c565b610d34565b34801561058657600080fd5b5061038060065481565b34801561059c57600080fd5b50610410610ee7565b3480156105b157600080fd5b506005546001600160a01b0316610357565b3480156105cf57600080fd5b506104106105de36600461275b565b610fab565b3480156105ef57600080fd5b5061038060115481565b34801561060557600080fd5b506102ad611083565b34801561061a57600080fd5b506104106106293660046127e7565b611092565b34801561063a57600080fd5b506102e361064936600461272f565b611171565b34801561065a57600080fd5b50600b54610357906001600160a01b031681565b34801561067a57600080fd5b506102e361068936600461272f565b61120a565b34801561069a57600080fd5b5061038060085481565b3480156106b057600080fd5b5061038060135481565b3480156106c657600080fd5b506102e36106d536600461275b565b60196020526000908152604090205460ff1681565b3480156106f657600080fd5b50600b546102e390600160a01b900460ff1681565b34801561071757600080fd5b506104106107263660046127e7565b611217565b34801561073757600080fd5b50610410610746366004612820565b6112a0565b34801561075757600080fd5b506104106107663660046127c0565b611359565b34801561077757600080fd5b506104106107863660046127c0565b61145b565b34801561079757600080fd5b506104106107a63660046127c0565b6115b6565b3480156107b757600080fd5b506103806107c636600461284c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107fd57600080fd5b50610380600a5481565b34801561081357600080fd5b50610380600f5481565b34801561082957600080fd5b50610380600e5481565b34801561083f57600080fd5b5061041061084e36600461275b565b6116b6565b34801561085f57600080fd5b506104106117a1565b34801561087457600080fd5b5061038060125481565b60606003805461088d9061287a565b80601f01602080910402602001604051908101604052809291908181526020018280546108b99061287a565b80156109065780601f106108db57610100808354040283529160200191610906565b820191906000526020600020905b8154815290600101906020018083116108e957829003601f168201915b5050505050905090565b600061091d338484611818565b5060015b92915050565b600061093484848461193c565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109be5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6109cb8533858403611818565b506001949350505050565b6005546001600160a01b03163314610a005760405162461bcd60e51b81526004016109b5906128b4565b670de0b6b3a7640000612710610a1560025490565b610a209060196128ff565b610a2a9190612916565b610a349190612916565b811015610a8e5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d6178427579206c6f776572207468616e20302e32604482015261352560f01b60648201526084016109b5565b610aa081670de0b6b3a76400006128ff565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161091d918590610b13908690612938565b611818565b6005546001600160a01b03163314610b425760405162461bcd60e51b81526004016109b5906128b4565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610bb65760405162461bcd60e51b81526004016109b5906128b4565b80610c4c577f000000000000000000000000fce7ee2ff7acd197c18ceef47ac01f97be77eaa86001600160a01b0316826001600160a01b031603610c4c5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b60648201526084016109b5565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ca15760405162461bcd60e51b81526004016109b5906128b4565b600d839055600e829055600f819055610cba8284612938565b600c819055600f54601991610ccf9190612938565b1115610d2f5760405162461bcd60e51b815260206004820152602960248201527f546f74616c2062757920666565732063616e6e6f742062652067726561746572604482015268207468616e2032352560b81b60648201526084016109b5565b505050565b6005546000906001600160a01b03163314610d615760405162461bcd60e51b81526004016109b5906128b4565b306001600160a01b03841603610db95760405162461bcd60e51b815260206004820152601c60248201527f43616e2774207769746864726177206e617469766520746f6b656e730000000060448201526064016109b5565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e24919061294b565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015610e77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9b9190612964565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610f115760405162461bcd60e51b81526004016109b5906128b4565b600b54600160a01b900460ff1615610f6b5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e6700000000000000000060448201526064016109b5565b600b805461ffff60a01b191661010160a01b1790556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b6005546001600160a01b03163314610fd55760405162461bcd60e51b81526004016109b5906128b4565b6001600160a01b0381166110395760405162461bcd60e51b815260206004820152602560248201527f5f6d61726b6574696e674164647265737320616464726573732063616e6e6f74604482015264020626520360dc1b60648201526084016109b5565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517fd1e7d6a3390dd5008bd1c57798817b9f806e4c417264e7d3d67e42e784dc24a990600090a250565b60606004805461088d9061287a565b6005546001600160a01b031633146110bc5760405162461bcd60e51b81526004016109b5906128b4565b7f000000000000000000000000fce7ee2ff7acd197c18ceef47ac01f97be77eaa86001600160a01b0316826001600160a01b0316036111635760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109b5565b61116d828261207c565b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111f35760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109b5565b6112003385858403611818565b5060019392505050565b600061091d33848461193c565b6005546001600160a01b031633146112415760405162461bcd60e51b81526004016109b5906128b4565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146112ca5760405162461bcd60e51b81526004016109b5906128b4565b6011839055601282905560138190556112e38284612938565b60108190556013546019916112f89190612938565b1115610d2f5760405162461bcd60e51b815260206004820152602a60248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201526972207468616e2032352560b01b60648201526084016109b5565b6005546001600160a01b031633146113835760405162461bcd60e51b81526004016109b5906128b4565b670de0b6b3a764000061271061139860025490565b6113a39060196128ff565b6113ad9190612916565b6113b79190612916565b8110156114145760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015264302e32352560d81b60648201526084016109b5565b61142681670de0b6b3a76400006128ff565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610ad1565b6005546001600160a01b031633146114855760405162461bcd60e51b81526004016109b5906128b4565b620186a061149260025490565b61149d9060016128ff565b6114a79190612916565b8110156115145760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109b5565b606461151f60025490565b61152a9060036128ff565b6115349190612916565b81111561159e5760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527137101992903a37ba30b61039bab838363c9760711b60648201526084016109b5565b6115b081670de0b6b3a76400006128ff565b600a5550565b6005546001600160a01b031633146115e05760405162461bcd60e51b81526004016109b5906128b4565b670de0b6b3a76400006127106115f560025490565b6116009060196128ff565b61160a9190612916565b6116149190612916565b81101561166f5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60448201526232352560e81b60648201526084016109b5565b61168181670de0b6b3a76400006128ff565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610ad1565b6005546001600160a01b031633146116e05760405162461bcd60e51b81526004016109b5906128b4565b6001600160a01b0381166117455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b5565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146117cb5760405162461bcd60e51b81526004016109b5906128b4565b604051600090339047908381818185875af1925050503d806000811461180d576040519150601f19603f3d011682016040523d82523d6000602084013e611812565b606091505b50505050565b6001600160a01b03831661187a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109b5565b6001600160a01b0382166118db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109b5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166119625760405162461bcd60e51b81526004016109b590612981565b6001600160a01b0382166119885760405162461bcd60e51b81526004016109b5906129c6565b600081116119d85760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016109b5565b6005546001600160a01b03848116911614801590611a0457506005546001600160a01b03838116911614155b8015611a1857506001600160a01b03821615155b8015611a2f57506001600160a01b03821661dead14155b15611d4757600b54600160a01b900460ff16611ac9576001600160a01b03831660009081526017602052604090205460ff1680611a8457506001600160a01b03821660009081526017602052604090205460ff165b611ac95760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109b5565b6001600160a01b03831660009081526019602052604090205460ff168015611b0a57506001600160a01b03821660009081526018602052604090205460ff16155b15611be657600654811115611b725760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b60648201526084016109b5565b6008546001600160a01b038316600090815260208190526040902054611b989083612938565b1115611be15760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016109b5565b611d47565b6001600160a01b03821660009081526019602052604090205460ff168015611c2757506001600160a01b03831660009081526018602052604090205460ff16155b15611c9157600754811115611be15760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b60648201526084016109b5565b6001600160a01b03821660009081526018602052604090205460ff16158015611cd357506001600160a01b03831660009081526018602052604090205460ff16155b15611d47576008546001600160a01b038316600090815260208190526040902054611cfe9083612938565b1115611d475760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b60448201526064016109b5565b30600090815260208190526040902054600a5481108015908190611d745750600b54600160a81b900460ff165b8015611d83575060095460ff16155b8015611da857506001600160a01b03851660009081526019602052604090205460ff16155b8015611dcd57506001600160a01b03851660009081526017602052604090205460ff16155b8015611df257506001600160a01b03841660009081526017602052604090205460ff16155b15611e17576009805460ff19166001179055611e0c6120e6565b6009805460ff191690555b6001600160a01b03851660009081526017602052604090205460019060ff1680611e5957506001600160a01b03851660009081526017602052604090205460ff165b15611e62575060005b60008115612068576001600160a01b03861660009081526019602052604090205460ff168015611e9457506000601054115b15611f4c57606460105486611ea991906128ff565b611eb39190612916565b905060105460125482611ec691906128ff565b611ed09190612916565b60156000828254611ee19190612938565b9091555050601054601154611ef690836128ff565b611f009190612916565b60146000828254611f119190612938565b9091555050601354606490611f2690876128ff565b611f309190612916565b60166000828254611f419190612938565b909155506120299050565b6001600160a01b03871660009081526019602052604090205460ff168015611f7657506000600c54115b15612029576064600c5486611f8b91906128ff565b611f959190612916565b9050600c54600e5482611fa891906128ff565b611fb29190612916565b60156000828254611fc39190612938565b9091555050600c54600d54611fd890836128ff565b611fe29190612916565b60146000828254611ff39190612938565b909155505060135460649061200890876128ff565b6120129190612916565b601660008282546120239190612938565b90915550505b801561203a5761203a87308361224b565b6120498761dead60165461224b565b6016546120569082612938565b6120609086612a09565b600060165594505b61207387878761224b565b50505050505050565b6001600160a01b0382166000908152601960205260409020805460ff19168215151790556120aa82826123a0565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b306000908152602081905260408120549050600060145460155461210a9190612938565b9050811580612117575080155b15612120575050565b600a805461212d916128ff565b82111561214457600a8054612141916128ff565b91505b6000806002836015548661215891906128ff565b6121629190612916565b61216c9190612916565b905061218061217b8286612a09565b612403565b6015544790819060009061219690600290612916565b6121a09087612a09565b6014546121ad90856128ff565b6121b79190612916565b90506121c38183612a09565b60006015819055601455915083158015906121de5750600082115b156121ed576121ed84836125c3565b600b546040516001600160a01b03909116904790600081818185875af1925050503d806000811461223a576040519150601f19603f3d011682016040523d82523d6000602084013e61223f565b606091505b50505050505050505050565b6001600160a01b0383166122715760405162461bcd60e51b81526004016109b590612981565b6001600160a01b0382166122975760405162461bcd60e51b81526004016109b5906129c6565b6001600160a01b0383166000908152602081905260409020548181101561230f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109b5565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612346908490612938565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161239291815260200190565b60405180910390a350505050565b6001600160a01b038216600081815260186020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061243857612438612a1c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124da9190612a32565b816001815181106124ed576124ed612a1c565b60200260200101906001600160a01b031690816001600160a01b031681525050612538307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611818565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061258d908590600090869030904290600401612a4f565b600060405180830381600087803b1580156125a757600080fd5b505af11580156125bb573d6000803e3d6000fd5b505050505050565b6125ee307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611818565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7198230856000806126356005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561269d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126c29190612ac0565b5050505050565b600060208083528351808285015260005b818110156126f6578581018301518582016040015282016126da565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461272c57600080fd5b50565b6000806040838503121561274257600080fd5b823561274d81612717565b946020939093013593505050565b60006020828403121561276d57600080fd5b813561277881612717565b9392505050565b60008060006060848603121561279457600080fd5b833561279f81612717565b925060208401356127af81612717565b929592945050506040919091013590565b6000602082840312156127d257600080fd5b5035919050565b801515811461272c57600080fd5b600080604083850312156127fa57600080fd5b823561280581612717565b91506020830135612815816127d9565b809150509250929050565b60008060006060848603121561283557600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561285f57600080fd5b823561286a81612717565b9150602083013561281581612717565b600181811c9082168061288e57607f821691505b6020821081036128ae57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610921576109216128e9565b60008261293357634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610921576109216128e9565b60006020828403121561295d57600080fd5b5051919050565b60006020828403121561297657600080fd5b8151612778816127d9565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610921576109216128e9565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612a4457600080fd5b815161277881612717565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a9f5784516001600160a01b031683529383019391830191600101612a7a565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612ad557600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204d3069ba047e2db0312901ccef9a527a1be0268d0c65da493eb098b5e330ea2a64736f6c63430008130033
Deployed Bytecode Sourcemap
10506:13840:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5144:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6058:169;;;;;;;;;;-1:-1:-1;6058:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6058:169:0;1023:187:1;11504:64:0;;;;;;;;;;-1:-1:-1;11504:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10656:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1649:32:1;;;1631:51;;1619:2;1604:18;10656:43:0;1467:221:1;5465:108:0;;;;;;;;;;-1:-1:-1;5553:12:0;;5465:108;;;1839:25:1;;;1827:2;1812:18;5465:108:0;1693:177:1;11281:33:0;;;;;;;;;;;;;;;;11321:28;;;;;;;;;;;;;;;;11241:33;;;;;;;;;;;;;;;;6235:492;;;;;;;;;;-1:-1:-1;6235:492:0;;;;;:::i;:::-;;:::i;14438:264::-;;;;;;;;;;-1:-1:-1;14438:264:0;;;;;:::i;:::-;;:::i;:::-;;5364:93;;;;;;;;;;-1:-1:-1;5364:93:0;;5447:2;2663:36:1;;2651:2;2636:18;5364:93:0;2521:184:1;6735:215:0;;;;;;;;;;-1:-1:-1;6735:215:0;;;;;:::i;:::-;;:::i;10706:38::-;;;;;;;;;;;;;;;10582:28;;;;;;;;;;;;;;;;10903:31;;;;;;;;;;-1:-1:-1;10903:31:0;;;;-1:-1:-1;;;10903:31:0;;;;;;5581:127;;;;;;;;;;-1:-1:-1;5581:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5682:18:0;5655:7;5682:18;;;;;;;;;;;;5581:127;9225:150;;;;;;;;;;;;;:::i;15927:267::-;;;;;;;;;;-1:-1:-1;15927:267:0;;;;;:::i;:::-;;:::i;10982:30::-;;;;;;;;;;;;;;;;16712:386;;;;;;;;;;-1:-1:-1;16712:386:0;;;;;:::i;:::-;;:::i;23428:::-;;;;;;;;;;-1:-1:-1;23428:386:0;;;;;:::i;:::-;;:::i;10548:27::-;;;;;;;;;;;;;;;;14216:205;;;;;;;;;;;;;:::i;9011:79::-;;;;;;;;;;-1:-1:-1;9076:6:0;;-1:-1:-1;;;;;9076:6:0;9011:79;;24052:289;;;;;;;;;;-1:-1:-1;24052:289:0;;;;;:::i;:::-;;:::i;11128:31::-;;;;;;;;;;;;;;;;5252:104;;;;;;;;;;;;;:::i;16202:246::-;;;;;;;;;;-1:-1:-1;16202:246:0;;;;;:::i;:::-;;:::i;6958:413::-;;;;;;;;;;-1:-1:-1;6958:413:0;;;;;:::i;:::-;;:::i;10823:31::-;;;;;;;;;;-1:-1:-1;10823:31:0;;;;-1:-1:-1;;;;;10823:31:0;;;5716:175;;;;;;;;;;-1:-1:-1;5716:175:0;;;;;:::i;:::-;;:::i;10617:30::-;;;;;;;;;;;;;;;;11204:26;;;;;;;;;;;;;;;;11728:58;;;;;;;;;;-1:-1:-1;11728:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10863:33;;;;;;;;;;-1:-1:-1;10863:33:0;;;;-1:-1:-1;;;10863:33:0;;;;;;17510:182;;;;;;;;;;-1:-1:-1;17510:182:0;;;;;:::i;:::-;;:::i;17106:396::-;;;;;;;;;;-1:-1:-1;17106:396:0;;;;;:::i;:::-;;:::i;14991:279::-;;;;;;;;;;-1:-1:-1;14991:279:0;;;;;:::i;:::-;;:::i;15340:356::-;;;;;;;;;;-1:-1:-1;15340:356:0;;;;;:::i;:::-;;:::i;14714:269::-;;;;;;;;;;-1:-1:-1;14714:269:0;;;;;:::i;:::-;;:::i;5899:151::-;;;;;;;;;;-1:-1:-1;5899:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;6015:18:0;;;5988:7;6015:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5899:151;10781:33;;;;;;;;;;;;;;;;11056:25;;;;;;;;;;;;;;;;11019:30;;;;;;;;;;;;;;;;9383:244;;;;;;;;;;-1:-1:-1;9383:244:0;;;;;:::i;:::-;;:::i;23884:160::-;;;;;;;;;;;;;:::i;11166:31::-;;;;;;;;;;;;;;;;5144:100;5198:13;5231:5;5224:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5144:100;:::o;6058:169::-;6141:4;6158:39;1491:10;6181:7;6190:6;6158:8;:39::i;:::-;-1:-1:-1;6215:4:0;6058:169;;;;;:::o;6235:492::-;6375:4;6392:36;6402:6;6410:9;6421:6;6392:9;:36::i;:::-;-1:-1:-1;;;;;6468:19:0;;6441:24;6468:19;;;:11;:19;;;;;;;;1491:10;6468:33;;;;;;;;6520:26;;;;6512:79;;;;-1:-1:-1;;;6512:79:0;;4729:2:1;6512:79:0;;;4711:21:1;4768:2;4748:18;;;4741:30;4807:34;4787:18;;;4780:62;-1:-1:-1;;;4858:18:1;;;4851:38;4906:19;;6512:79:0;;;;;;;;;6627:57;6636:6;1491:10;6677:6;6658:16;:25;6627:8;:57::i;:::-;-1:-1:-1;6715:4:0;;6235:492;-1:-1:-1;;;;6235:492:0:o;14438:264::-;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;14559:4:::1;14552:5;14531:13;5553:12:::0;;;5465:108;14531:13:::1;:18;::::0;14547:2:::1;14531:18;:::i;:::-;:26;;;;:::i;:::-;14530:33;;;;:::i;:::-;14520:6;:43;;14512:90;;;::::0;-1:-1:-1;;;14512:90:0;;6026:2:1;14512:90:0::1;::::0;::::1;6008:21:1::0;6065:2;6045:18;;;6038:30;6104:34;6084:18;;;6077:62;-1:-1:-1;;;6155:18:1;;;6148:32;6197:19;;14512:90:0::1;5824:398:1::0;14512:90:0::1;14628:17;:6:::0;14638::::1;14628:17;:::i;:::-;14613:12;:32:::0;;;14661:33:::1;::::0;1839:25:1;;;14661:33:0::1;::::0;1827:2:1;1812:18;14661:33:0::1;;;;;;;;14438:264:::0;:::o;6735:215::-;1491:10;6823:4;6872:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6872:34:0;;;;;;;;;;6823:4;;6840:80;;6863:7;;6872:47;;6909:10;;6872:47;:::i;:::-;6840:8;:80::i;9225:150::-;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;9318:6:::1;::::0;9297:40:::1;::::0;9334:1:::1;::::0;-1:-1:-1;;;;;9318:6:0::1;::::0;9297:40:::1;::::0;9334:1;;9297:40:::1;9348:6;:19:::0;;-1:-1:-1;;;;;;9348:19:0::1;::::0;;9225:150::o;15927:267::-;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;16023:4:::1;16019:111;;16061:13;-1:-1:-1::0;;;;;16051:23:0::1;:6;-1:-1:-1::0;;;;;16051:23:0::1;::::0;16043:75:::1;;;::::0;-1:-1:-1;;;16043:75:0;;6559:2:1;16043:75:0::1;::::0;::::1;6541:21:1::0;6598:2;6578:18;;;6571:30;6637:34;6617:18;;;6610:62;-1:-1:-1;;;6688:18:1;;;6681:37;6735:19;;16043:75:0::1;6357:403:1::0;16043:75:0::1;-1:-1:-1::0;;;;;16140:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;16140:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15927:267::o;16712:386::-;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;16829:15:::1;:31:::0;;;16871:15:::1;:31:::0;;;16913:10:::1;:21:::0;;;16960:33:::1;16889:13:::0;16847;16960:33:::1;:::i;:::-;16945:12;:48:::0;;;17028:10:::1;::::0;17043:2:::1;::::0;17013:25:::1;::::0;17028:10;17013:25:::1;:::i;:::-;17012:33;;17004:86;;;::::0;-1:-1:-1;;;17004:86:0;;6967:2:1;17004:86:0::1;::::0;::::1;6949:21:1::0;7006:2;6986:18;;;6979:30;7045:34;7025:18;;;7018:62;-1:-1:-1;;;7096:18:1;;;7089:39;7145:19;;17004:86:0::1;6765:405:1::0;17004:86:0::1;16712:386:::0;;;:::o;23428:::-;9138:6;;23515:10;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;23564:4:::1;-1:-1:-1::0;;;;;23546:23:0;::::1;::::0;23538:64:::1;;;::::0;-1:-1:-1;;;23538:64:0;;7377:2:1;23538:64:0::1;::::0;::::1;7359:21:1::0;7416:2;7396:18;;;7389:30;7455;7435:18;;;7428:58;7503:18;;23538:64:0::1;7175:352:1::0;23538:64:0::1;23640:39;::::0;-1:-1:-1;;;23640:39:0;;23673:4:::1;23640:39;::::0;::::1;1631:51:1::0;23613:24:0::1;::::0;-1:-1:-1;;;;;23640:24:0;::::1;::::0;::::1;::::0;1604:18:1;;23640:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23698:46;::::0;-1:-1:-1;;;23698:46:0;;-1:-1:-1;;;;;7913:32:1;;;23698:46:0::1;::::0;::::1;7895:51:1::0;7962:18;;;7955:34;;;23613:66:0;;-1:-1:-1;23698:23:0;;::::1;::::0;::::1;::::0;7868:18:1;;23698:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23760;::::0;;-1:-1:-1;;;;;7913:32:1;;7895:51;;7977:2;7962:18;;7955:34;;;23690:54:0;;-1:-1:-1;23760:46:0::1;::::0;7868:18:1;23760:46:0::1;;;;;;;23527:287;23428:386:::0;;;;:::o;14216:205::-;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;14280:13:::1;::::0;-1:-1:-1;;;14280:13:0;::::1;;;14279:14;14271:50;;;::::0;-1:-1:-1;;;14271:50:0;;8452:2:1;14271:50:0::1;::::0;::::1;8434:21:1::0;8491:2;8471:18;;;8464:30;8530:25;8510:18;;;8503:53;8573:18;;14271:50:0::1;8250:347:1::0;14271:50:0::1;14332:13;:20:::0;;-1:-1:-1;;;;14363:18:0;-1:-1:-1;;;14363:18:0;;;14397:16:::1;::::0;::::1;::::0;-1:-1:-1;;14397:16:0::1;14216:205::o:0;24052:289::-;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24146:31:0;::::1;24138:81;;;::::0;-1:-1:-1;;;24138:81:0;;8804:2:1;24138:81:0::1;::::0;::::1;8786:21:1::0;8843:2;8823:18;;;8816:30;8882:34;8862:18;;;8855:62;-1:-1:-1;;;8933:18:1;;;8926:35;8978:19;;24138:81:0::1;8602:401:1::0;24138:81:0::1;24230:16;:45:::0;;-1:-1:-1;;;;;;24230:45:0::1;-1:-1:-1::0;;;;;24230:45:0;::::1;::::0;;::::1;::::0;;;24291:42:::1;::::0;::::1;::::0;-1:-1:-1;;24291:42:0::1;24052:289:::0;:::o;5252:104::-;5308:13;5341:7;5334:14;;;;;:::i;16202:246::-;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;16311:13:::1;-1:-1:-1::0;;;;;16303:21:0::1;:4;-1:-1:-1::0;;;;;16303:21:0::1;::::0;16295:91:::1;;;::::0;-1:-1:-1;;;16295:91:0;;9210:2:1;16295:91:0::1;::::0;::::1;9192:21:1::0;9249:2;9229:18;;;9222:30;9288:34;9268:18;;;9261:62;9359:27;9339:18;;;9332:55;9404:19;;16295:91:0::1;9008:421:1::0;16295:91:0::1;16399:41;16428:4;16434:5;16399:28;:41::i;:::-;16202:246:::0;;:::o;6958:413::-;1491:10;7051:4;7095:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7095:34:0;;;;;;;;;;7148:35;;;;7140:85;;;;-1:-1:-1;;;7140:85:0;;9636:2:1;7140:85:0;;;9618:21:1;9675:2;9655:18;;;9648:30;9714:34;9694:18;;;9687:62;-1:-1:-1;;;9765:18:1;;;9758:35;9810:19;;7140:85:0;9434:401:1;7140:85:0;7261:67;1491:10;7284:7;7312:15;7293:16;:34;7261:8;:67::i;:::-;-1:-1:-1;7359:4:0;;6958:413;-1:-1:-1;;;6958:413:0:o;5716:175::-;5802:4;5819:42;1491:10;5843:9;5854:6;5819:9;:42::i;17510:182::-;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17595:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17595:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17650:34;;1163:41:1;;;17650:34:0::1;::::0;1136:18:1;17650:34:0::1;;;;;;;17510:182:::0;;:::o;17106:396::-;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;17224:16:::1;:32:::0;;;17267:16:::1;:32:::0;;;17310:11:::1;:22:::0;;;17359:35:::1;17286:13:::0;17243;17359:35:::1;:::i;:::-;17343:13;:51:::0;;;17430:11:::1;::::0;17446:2:::1;::::0;17414:27:::1;::::0;17430:11;17414:27:::1;:::i;:::-;17413:35;;17405:89;;;::::0;-1:-1:-1;;;17405:89:0;;10042:2:1;17405:89:0::1;::::0;::::1;10024:21:1::0;10081:2;10061:18;;;10054:30;10120:34;10100:18;;;10093:62;-1:-1:-1;;;10171:18:1;;;10164:40;10221:19;;17405:89:0::1;9840:406:1::0;14991:279:0;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;15115:4:::1;15108:5;15087:13;5553:12:::0;;;5465:108;15087:13:::1;:18;::::0;15103:2:::1;15087:18;:::i;:::-;:26;;;;:::i;:::-;15086:33;;;;:::i;:::-;15076:6;:43;;15068:93;;;::::0;-1:-1:-1;;;15068:93:0;;10453:2:1;15068:93:0::1;::::0;::::1;10435:21:1::0;10492:2;10472:18;;;10465:30;10531:34;10511:18;;;10504:62;-1:-1:-1;;;10582:18:1;;;10575:35;10627:19;;15068:93:0::1;10251:401:1::0;15068:93:0::1;15190:17;:6:::0;15200::::1;15190:17;:::i;:::-;15172:15;:35:::0;;;15223:39:::1;::::0;1839:25:1;;;15223:39:0::1;::::0;1827:2:1;1812:18;15223:39:0::1;1693:177:1::0;15340:356:0;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;15464:6:::1;15444:13;5553:12:::0;;;5465:108;15444:13:::1;:17;::::0;15460:1:::1;15444:17;:::i;:::-;:26;;;;:::i;:::-;15431:9;:39;;15423:105;;;::::0;-1:-1:-1;;;15423:105:0;;10859:2:1;15423:105:0::1;::::0;::::1;10841:21:1::0;10898:2;10878:18;;;10871:30;10937:34;10917:18;;;10910:62;-1:-1:-1;;;10988:18:1;;;10981:51;11049:19;;15423:105:0::1;10657:417:1::0;15423:105:0::1;15580:3;15560:13;5553:12:::0;;;5465:108;15560:13:::1;:17;::::0;15576:1:::1;15560:17;:::i;:::-;:23;;;;:::i;:::-;15547:9;:36;;15539:99;;;::::0;-1:-1:-1;;;15539:99:0;;11281:2:1;15539:99:0::1;::::0;::::1;11263:21:1::0;11320:2;11300:18;;;11293:30;11359:34;11339:18;;;11332:62;-1:-1:-1;;;11410:18:1;;;11403:48;11468:19;;15539:99:0::1;11079:414:1::0;15539:99:0::1;15669:20;:9:::0;15682:6:::1;15669:20;:::i;:::-;15648:18;:41:::0;-1:-1:-1;15340:356:0:o;14714:269::-;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;14836:4:::1;14829:5;14808:13;5553:12:::0;;;5465:108;14808:13:::1;:18;::::0;14824:2:::1;14808:18;:::i;:::-;:26;;;;:::i;:::-;14807:33;;;;:::i;:::-;14797:6;:43;;14789:91;;;::::0;-1:-1:-1;;;14789:91:0;;11700:2:1;14789:91:0::1;::::0;::::1;11682:21:1::0;11739:2;11719:18;;;11712:30;11778:34;11758:18;;;11751:62;-1:-1:-1;;;11829:18:1;;;11822:33;11872:19;;14789:91:0::1;11498:399:1::0;14789:91:0::1;14907:17;:6:::0;14917::::1;14907:17;:::i;:::-;14891:13;:33:::0;;;14940:35:::1;::::0;1839:25:1;;;14940:35:0::1;::::0;1827:2:1;1812:18;14940:35:0::1;1693:177:1::0;9383:244:0;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9472:22:0;::::1;9464:73;;;::::0;-1:-1:-1;;;9464:73:0;;12104:2:1;9464:73:0::1;::::0;::::1;12086:21:1::0;12143:2;12123:18;;;12116:30;12182:34;12162:18;;;12155:62;-1:-1:-1;;;12233:18:1;;;12226:36;12279:19;;9464:73:0::1;11902:402:1::0;9464:73:0::1;9574:6;::::0;9553:38:::1;::::0;-1:-1:-1;;;;;9553:38:0;;::::1;::::0;9574:6:::1;::::0;9553:38:::1;::::0;9574:6:::1;::::0;9553:38:::1;9602:6;:17:::0;;-1:-1:-1;;;;;;9602:17:0::1;-1:-1:-1::0;;;;;9602:17:0;;;::::1;::::0;;;::::1;::::0;;9383:244::o;23884:160::-;9138:6;;-1:-1:-1;;;;;9138:6:0;1491:10;9138:22;9130:67;;;;-1:-1:-1;;;9130:67:0;;;;;;;:::i;:::-;23978:58:::1;::::0;23942:12:::1;::::0;23986:10:::1;::::0;24010:21:::1;::::0;23942:12;23978:58;23942:12;23978:58;24010:21;23986:10;23978:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;23884:160:0:o;8300:380::-;-1:-1:-1;;;;;8436:19:0;;8428:68;;;;-1:-1:-1;;;8428:68:0;;12721:2:1;8428:68:0;;;12703:21:1;12760:2;12740:18;;;12733:30;12799:34;12779:18;;;12772:62;-1:-1:-1;;;12850:18:1;;;12843:34;12894:19;;8428:68:0;12519:400:1;8428:68:0;-1:-1:-1;;;;;8515:21:0;;8507:68;;;;-1:-1:-1;;;8507:68:0;;13126:2:1;8507:68:0;;;13108:21:1;13165:2;13145:18;;;13138:30;13204:34;13184:18;;;13177:62;-1:-1:-1;;;13255:18:1;;;13248:32;13297:19;;8507:68:0;12924:398:1;8507:68:0;-1:-1:-1;;;;;8588:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8640:32;;1839:25:1;;;8640:32:0;;1812:18:1;8640:32:0;;;;;;;8300:380;;;:::o;17700:3360::-;-1:-1:-1;;;;;17800:18:0;;17792:68;;;;-1:-1:-1;;;17792:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17879:16:0;;17871:64;;;;-1:-1:-1;;;17871:64:0;;;;;;;:::i;:::-;17963:1;17954:6;:10;17946:52;;;;-1:-1:-1;;;17946:52:0;;14339:2:1;17946:52:0;;;14321:21:1;14378:2;14358:18;;;14351:30;14417:31;14397:18;;;14390:59;14466:18;;17946:52:0;14137:353:1;17946:52:0;9076:6;;-1:-1:-1;;;;;18044:15:0;;;9076:6;;18044:15;;;;:32;;-1:-1:-1;9076:6:0;;-1:-1:-1;;;;;18063:13:0;;;9076:6;;18063:13;;18044:32;:52;;;;-1:-1:-1;;;;;;18080:16:0;;;;18044:52;:77;;;;-1:-1:-1;;;;;;18100:21:0;;18114:6;18100:21;;18044:77;18040:1127;;;18145:13;;-1:-1:-1;;;18145:13:0;;;;18141:148;;-1:-1:-1;;;;;18190:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;18219:23:0;;;;;;:19;:23;;;;;;;;18190:52;18182:87;;;;-1:-1:-1;;;18182:87:0;;14697:2:1;18182:87:0;;;14679:21:1;14736:2;14716:18;;;14709:30;-1:-1:-1;;;14755:18:1;;;14748:52;14817:18;;18182:87:0;14495:346:1;18182:87:0;-1:-1:-1;;;;;18369:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;18405:35:0;;;;;;:31;:35;;;;;;;;18404:36;18369:71;18365:787;;;18487:12;;18477:6;:22;;18469:75;;;;-1:-1:-1;;;18469:75:0;;15048:2:1;18469:75:0;;;15030:21:1;15087:2;15067:18;;;15060:30;15126:34;15106:18;;;15099:62;-1:-1:-1;;;15177:18:1;;;15170:38;15225:19;;18469:75:0;14846:404:1;18469:75:0;18605:15;;-1:-1:-1;;;;;5682:18:0;;5655:7;5682:18;;;;;;;;;;;18579:22;;:6;:22;:::i;:::-;:41;;18571:78;;;;-1:-1:-1;;;18571:78:0;;15457:2:1;18571:78:0;;;15439:21:1;15496:2;15476:18;;;15469:30;-1:-1:-1;;;15515:18:1;;;15508:54;15579:18;;18571:78:0;15255:348:1;18571:78:0;18365:787;;;-1:-1:-1;;;;;18726:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;18760:37:0;;;;;;:31;:37;;;;;;;;18759:38;18726:71;18722:430;;;18844:13;;18834:6;:23;;18826:78;;;;-1:-1:-1;;;18826:78:0;;15810:2:1;18826:78:0;;;15792:21:1;15849:2;15829:18;;;15822:30;15888:34;15868:18;;;15861:62;-1:-1:-1;;;15939:18:1;;;15932:40;15989:19;;18826:78:0;15608:406:1;18722:430:0;-1:-1:-1;;;;;18953:35:0;;;;;;:31;:35;;;;;;;;18952:36;:78;;;;-1:-1:-1;;;;;;18993:37:0;;;;;;:31;:37;;;;;;;;18992:38;18952:78;18948:204;;;19088:15;;-1:-1:-1;;;;;5682:18:0;;5655:7;5682:18;;;;;;;;;;;19062:22;;:6;:22;:::i;:::-;:41;;19054:78;;;;-1:-1:-1;;;19054:78:0;;15457:2:1;19054:78:0;;;15439:21:1;15496:2;15476:18;;;15469:30;-1:-1:-1;;;15515:18:1;;;15508:54;15579:18;;19054:78:0;15255:348:1;19054:78:0;19238:4;19189:28;5682:18;;;;;;;;;;;19304;;19280:42;;;;;;;19338:22;;-1:-1:-1;19349:11:0;;-1:-1:-1;;;19349:11:0;;;;19338:22;:35;;;;-1:-1:-1;19365:8:0;;;;19364:9;19338:35;:71;;;;-1:-1:-1;;;;;;19378:31:0;;;;;;:25;:31;;;;;;;;19377:32;19338:71;:101;;;;-1:-1:-1;;;;;;19414:25:0;;;;;;:19;:25;;;;;;;;19413:26;19338:101;:129;;;;-1:-1:-1;;;;;;19444:23:0;;;;;;:19;:23;;;;;;;;19443:24;19338:129;19335:236;;;19484:8;:15;;-1:-1:-1;;19484:15:0;19495:4;19484:15;;;19516:10;:8;:10::i;:::-;19543:8;:16;;-1:-1:-1;;19543:16:0;;;19335:236;-1:-1:-1;;;;;19701:25:0;;19583:12;19701:25;;;:19;:25;;;;;;19598:4;;19701:25;;;:52;;-1:-1:-1;;;;;;19730:23:0;;;;;;:19;:23;;;;;;;;19701:52;19698:99;;;-1:-1:-1;19780:5:0;19698:99;19817:12;19921:7;19918:1077;;;-1:-1:-1;;;;;19987:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;20036:1;20020:13;;:17;19987:50;19983:727;;;20088:3;20073:13;;20064:6;:22;;;;:::i;:::-;:27;;;;:::i;:::-;20057:34;;20158:13;;20139:16;;20132:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;20110:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;20238:13:0;;20219:16;;20212:23;;:4;:23;:::i;:::-;:39;;;;:::i;:::-;20190:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;20296:11:0;;20310:3;;20287:20;;:6;:20;:::i;:::-;:26;;;;:::i;:::-;20270:13;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;19983:727:0;;-1:-1:-1;19983:727:0;;-1:-1:-1;;;;;20376:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;20426:1;20411:12;;:16;20376:51;20373:337;;;20476:3;20461:12;;20452:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;20445:34;;20542:12;;20524:15;;20517:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;20495:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;20620:12:0;;20602:15;;20595:22;;:4;:22;:::i;:::-;:37;;;;:::i;:::-;20573:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;20677:11:0;;20691:3;;20668:20;;:6;:20;:::i;:::-;:26;;;;:::i;:::-;20651:13;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;;20373:337:0;20741:8;;20738:94;;20774:42;20790:4;20804;20811;20774:15;:42::i;:::-;20850:53;20866:4;20880:6;20889:13;;20850:15;:53::i;:::-;20937:13;;20930:20;;:4;:20;:::i;:::-;20919:32;;;;:::i;:::-;20982:1;20966:13;:17;20919:32;-1:-1:-1;19918:1077:0;21019:33;21035:4;21041:2;21045:6;21019:15;:33::i;:::-;17779:3281;;;;17700:3360;;;:::o;16456:248::-;-1:-1:-1;;;;;16539:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;16539:39:0;;;;;;;16599;16539:31;:39;16599:26;:39::i;:::-;16656:40;;;;;;-1:-1:-1;;;;;16656:40:0;;;;;;;;16456:248;;:::o;22201:1219::-;22284:4;22240:23;5682:18;;;;;;;;;;;22240:50;;22301:25;22350:18;;22329;;:39;;;;:::i;:::-;22301:67;-1:-1:-1;22392:20:0;;;:46;;-1:-1:-1;22416:22:0;;22392:46;22389:60;;;22441:7;;22201:1219::o;22389:60::-;22482:18;;;:23;;;:::i;:::-;22464:15;:41;22461:113;;;22539:18;;;:23;;;:::i;:::-;22521:41;;22461:113;22586:12;22668:23;22753:1;22733:17;22712:18;;22694:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;22668:86;-1:-1:-1;22775:51:0;22792:33;22668:86;22792:15;:33;:::i;:::-;22775:16;:51::i;:::-;23032:18;;22869:21;;;;22848:18;;23032:20;;23051:1;;23032:20;:::i;:::-;23011:42;;:17;:42;:::i;:::-;22989:18;;22976:31;;:10;:31;:::i;:::-;:78;;;;:::i;:::-;22950:104;-1:-1:-1;23067:34:0;22950:104;23067:34;;:::i;:::-;23147:1;23126:18;:22;;;23159:18;:22;23067:34;-1:-1:-1;23207:19:0;;;;;:42;;;23248:1;23230:15;:19;23207:42;23204:119;;;23265:46;23278:15;23295;23265:12;:46::i;:::-;23356:16;;23348:64;;-1:-1:-1;;;;;23356:16:0;;;;23386:21;;23348:64;;;;23386:21;23356:16;23348:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;22201:1219:0:o;7379:614::-;-1:-1:-1;;;;;7519:20:0;;7511:70;;;;-1:-1:-1;;;7511:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7600:23:0;;7592:71;;;;-1:-1:-1;;;7592:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7700:17:0;;7676:21;7700:17;;;;;;;;;;;7736:23;;;;7728:74;;;;-1:-1:-1;;;7728:74:0;;16354:2:1;7728:74:0;;;16336:21:1;16393:2;16373:18;;;16366:30;16432:34;16412:18;;;16405:62;-1:-1:-1;;;16483:18:1;;;16476:36;16529:19;;7728:74:0;16152:402:1;7728:74:0;-1:-1:-1;;;;;7838:17:0;;;:9;:17;;;;;;;;;;;7858:22;;;7838:42;;7902:20;;;;;;;;:30;;7874:6;;7838:9;7902:30;;7874:6;;7902:30;:::i;:::-;;;;;;;;7967:9;-1:-1:-1;;;;;7950:35:0;7959:6;-1:-1:-1;;;;;7950:35:0;;7978:6;7950:35;;;;1839:25:1;;1827:2;1812:18;;1693:177;7950:35:0;;;;;;;;7500:493;7379:614;;;:::o;15708:207::-;-1:-1:-1;;;;;15796:39:0;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;15796:52:0;;;;;;;;;;15864:43;;16727:51:1;;;16794:18;;;16787:50;15864:43:0;;16700:18:1;15864:43:0;;;;;;;15708:207;;:::o;21068:591::-;21220:16;;;21234:1;21220:16;;;;;;;;21196:21;;21220:16;;;;;;;;;;-1:-1:-1;21220:16:0;21196:40;;21265:4;21247;21252:1;21247:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21247:23:0;;;-1:-1:-1;;;;;21247:23:0;;;;;21291:15;-1:-1:-1;;;;;21291:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21281:4;21286:1;21281:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;21281:32:0;;;-1:-1:-1;;;;;21281:32:0;;;;;21326:62;21343:4;21358:15;21376:11;21326:8;:62::i;:::-;21427:224;;-1:-1:-1;;;21427:224:0;;-1:-1:-1;;;;;21427:15:0;:66;;;;:224;;21508:11;;21534:1;;21578:4;;21605;;21625:15;;21427:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21123:536;21068:591;:::o;21671:522::-;21819:62;21836:4;21851:15;21869:11;21819:8;:62::i;:::-;21924:15;-1:-1:-1;;;;;21924:31:0;;21963:9;21996:4;22016:11;22042:1;22085;22136:7;9076:6;;-1:-1:-1;;;;;9076:6:0;;9011:79;22136:7;21924:261;;;;;;-1:-1:-1;;;;;;21924:261:0;;;-1:-1:-1;;;;;18712:15:1;;;21924:261:0;;;18694:34:1;18744:18;;;18737:34;;;;18787:18;;;18780:34;;;;18830:18;;;18823:34;18894:15;;;18873:19;;;18866:44;22159:15:0;18926:19:1;;;18919:35;18628:19;;21924:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21671:522;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;:::-;1451:5;1215:247;-1:-1:-1;;;1215:247:1:o;1875:456::-;1952:6;1960;1968;2021:2;2009:9;2000:7;1996:23;1992:32;1989:52;;;2037:1;2034;2027:12;1989:52;2076:9;2063:23;2095:31;2120:5;2095:31;:::i;:::-;2145:5;-1:-1:-1;2202:2:1;2187:18;;2174:32;2215:33;2174:32;2215:33;:::i;:::-;1875:456;;2267:7;;-1:-1:-1;;;2321:2:1;2306:18;;;;2293:32;;1875:456::o;2336:180::-;2395:6;2448:2;2436:9;2427:7;2423:23;2419:32;2416:52;;;2464:1;2461;2454:12;2416:52;-1:-1:-1;2487:23:1;;2336:180;-1:-1:-1;2336:180:1:o;2918:118::-;3004:5;2997:13;2990:21;2983:5;2980:32;2970:60;;3026:1;3023;3016:12;3041:382;3106:6;3114;3167:2;3155:9;3146:7;3142:23;3138:32;3135:52;;;3183:1;3180;3173:12;3135:52;3222:9;3209:23;3241:31;3266:5;3241:31;:::i;:::-;3291:5;-1:-1:-1;3348:2:1;3333:18;;3320:32;3361:30;3320:32;3361:30;:::i;:::-;3410:7;3400:17;;;3041:382;;;;;:::o;3428:316::-;3505:6;3513;3521;3574:2;3562:9;3553:7;3549:23;3545:32;3542:52;;;3590:1;3587;3580:12;3542:52;-1:-1:-1;;3613:23:1;;;3683:2;3668:18;;3655:32;;-1:-1:-1;3734:2:1;3719:18;;;3706:32;;3428:316;-1:-1:-1;3428:316:1:o;3749:388::-;3817:6;3825;3878:2;3866:9;3857:7;3853:23;3849:32;3846:52;;;3894:1;3891;3884:12;3846:52;3933:9;3920:23;3952:31;3977:5;3952:31;:::i;:::-;4002:5;-1:-1:-1;4059:2:1;4044:18;;4031:32;4072:33;4031:32;4072:33;:::i;4142:380::-;4221:1;4217:12;;;;4264;;;4285:61;;4339:4;4331:6;4327:17;4317:27;;4285:61;4392:2;4384:6;4381:14;4361:18;4358:38;4355:161;;4438:10;4433:3;4429:20;4426:1;4419:31;4473:4;4470:1;4463:15;4501:4;4498:1;4491:15;4355:161;;4142:380;;;:::o;4936:356::-;5138:2;5120:21;;;5157:18;;;5150:30;5216:34;5211:2;5196:18;;5189:62;5283:2;5268:18;;4936:356::o;5297:127::-;5358:10;5353:3;5349:20;5346:1;5339:31;5389:4;5386:1;5379:15;5413:4;5410:1;5403:15;5429:168;5502:9;;;5533;;5550:15;;;5544:22;;5530:37;5520:71;;5571:18;;:::i;5602:217::-;5642:1;5668;5658:132;;5712:10;5707:3;5703:20;5700:1;5693:31;5747:4;5744:1;5737:15;5775:4;5772:1;5765:15;5658:132;-1:-1:-1;5804:9:1;;5602:217::o;6227:125::-;6292:9;;;6313:10;;;6310:36;;;6326:18;;:::i;7532:184::-;7602:6;7655:2;7643:9;7634:7;7630:23;7626:32;7623:52;;;7671:1;7668;7661:12;7623:52;-1:-1:-1;7694:16:1;;7532:184;-1:-1:-1;7532:184:1:o;8000:245::-;8067:6;8120:2;8108:9;8099:7;8095:23;8091:32;8088:52;;;8136:1;8133;8126:12;8088:52;8168:9;8162:16;8187:28;8209:5;8187:28;:::i;13327:401::-;13529:2;13511:21;;;13568:2;13548:18;;;13541:30;13607:34;13602:2;13587:18;;13580:62;-1:-1:-1;;;13673:2:1;13658:18;;13651:35;13718:3;13703:19;;13327:401::o;13733:399::-;13935:2;13917:21;;;13974:2;13954:18;;;13947:30;14013:34;14008:2;13993:18;;13986:62;-1:-1:-1;;;14079:2:1;14064:18;;14057:33;14122:3;14107:19;;13733:399::o;16019:128::-;16086:9;;;16107:11;;;16104:37;;;16121:18;;:::i;16980:127::-;17041:10;17036:3;17032:20;17029:1;17022:31;17072:4;17069:1;17062:15;17096:4;17093:1;17086:15;17112:251;17182:6;17235:2;17223:9;17214:7;17210:23;17206:32;17203:52;;;17251:1;17248;17241:12;17203:52;17283:9;17277:16;17302:31;17327:5;17302:31;:::i;17368:980::-;17630:4;17678:3;17667:9;17663:19;17709:6;17698:9;17691:25;17735:2;17773:6;17768:2;17757:9;17753:18;17746:34;17816:3;17811:2;17800:9;17796:18;17789:31;17840:6;17875;17869:13;17906:6;17898;17891:22;17944:3;17933:9;17929:19;17922:26;;17983:2;17975:6;17971:15;17957:29;;18004:1;18014:195;18028:6;18025:1;18022:13;18014:195;;;18093:13;;-1:-1:-1;;;;;18089:39:1;18077:52;;18184:15;;;;18149:12;;;;18125:1;18043:9;18014:195;;;-1:-1:-1;;;;;;;18265:32:1;;;;18260:2;18245:18;;18238:60;-1:-1:-1;;;18329:3:1;18314:19;18307:35;18226:3;17368:980;-1:-1:-1;;;17368:980:1:o;18965:306::-;19053:6;19061;19069;19122:2;19110:9;19101:7;19097:23;19093:32;19090:52;;;19138:1;19135;19128:12;19090:52;19167:9;19161:16;19151:26;;19217:2;19206:9;19202:18;19196:25;19186:35;;19261:2;19250:9;19246:18;19240:25;19230:35;;18965:306;;;;;:::o
Swarm Source
ipfs://4d3069ba047e2db0312901ccef9a527a1be0268d0c65da493eb098b5e330ea2a
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.