Overview
Max Total Supply
500,000,000 AGEN
Holders
204 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,473.31 AGENValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AGEN
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-30 */ // SPDX-License-Identifier: MIT /* Smartcontract author: @TonyBoyDeFi Genesis project contract on Ethereum blockchain */ pragma solidity 0.8.17; 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 IUniswapV3Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV3Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; 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); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _createInitialSupply(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds your balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } 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; } } // Uniswap & Pancakeswap Router interface IUniswapV3Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV3Router02 is IUniswapV3Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract AGEN is ERC20, Ownable { using SafeMath for uint256; IUniswapV3Router02 public uniswapV3Router; address public uniswapV3Pair; bool private swapping; address public marketingWallet; address public expensesWallet; uint256 public percentForMarketing = 50; bool public buyBackEnabled = true; uint256 public swapTokensAtAmount; uint256 private liquidityActiveBlock = 0; uint256 private tradingActiveBlock = 0; bool public tradingActive = true; bool public swapEnabled = true; address private presaleAddress; address private presaleRouterAddress; uint256 public feeDivisor = 100; uint256 public totalSellFees; uint256 public marketingSellFee; uint256 public expensesSellFee; uint256 public totalBuyFees; uint256 public marketingBuyFee; uint256 public expensesBuyFee; uint256 private tokensForMarketing; uint256 private tokensForExpenses; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet); event expensesWalletUpdated(address indexed newWallet, address indexed oldWallet); constructor() ERC20("Alpha Genesis", "AGEN"){ address newOwner = address(0x6Ad3855Fb29303a7c3B6a00D55422cad817119D7); // Total Supply minted once during deployment and never minted again | Set number in tokens uint256 totalSupply = 500000000 * (10**18); // Tokens for SwapAndLiquify and automated BuyBack | Set number in tokens swapTokensAtAmount = 7500 * (10**18); // Contracts Sell fees marketingSellFee = 3; expensesSellFee = 4; totalSellFees = marketingSellFee + expensesSellFee; // Contracts Buy fees marketingBuyFee = 2; expensesBuyFee = 2; totalBuyFees = marketingBuyFee + expensesBuyFee; // Project Marketing Wallet | Updateable at a later point if necessary marketingWallet = address(0x94E709272FA55BB86e61C1Ec829Ba04f61128578); // Project Expenses Wallet | Updateable at a later point if necessary expensesWallet = address(0xbCCA432372F1967B75B2acFCB2bfCe8F3C5EF629); // Router settings for Binance Smart Chain: // Pancakeswap testnet: 0xD99D1c33F9fC3444f8101754aBC46c52416550D1 // Pancakeswap mainnet: 0x10ED43C718714eb63d5aA57B78B54704E256024E // Router settings for Ethereum: // Uniswap V3 mainnet: 0xE592427A0AEce92De3Edee1F18E0157C05861564 // Uniswap V2 testnet: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D // Uniswap V2 mainnet: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D IUniswapV3Router02 _uniswapV3Router = IUniswapV3Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _uniswapV3Pair = IUniswapV3Factory(_uniswapV3Router.factory()) .createPair(address(this), _uniswapV3Router.WETH()); uniswapV3Router = _uniswapV3Router; uniswapV3Pair = _uniswapV3Pair; _setAutomatedMarketMakerPair(_uniswapV3Pair, true); excludeFromFees(newOwner, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); _createInitialSupply(address(newOwner), totalSupply); transferOwnership(newOwner); } receive() external payable { } // Change SwapAndLiquidy token swap amounts | Set number in exact tokens function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool){ swapTokensAtAmount = newAmount * (10**18); return true; } // Exclude a wallet from all fees | Only for presale addresses, presale router and the deployer of the contract function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } // Exclude multiple wallets from all fees | Only for presale addresses, presale router and the deployer of the contract function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) external onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFees[accounts[i]] = excluded; } emit ExcludeMultipleAccountsFromFees(accounts, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV3Pair, "The UniSwap pair cannot be removed from AutomatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } // Set a new project marketing wallet | Wallet name can be changed to whatever suites the best function updateMarketingWallet(address newMarketingWallet) external onlyOwner { require(newMarketingWallet != address(0), "cannot set to 0 address"); excludeFromFees(newMarketingWallet, true); emit marketingWalletUpdated(newMarketingWallet, marketingWallet); marketingWallet = newMarketingWallet; } // Set a new expenses wallet | Wallet name can be changed to whatever suites the best function updateExpensesWallet(address newWallet) external onlyOwner { require(newWallet != address(0), "cannot set to 0 address"); excludeFromFees(newWallet, true); emit expensesWalletUpdated(newWallet, expensesWallet); expensesWallet = newWallet; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if(amount == 0) { super._transfer(from, to, 0); return; } if(!tradingActive || tradingActiveBlock + 2 >= block.number){ require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is always active after deployment"); } 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 = !swapping; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if(takeFee){ // Assets selling process if (automatedMarketMakerPairs[to] && totalSellFees > 0){ fees = amount.mul(totalSellFees).div(feeDivisor); tokensForMarketing += fees * marketingSellFee / totalSellFees; tokensForExpenses += fees * expensesSellFee / totalSellFees; } // Assets buying process else if(automatedMarketMakerPairs[from] && totalBuyFees > 0) { fees = amount.mul(totalBuyFees).div(feeDivisor); tokensForMarketing += fees * marketingBuyFee / totalBuyFees; tokensForExpenses += fees * expensesBuyFee / totalBuyFees; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapEthForNativeToken(uint256 ethAmount) private { if(ethAmount > 0){ address[] memory path = new address[](2); path[0] = uniswapV3Router.WETH(); path[1] = address(this); uniswapV3Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: ethAmount}( 0, path, address(marketingWallet), block.timestamp ); } } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV3Router.WETH(); _approve(address(this), address(uniswapV3Router), tokenAmount); uniswapV3Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV3Router), tokenAmount); uniswapV3Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, address(0xdead), block.timestamp ); } // Automated buyback to fight sell pressure function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarketing + tokensForExpenses; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} bool success; uint256 initialETHBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap); uint256 ethForExpenses= ethBalance.mul(tokensForExpenses).div(totalTokensToSwap); (success,) = address(expensesWallet).call{value: ethForExpenses}(""); if(buyBackEnabled){ (success,) = address(marketingWallet).call{value: ethForMarketing * percentForMarketing / 100}("Automated BuyBack completed"); swapEthForNativeToken(address(this).balance); } else { (success,) = address(marketingWallet).call{value: address(this).balance}("Success"); } } // Recovery functions for stuck native balances and accidentally sent ERC20 tokens // Function to recover stuck ETH from the contract address. Only callable by the owner function recoverContractETH() external onlyOwner { (bool success,) = address(msg.sender).call{value: address(this).balance}("Stuck ETH balance from contract address recovered"); require(success, "Failed. Either caller is not the owner or address is not the contract address"); } // Function to recover stuck or accidentaly sent ERC20 tokens from the contract function recoverERC20Token(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success){ return ERC20(tokenAddress).transfer(msg.sender, tokens); } //Function for automated buyback settings. Set in percentages for example: 50% = 50% to buyback and 50% to marketing wallet function marketingBuyBackSettings(bool _buyBackEnabled, uint256 _percentForMarketing) external onlyOwner { require(_percentForMarketing <= 100, "Must be set below 100%"); percentForMarketing = _percentForMarketing; buyBackEnabled = _buyBackEnabled; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"expensesWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"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":"buyBackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"expensesBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"expensesSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"expensesWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_buyBackEnabled","type":"bool"},{"internalType":"uint256","name":"_percentForMarketing","type":"uint256"}],"name":"marketingBuyBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"percentForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverContractETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"recoverERC20Token","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","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":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","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":"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":"uniswapV3Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV3Router","outputs":[{"internalType":"contract IUniswapV3Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateExpensesWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526032600a55600b805460ff191660011790556000600d819055600e55600f805461010161ffff1990911617905560646011553480156200004357600080fd5b506040518060400160405280600d81526020016c416c7068612047656e6573697360981b8152506040518060400160405280600481526020016320a3a2a760e11b8152508160039081620000989190620007ab565b506004620000a78282620007ab565b5050506000620000bc6200039760201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062002cec833981519152908290a3506901969368974c05b00000600c556003601381905560046014819055736ad3855fb29303a7c3b6a00d55422cad817119d7916b019d971e4fe8401e7400000091620001449162000877565b6012556002601681905560178190556200015f908062000877565b601555600880546001600160a01b03199081167394e709272fa55bb86e61c1ec829ba04f61128578179091556009805490911673bcca432372f1967b75b2acfcb2bfce8f3c5ef6291790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91600091839163c45a01559160048083019260209291908290030181865afa15801562000200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000226919062000899565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029a919062000899565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e919062000899565b600680546001600160a01b038086166001600160a01b031992831617909255600780549284169290911691909117905590506200034d8160016200039b565b6200035a846001620003ef565b62000367306001620003ef565b6200037661dead6001620003ef565b6200038284846200049d565b6200038d8462000599565b50505050620008c4565b3390565b6001600160a01b0382166000818152601b6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b031633146200043e5760405162461bcd60e51b8152602060048201819052602482015260008051602062002ccc83398151915260448201526064015b60405180910390fd5b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620004f55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000435565b62000511816002546200069b60201b6200114a1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620005449183906200114a6200069b821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620005e45760405162461bcd60e51b8152602060048201819052602482015260008051602062002ccc833981519152604482015260640162000435565b6001600160a01b0381166200064b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000435565b6005546040516001600160a01b0380841692169060008051602062002cec83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b505050565b600080620006aa838562000877565b905083811015620006fe5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000435565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200073257607f821691505b6020821081036200075357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200069657600081815260208120601f850160051c81016020861015620007825750805b601f850160051c820191505b81811015620007a3578281556001016200078e565b505050505050565b81516001600160401b03811115620007c757620007c762000707565b620007df81620007d884546200071d565b8462000759565b602080601f831160018114620008175760008415620007fe5750858301515b600019600386901b1c1916600185901b178555620007a3565b600085815260208120601f198616915b82811015620008485788860151825594840194600190910190840162000827565b5085821015620008675787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200070157634e487b7160e01b600052601160045260246000fd5b600060208284031215620008ac57600080fd5b81516001600160a01b0381168114620006fe57600080fd5b6123f880620008d46000396000f3fe60806040526004361061024a5760003560e01c806395d89b4111610139578063c0246668116100b6578063d69f2f821161007a578063d69f2f82146106b9578063dd62ed3e146106cf578063e2f4560514610715578063e7f444b31461072b578063f2fde38b14610741578063ff2581971461076157600080fd5b8063c02466681461062d578063c492f0461461064d578063ce1df33f1461066d578063d0a3981414610683578063d257b34f1461069957600080fd5b8063a9059cbb116100fd578063a9059cbb1461058d578063aacebbe3146105ad578063b62496f5146105cd578063b9e93700146105fd578063bbc0c7421461061357600080fd5b806395d89b411461050c578063984f02d3146105215780639a36f932146105375780639a7a23d61461054d578063a457c2d71461056d57600080fd5b80636598d2d1116101c757806375f0a8741161018b57806375f0a874146104795780638519517a1461049957806388522998146104ae5780638da5cb5b146104ce5780639439ff28146104ec57600080fd5b80636598d2d1146103d757806368078952146103f95780636ddd17131461040f57806370a082311461042e578063715018a61461046457600080fd5b8063313ce5671161020e578063313ce5671461032857806333f5b15f1461034457806339509351146103645780634fbee193146103845780636053a0e3146103bd57600080fd5b806306fdde0314610256578063095ea7b31461028157806318160ddd146102b157806323b872dd146102d05780632c76d7a6146102f057600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026b610781565b6040516102789190611e4d565b60405180910390f35b34801561028d57600080fd5b506102a161029c366004611eb0565b610813565b6040519015158152602001610278565b3480156102bd57600080fd5b506002545b604051908152602001610278565b3480156102dc57600080fd5b506102a16102eb366004611edc565b61082a565b3480156102fc57600080fd5b50600654610310906001600160a01b031681565b6040516001600160a01b039091168152602001610278565b34801561033457600080fd5b5060405160128152602001610278565b34801561035057600080fd5b506102a161035f366004611eb0565b610893565b34801561037057600080fd5b506102a161037f366004611eb0565b610941565b34801561039057600080fd5b506102a161039f366004611f1d565b6001600160a01b03166000908152601a602052604090205460ff1690565b3480156103c957600080fd5b50600b546102a19060ff1681565b3480156103e357600080fd5b506103f76103f2366004611f48565b610977565b005b34801561040557600080fd5b506102c260165481565b34801561041b57600080fd5b50600f546102a190610100900460ff1681565b34801561043a57600080fd5b506102c2610449366004611f1d565b6001600160a01b031660009081526020819052604090205490565b34801561047057600080fd5b506103f7610a01565b34801561048557600080fd5b50600854610310906001600160a01b031681565b3480156104a557600080fd5b506103f7610a75565b3480156104ba57600080fd5b50600754610310906001600160a01b031681565b3480156104da57600080fd5b506005546001600160a01b0316610310565b3480156104f857600080fd5b506103f7610507366004611f1d565b610bbb565b34801561051857600080fd5b5061026b610c9d565b34801561052d57600080fd5b506102c2600a5481565b34801561054357600080fd5b506102c260115481565b34801561055957600080fd5b506103f7610568366004611f66565b610cac565b34801561057957600080fd5b506102a1610588366004611eb0565b610d72565b34801561059957600080fd5b506102a16105a8366004611eb0565b610dc1565b3480156105b957600080fd5b506103f76105c8366004611f1d565b610dce565b3480156105d957600080fd5b506102a16105e8366004611f1d565b601b6020526000908152604090205460ff1681565b34801561060957600080fd5b506102c260155481565b34801561061f57600080fd5b50600f546102a19060ff1681565b34801561063957600080fd5b506103f7610648366004611f66565b610eb0565b34801561065957600080fd5b506103f7610668366004611f9f565b610f39565b34801561067957600080fd5b506102c260175481565b34801561068f57600080fd5b506102c260125481565b3480156106a557600080fd5b506102a16106b4366004612025565b611015565b3480156106c557600080fd5b506102c260145481565b3480156106db57600080fd5b506102c26106ea36600461203e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561072157600080fd5b506102c2600c5481565b34801561073757600080fd5b506102c260135481565b34801561074d57600080fd5b506103f761075c366004611f1d565b61105f565b34801561076d57600080fd5b50600954610310906001600160a01b031681565b6060600380546107909061206c565b80601f01602080910402602001604051908101604052809291908181526020018280546107bc9061206c565b80156108095780601f106107de57610100808354040283529160200191610809565b820191906000526020600020905b8154815290600101906020018083116107ec57829003601f168201915b5050505050905090565b60006108203384846111a9565b5060015b92915050565b60006108378484846112ce565b610889843361088485604051806060016040528060288152602001612376602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906116cb565b6111a9565b5060019392505050565b6005546000906001600160a01b031633146108c95760405162461bcd60e51b81526004016108c0906120a6565b60405180910390fd5b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a91906120db565b9392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610820918590610884908661114a565b6005546001600160a01b031633146109a15760405162461bcd60e51b81526004016108c0906120a6565b60648111156109eb5760405162461bcd60e51b81526020600482015260166024820152754d757374206265207365742062656c6f77203130302560501b60448201526064016108c0565b600a55600b805460ff1916911515919091179055565b6005546001600160a01b03163314610a2b5760405162461bcd60e51b81526004016108c0906120a6565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610a9f5760405162461bcd60e51b81526004016108c0906120a6565b6040517f537475636b204554482062616c616e63652066726f6d20636f6e7472616374208152701859191c995cdcc81c9958dbdd995c9959607a1b60208201526000903390479060310160006040518083038185875af1925050503d8060008114610b26576040519150601f19603f3d011682016040523d82523d6000602084013e610b2b565b606091505b5050905080610bb85760405162461bcd60e51b815260206004820152604d60248201527f4661696c65642e204569746865722063616c6c6572206973206e6f742074686560448201527f206f776e6572206f722061646472657373206973206e6f742074686520636f6e60648201526c7472616374206164647265737360981b608482015260a4016108c0565b50565b6005546001600160a01b03163314610be55760405162461bcd60e51b81526004016108c0906120a6565b6001600160a01b038116610c355760405162461bcd60e51b815260206004820152601760248201527663616e6e6f742073657420746f2030206164647265737360481b60448201526064016108c0565b610c40816001610eb0565b6009546040516001600160a01b03918216918316907f2609b19f26860a94a545927956c443b3a282ac05c8a55d161424777a0fa61e2090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6060600480546107909061206c565b6005546001600160a01b03163314610cd65760405162461bcd60e51b81526004016108c0906120a6565b6007546001600160a01b0390811690831603610d645760405162461bcd60e51b815260206004820152604160248201527f54686520556e695377617020706169722063616e6e6f742062652072656d6f7660448201527f65642066726f6d204175746f6d617465644d61726b65744d616b6572506169726064820152607360f81b608482015260a4016108c0565b610d6e8282611705565b5050565b600061082033846108848560405180606001604052806025815260200161239e602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906116cb565b60006108203384846112ce565b6005546001600160a01b03163314610df85760405162461bcd60e51b81526004016108c0906120a6565b6001600160a01b038116610e485760405162461bcd60e51b815260206004820152601760248201527663616e6e6f742073657420746f2030206164647265737360481b60448201526064016108c0565b610e53816001610eb0565b6008546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610eda5760405162461bcd60e51b81526004016108c0906120a6565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610f635760405162461bcd60e51b81526004016108c0906120a6565b60005b82811015610fd45781601a6000868685818110610f8557610f856120f8565b9050602002016020810190610f9a9190611f1d565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610fcc81612124565b915050610f66565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516110089392919061213d565b60405180910390a1505050565b6005546000906001600160a01b031633146110425760405162461bcd60e51b81526004016108c0906120a6565b61105482670de0b6b3a7640000612196565b600c55506001919050565b6005546001600160a01b031633146110895760405162461bcd60e51b81526004016108c0906120a6565b6001600160a01b0381166110ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108c0565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60008061115783856121ad565b90508381101561093a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108c0565b6001600160a01b03831661120b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108c0565b6001600160a01b03821661126c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108c0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166112f45760405162461bcd60e51b81526004016108c0906121c0565b6001600160a01b03821661131a5760405162461bcd60e51b81526004016108c090612205565b806000036113335761132e83836000611759565b505050565b600f5460ff161580611353575043600e54600261135091906121ad565b10155b156113f5576001600160a01b0383166000908152601a602052604090205460ff168061139757506001600160a01b0382166000908152601a602052604090205460ff165b6113f55760405162461bcd60e51b815260206004820152602960248201527f54726164696e6720697320616c77617973206163746976652061667465722064604482015268195c1b1bde5b595b9d60ba1b60648201526084016108c0565b30600090815260208190526040902054600c54811080159081906114205750600f54610100900460ff165b80156114365750600754600160a01b900460ff16155b801561145b57506001600160a01b0385166000908152601b602052604090205460ff16155b801561148057506001600160a01b0385166000908152601a602052604090205460ff16155b80156114a557506001600160a01b0384166000908152601a602052604090205460ff16155b156114d3576007805460ff60a01b1916600160a01b1790556114c5611862565b6007805460ff60a01b191690555b6007546001600160a01b0386166000908152601a602052604090205460ff600160a01b90920482161591168061152157506001600160a01b0385166000908152601a602052604090205460ff165b1561152a575060005b600081156116b7576001600160a01b0386166000908152601b602052604090205460ff16801561155c57506000601254115b156115eb5761158260115461157c60125488611a6b90919063ffffffff16565b90611aed565b9050601254601354826115959190612196565b61159f9190612248565b601860008282546115b091906121ad565b90915550506012546014546115c59083612196565b6115cf9190612248565b601960008282546115e091906121ad565b909155506116999050565b6001600160a01b0387166000908152601b602052604090205460ff16801561161557506000601554115b156116995761163560115461157c60155488611a6b90919063ffffffff16565b9050601554601654826116489190612196565b6116529190612248565b6018600082825461166391906121ad565b90915550506015546017546116789083612196565b6116829190612248565b6019600082825461169391906121ad565b90915550505b80156116aa576116aa873083611759565b6116b4818661226a565b94505b6116c2878787611759565b50505050505050565b600081848411156116ef5760405162461bcd60e51b81526004016108c09190611e4d565b5060006116fc848661226a565b95945050505050565b6001600160a01b0382166000818152601b6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03831661177f5760405162461bcd60e51b81526004016108c0906121c0565b6001600160a01b0382166117a55760405162461bcd60e51b81526004016108c090612205565b6117e281604051806060016040528060268152602001612350602691396001600160a01b03861660009081526020819052604090205491906116cb565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611811908261114a565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016112c1565b306000908152602081905260408120549050600060195460185461188691906121ad565b9050811580611893575080155b1561189c575050565b6000476118a884611b2f565b60006118b44783611c89565b905060006118d18561157c60185485611a6b90919063ffffffff16565b905060006118ee8661157c60195486611a6b90919063ffffffff16565b6009546040519192506001600160a01b0316908290600081818185875af1925050503d806000811461193c576040519150601f19603f3d011682016040523d82523d6000602084013e611941565b606091505b5050600b5490955060ff16156119f957600854600a546001600160a01b03909116906064906119709085612196565b61197a9190612248565b6040517f4175746f6d61746564204275794261636b20636f6d706c6574656400000000008152601b0160006040518083038185875af1925050503d80600081146119e0576040519150601f19603f3d011682016040523d82523d6000602084013e6119e5565b606091505b5050809550506119f447611ccb565b6116c2565b600854604051665375636365737360c81b81526001600160a01b0390911690479060070160006040518083038185875af1925050503d8060008114611a5a576040519150601f19603f3d011682016040523d82523d6000602084013e611a5f565b606091505b50505050505050505050565b600082600003611a7d57506000610824565b6000611a898385612196565b905082611a968583612248565b1461093a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108c0565b600061093a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e1f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b6457611b646120f8565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611bbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be1919061227d565b81600181518110611bf457611bf46120f8565b6001600160a01b039283166020918202929092010152600654611c1a91309116846111a9565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c539085906000908690309042906004016122de565b600060405180830381600087803b158015611c6d57600080fd5b505af1158015611c81573d6000803e3d6000fd5b505050505050565b600061093a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116cb565b8015610bb8576040805160028082526060820183526000926020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5f919061227d565b81600081518110611d7257611d726120f8565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611da657611da66120f8565b6001600160a01b03928316602091820292909201015260065460085460405163b6f9de9560e01b81529183169263b6f9de95928692611df292600092889290911690429060040161231a565b6000604051808303818588803b158015611e0b57600080fd5b505af11580156116c2573d6000803e3d6000fd5b60008183611e405760405162461bcd60e51b81526004016108c09190611e4d565b5060006116fc8486612248565b600060208083528351808285015260005b81811015611e7a57858101830151858201604001528201611e5e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bb857600080fd5b60008060408385031215611ec357600080fd5b8235611ece81611e9b565b946020939093013593505050565b600080600060608486031215611ef157600080fd5b8335611efc81611e9b565b92506020840135611f0c81611e9b565b929592945050506040919091013590565b600060208284031215611f2f57600080fd5b813561093a81611e9b565b8015158114610bb857600080fd5b60008060408385031215611f5b57600080fd5b8235611ece81611f3a565b60008060408385031215611f7957600080fd5b8235611f8481611e9b565b91506020830135611f9481611f3a565b809150509250929050565b600080600060408486031215611fb457600080fd5b833567ffffffffffffffff80821115611fcc57600080fd5b818601915086601f830112611fe057600080fd5b813581811115611fef57600080fd5b8760208260051b850101111561200457600080fd5b6020928301955093505084013561201a81611f3a565b809150509250925092565b60006020828403121561203757600080fd5b5035919050565b6000806040838503121561205157600080fd5b823561205c81611e9b565b91506020830135611f9481611e9b565b600181811c9082168061208057607f821691505b6020821081036120a057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156120ed57600080fd5b815161093a81611f3a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121365761213661210e565b5060010190565b6040808252810183905260008460608301825b8681101561218057823561216381611e9b565b6001600160a01b0316825260209283019290910190600101612150565b5080925050508215156020830152949350505050565b80820281158282048414176108245761082461210e565b808201808211156108245761082461210e565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008261226557634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108245761082461210e565b60006020828403121561228f57600080fd5b815161093a81611e9b565b600081518084526020808501945080840160005b838110156122d35781516001600160a01b0316875295820195908201906001016122ae565b509495945050505050565b85815284602082015260a0604082015260006122fd60a083018661229a565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000612333608083018661229a565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206f1d4e5acdf501d1ebe63716e3c8af86a309f342d7125583d3fd3e967d6de70a64736f6c634300081100334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x60806040526004361061024a5760003560e01c806395d89b4111610139578063c0246668116100b6578063d69f2f821161007a578063d69f2f82146106b9578063dd62ed3e146106cf578063e2f4560514610715578063e7f444b31461072b578063f2fde38b14610741578063ff2581971461076157600080fd5b8063c02466681461062d578063c492f0461461064d578063ce1df33f1461066d578063d0a3981414610683578063d257b34f1461069957600080fd5b8063a9059cbb116100fd578063a9059cbb1461058d578063aacebbe3146105ad578063b62496f5146105cd578063b9e93700146105fd578063bbc0c7421461061357600080fd5b806395d89b411461050c578063984f02d3146105215780639a36f932146105375780639a7a23d61461054d578063a457c2d71461056d57600080fd5b80636598d2d1116101c757806375f0a8741161018b57806375f0a874146104795780638519517a1461049957806388522998146104ae5780638da5cb5b146104ce5780639439ff28146104ec57600080fd5b80636598d2d1146103d757806368078952146103f95780636ddd17131461040f57806370a082311461042e578063715018a61461046457600080fd5b8063313ce5671161020e578063313ce5671461032857806333f5b15f1461034457806339509351146103645780634fbee193146103845780636053a0e3146103bd57600080fd5b806306fdde0314610256578063095ea7b31461028157806318160ddd146102b157806323b872dd146102d05780632c76d7a6146102f057600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026b610781565b6040516102789190611e4d565b60405180910390f35b34801561028d57600080fd5b506102a161029c366004611eb0565b610813565b6040519015158152602001610278565b3480156102bd57600080fd5b506002545b604051908152602001610278565b3480156102dc57600080fd5b506102a16102eb366004611edc565b61082a565b3480156102fc57600080fd5b50600654610310906001600160a01b031681565b6040516001600160a01b039091168152602001610278565b34801561033457600080fd5b5060405160128152602001610278565b34801561035057600080fd5b506102a161035f366004611eb0565b610893565b34801561037057600080fd5b506102a161037f366004611eb0565b610941565b34801561039057600080fd5b506102a161039f366004611f1d565b6001600160a01b03166000908152601a602052604090205460ff1690565b3480156103c957600080fd5b50600b546102a19060ff1681565b3480156103e357600080fd5b506103f76103f2366004611f48565b610977565b005b34801561040557600080fd5b506102c260165481565b34801561041b57600080fd5b50600f546102a190610100900460ff1681565b34801561043a57600080fd5b506102c2610449366004611f1d565b6001600160a01b031660009081526020819052604090205490565b34801561047057600080fd5b506103f7610a01565b34801561048557600080fd5b50600854610310906001600160a01b031681565b3480156104a557600080fd5b506103f7610a75565b3480156104ba57600080fd5b50600754610310906001600160a01b031681565b3480156104da57600080fd5b506005546001600160a01b0316610310565b3480156104f857600080fd5b506103f7610507366004611f1d565b610bbb565b34801561051857600080fd5b5061026b610c9d565b34801561052d57600080fd5b506102c2600a5481565b34801561054357600080fd5b506102c260115481565b34801561055957600080fd5b506103f7610568366004611f66565b610cac565b34801561057957600080fd5b506102a1610588366004611eb0565b610d72565b34801561059957600080fd5b506102a16105a8366004611eb0565b610dc1565b3480156105b957600080fd5b506103f76105c8366004611f1d565b610dce565b3480156105d957600080fd5b506102a16105e8366004611f1d565b601b6020526000908152604090205460ff1681565b34801561060957600080fd5b506102c260155481565b34801561061f57600080fd5b50600f546102a19060ff1681565b34801561063957600080fd5b506103f7610648366004611f66565b610eb0565b34801561065957600080fd5b506103f7610668366004611f9f565b610f39565b34801561067957600080fd5b506102c260175481565b34801561068f57600080fd5b506102c260125481565b3480156106a557600080fd5b506102a16106b4366004612025565b611015565b3480156106c557600080fd5b506102c260145481565b3480156106db57600080fd5b506102c26106ea36600461203e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561072157600080fd5b506102c2600c5481565b34801561073757600080fd5b506102c260135481565b34801561074d57600080fd5b506103f761075c366004611f1d565b61105f565b34801561076d57600080fd5b50600954610310906001600160a01b031681565b6060600380546107909061206c565b80601f01602080910402602001604051908101604052809291908181526020018280546107bc9061206c565b80156108095780601f106107de57610100808354040283529160200191610809565b820191906000526020600020905b8154815290600101906020018083116107ec57829003601f168201915b5050505050905090565b60006108203384846111a9565b5060015b92915050565b60006108378484846112ce565b610889843361088485604051806060016040528060288152602001612376602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906116cb565b6111a9565b5060019392505050565b6005546000906001600160a01b031633146108c95760405162461bcd60e51b81526004016108c0906120a6565b60405180910390fd5b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a91906120db565b9392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610820918590610884908661114a565b6005546001600160a01b031633146109a15760405162461bcd60e51b81526004016108c0906120a6565b60648111156109eb5760405162461bcd60e51b81526020600482015260166024820152754d757374206265207365742062656c6f77203130302560501b60448201526064016108c0565b600a55600b805460ff1916911515919091179055565b6005546001600160a01b03163314610a2b5760405162461bcd60e51b81526004016108c0906120a6565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610a9f5760405162461bcd60e51b81526004016108c0906120a6565b6040517f537475636b204554482062616c616e63652066726f6d20636f6e7472616374208152701859191c995cdcc81c9958dbdd995c9959607a1b60208201526000903390479060310160006040518083038185875af1925050503d8060008114610b26576040519150601f19603f3d011682016040523d82523d6000602084013e610b2b565b606091505b5050905080610bb85760405162461bcd60e51b815260206004820152604d60248201527f4661696c65642e204569746865722063616c6c6572206973206e6f742074686560448201527f206f776e6572206f722061646472657373206973206e6f742074686520636f6e60648201526c7472616374206164647265737360981b608482015260a4016108c0565b50565b6005546001600160a01b03163314610be55760405162461bcd60e51b81526004016108c0906120a6565b6001600160a01b038116610c355760405162461bcd60e51b815260206004820152601760248201527663616e6e6f742073657420746f2030206164647265737360481b60448201526064016108c0565b610c40816001610eb0565b6009546040516001600160a01b03918216918316907f2609b19f26860a94a545927956c443b3a282ac05c8a55d161424777a0fa61e2090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6060600480546107909061206c565b6005546001600160a01b03163314610cd65760405162461bcd60e51b81526004016108c0906120a6565b6007546001600160a01b0390811690831603610d645760405162461bcd60e51b815260206004820152604160248201527f54686520556e695377617020706169722063616e6e6f742062652072656d6f7660448201527f65642066726f6d204175746f6d617465644d61726b65744d616b6572506169726064820152607360f81b608482015260a4016108c0565b610d6e8282611705565b5050565b600061082033846108848560405180606001604052806025815260200161239e602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906116cb565b60006108203384846112ce565b6005546001600160a01b03163314610df85760405162461bcd60e51b81526004016108c0906120a6565b6001600160a01b038116610e485760405162461bcd60e51b815260206004820152601760248201527663616e6e6f742073657420746f2030206164647265737360481b60448201526064016108c0565b610e53816001610eb0565b6008546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610eda5760405162461bcd60e51b81526004016108c0906120a6565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610f635760405162461bcd60e51b81526004016108c0906120a6565b60005b82811015610fd45781601a6000868685818110610f8557610f856120f8565b9050602002016020810190610f9a9190611f1d565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610fcc81612124565b915050610f66565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516110089392919061213d565b60405180910390a1505050565b6005546000906001600160a01b031633146110425760405162461bcd60e51b81526004016108c0906120a6565b61105482670de0b6b3a7640000612196565b600c55506001919050565b6005546001600160a01b031633146110895760405162461bcd60e51b81526004016108c0906120a6565b6001600160a01b0381166110ee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108c0565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60008061115783856121ad565b90508381101561093a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108c0565b6001600160a01b03831661120b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108c0565b6001600160a01b03821661126c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108c0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166112f45760405162461bcd60e51b81526004016108c0906121c0565b6001600160a01b03821661131a5760405162461bcd60e51b81526004016108c090612205565b806000036113335761132e83836000611759565b505050565b600f5460ff161580611353575043600e54600261135091906121ad565b10155b156113f5576001600160a01b0383166000908152601a602052604090205460ff168061139757506001600160a01b0382166000908152601a602052604090205460ff165b6113f55760405162461bcd60e51b815260206004820152602960248201527f54726164696e6720697320616c77617973206163746976652061667465722064604482015268195c1b1bde5b595b9d60ba1b60648201526084016108c0565b30600090815260208190526040902054600c54811080159081906114205750600f54610100900460ff165b80156114365750600754600160a01b900460ff16155b801561145b57506001600160a01b0385166000908152601b602052604090205460ff16155b801561148057506001600160a01b0385166000908152601a602052604090205460ff16155b80156114a557506001600160a01b0384166000908152601a602052604090205460ff16155b156114d3576007805460ff60a01b1916600160a01b1790556114c5611862565b6007805460ff60a01b191690555b6007546001600160a01b0386166000908152601a602052604090205460ff600160a01b90920482161591168061152157506001600160a01b0385166000908152601a602052604090205460ff165b1561152a575060005b600081156116b7576001600160a01b0386166000908152601b602052604090205460ff16801561155c57506000601254115b156115eb5761158260115461157c60125488611a6b90919063ffffffff16565b90611aed565b9050601254601354826115959190612196565b61159f9190612248565b601860008282546115b091906121ad565b90915550506012546014546115c59083612196565b6115cf9190612248565b601960008282546115e091906121ad565b909155506116999050565b6001600160a01b0387166000908152601b602052604090205460ff16801561161557506000601554115b156116995761163560115461157c60155488611a6b90919063ffffffff16565b9050601554601654826116489190612196565b6116529190612248565b6018600082825461166391906121ad565b90915550506015546017546116789083612196565b6116829190612248565b6019600082825461169391906121ad565b90915550505b80156116aa576116aa873083611759565b6116b4818661226a565b94505b6116c2878787611759565b50505050505050565b600081848411156116ef5760405162461bcd60e51b81526004016108c09190611e4d565b5060006116fc848661226a565b95945050505050565b6001600160a01b0382166000818152601b6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03831661177f5760405162461bcd60e51b81526004016108c0906121c0565b6001600160a01b0382166117a55760405162461bcd60e51b81526004016108c090612205565b6117e281604051806060016040528060268152602001612350602691396001600160a01b03861660009081526020819052604090205491906116cb565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611811908261114a565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016112c1565b306000908152602081905260408120549050600060195460185461188691906121ad565b9050811580611893575080155b1561189c575050565b6000476118a884611b2f565b60006118b44783611c89565b905060006118d18561157c60185485611a6b90919063ffffffff16565b905060006118ee8661157c60195486611a6b90919063ffffffff16565b6009546040519192506001600160a01b0316908290600081818185875af1925050503d806000811461193c576040519150601f19603f3d011682016040523d82523d6000602084013e611941565b606091505b5050600b5490955060ff16156119f957600854600a546001600160a01b03909116906064906119709085612196565b61197a9190612248565b6040517f4175746f6d61746564204275794261636b20636f6d706c6574656400000000008152601b0160006040518083038185875af1925050503d80600081146119e0576040519150601f19603f3d011682016040523d82523d6000602084013e6119e5565b606091505b5050809550506119f447611ccb565b6116c2565b600854604051665375636365737360c81b81526001600160a01b0390911690479060070160006040518083038185875af1925050503d8060008114611a5a576040519150601f19603f3d011682016040523d82523d6000602084013e611a5f565b606091505b50505050505050505050565b600082600003611a7d57506000610824565b6000611a898385612196565b905082611a968583612248565b1461093a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108c0565b600061093a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e1f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b6457611b646120f8565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611bbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be1919061227d565b81600181518110611bf457611bf46120f8565b6001600160a01b039283166020918202929092010152600654611c1a91309116846111a9565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c539085906000908690309042906004016122de565b600060405180830381600087803b158015611c6d57600080fd5b505af1158015611c81573d6000803e3d6000fd5b505050505050565b600061093a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116cb565b8015610bb8576040805160028082526060820183526000926020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5f919061227d565b81600081518110611d7257611d726120f8565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611da657611da66120f8565b6001600160a01b03928316602091820292909201015260065460085460405163b6f9de9560e01b81529183169263b6f9de95928692611df292600092889290911690429060040161231a565b6000604051808303818588803b158015611e0b57600080fd5b505af11580156116c2573d6000803e3d6000fd5b60008183611e405760405162461bcd60e51b81526004016108c09190611e4d565b5060006116fc8486612248565b600060208083528351808285015260005b81811015611e7a57858101830151858201604001528201611e5e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bb857600080fd5b60008060408385031215611ec357600080fd5b8235611ece81611e9b565b946020939093013593505050565b600080600060608486031215611ef157600080fd5b8335611efc81611e9b565b92506020840135611f0c81611e9b565b929592945050506040919091013590565b600060208284031215611f2f57600080fd5b813561093a81611e9b565b8015158114610bb857600080fd5b60008060408385031215611f5b57600080fd5b8235611ece81611f3a565b60008060408385031215611f7957600080fd5b8235611f8481611e9b565b91506020830135611f9481611f3a565b809150509250929050565b600080600060408486031215611fb457600080fd5b833567ffffffffffffffff80821115611fcc57600080fd5b818601915086601f830112611fe057600080fd5b813581811115611fef57600080fd5b8760208260051b850101111561200457600080fd5b6020928301955093505084013561201a81611f3a565b809150509250925092565b60006020828403121561203757600080fd5b5035919050565b6000806040838503121561205157600080fd5b823561205c81611e9b565b91506020830135611f9481611e9b565b600181811c9082168061208057607f821691505b6020821081036120a057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156120ed57600080fd5b815161093a81611f3a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121365761213661210e565b5060010190565b6040808252810183905260008460608301825b8681101561218057823561216381611e9b565b6001600160a01b0316825260209283019290910190600101612150565b5080925050508215156020830152949350505050565b80820281158282048414176108245761082461210e565b808201808211156108245761082461210e565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008261226557634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108245761082461210e565b60006020828403121561228f57600080fd5b815161093a81611e9b565b600081518084526020808501945080840160005b838110156122d35781516001600160a01b0316875295820195908201906001016122ae565b509495945050505050565b85815284602082015260a0604082015260006122fd60a083018661229a565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000612333608083018661229a565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206f1d4e5acdf501d1ebe63716e3c8af86a309f342d7125583d3fd3e967d6de70a64736f6c63430008110033
Deployed Bytecode Sourcemap
16120:12054:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4916:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5830:169;;;;;;;;;;-1:-1:-1;5830:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5830:169:0;1023:187:1;5237:108:0;;;;;;;;;;-1:-1:-1;5325:12:0;;5237:108;;;1361:25:1;;;1349:2;1334:18;5237:108:0;1215:177:1;6007:355:0;;;;;;;;;;-1:-1:-1;6007:355:0;;;;;:::i;:::-;;:::i;16194:41::-;;;;;;;;;;-1:-1:-1;16194:41:0;;;;-1:-1:-1;;;;;16194:41:0;;;;;;-1:-1:-1;;;;;2049:32:1;;;2031:51;;2019:2;2004:18;16194:41:0;1858:230:1;5136:93:0;;;;;;;;;;-1:-1:-1;5136:93:0;;5219:2;2235:36:1;;2223:2;2208:18;5136:93:0;2093:184:1;27576:176:0;;;;;;;;;;-1:-1:-1;27576:176:0;;;;;:::i;:::-;;:::i;6370:218::-;;;;;;;;;;-1:-1:-1;6370:218:0;;;;;:::i;:::-;;:::i;22194:125::-;;;;;;;;;;-1:-1:-1;22194:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;22283:28:0;22259:4;22283:28;;;:19;:28;;;;;;;;;22194:125;16428:33;;;;;;;;;;-1:-1:-1;16428:33:0;;;;;;;;27889:282;;;;;;;;;;-1:-1:-1;27889:282:0;;;;;:::i;:::-;;:::i;:::-;;16952:30;;;;;;;;;;;;;;;;16645;;;;;;;;;;-1:-1:-1;16645:30:0;;;;;;;;;;;5353:127;;;;;;;;;;-1:-1:-1;5353:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5454:18:0;5427:7;5454:18;;;;;;;;;;;;5353:127;10813:150;;;;;;;;;;;;;:::i;16307:30::-;;;;;;;;;;-1:-1:-1;16307:30:0;;;;-1:-1:-1;;;;;16307:30:0;;;27182:301;;;;;;;;;;;;;:::i;16242:28::-;;;;;;;;;;-1:-1:-1;16242:28:0;;;;-1:-1:-1;;;;;16242:28:0;;;10599:79;;;;;;;;;;-1:-1:-1;10664:6:0;;-1:-1:-1;;;;;10664:6:0;10599:79;;21896:290;;;;;;;;;;-1:-1:-1;21896:290:0;;;;;:::i;:::-;;:::i;5024:104::-;;;;;;;;;;;;;:::i;16382:39::-;;;;;;;;;;;;;;;;16766:31;;;;;;;;;;;;;;;;20906:250;;;;;;;;;;-1:-1:-1;20906:250:0;;;;;:::i;:::-;;:::i;6596:269::-;;;;;;;;;;-1:-1:-1;6596:269:0;;;;;:::i;:::-;;:::i;5488:175::-;;;;;;;;;;-1:-1:-1;5488:175:0;;;;;:::i;:::-;;:::i;21458:339::-;;;;;;;;;;-1:-1:-1;21458:339:0;;;;;:::i;:::-;;:::i;17172:58::-;;;;;;;;;;-1:-1:-1;17172:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16918:27;;;;;;;;;;;;;;;;16606:32;;;;;;;;;;-1:-1:-1;16606:32:0;;;;;;;;20275:184;;;;;;;;;;-1:-1:-1;20275:184:0;;;;;:::i;:::-;;:::i;20592:306::-;;;;;;;;;;-1:-1:-1;20592:306:0;;;;;:::i;:::-;;:::i;16989:29::-;;;;;;;;;;;;;;;;16806:28;;;;;;;;;;;;;;;;19974:174;;;;;;;;;;-1:-1:-1;19974:174:0;;;;;:::i;:::-;;:::i;16879:30::-;;;;;;;;;;;;;;;;5671:151;;;;;;;;;;-1:-1:-1;5671:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;5787:18:0;;;5760:7;5787:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5671:151;16470:33;;;;;;;;;;;;;;;;16841:31;;;;;;;;;;;;;;;;10973:244;;;;;;;;;;-1:-1:-1;10973:244:0;;;;;:::i;:::-;;:::i;16344:29::-;;;;;;;;;;-1:-1:-1;16344:29:0;;;;-1:-1:-1;;;;;16344:29:0;;;4916:100;4970:13;5003:5;4996:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4916:100;:::o;5830:169::-;5913:4;5930:39;266:10;5953:7;5962:6;5930:8;:39::i;:::-;-1:-1:-1;5987:4:0;5830:169;;;;;:::o;6007:355::-;6147:4;6164:36;6174:6;6182:9;6193:6;6164:9;:36::i;:::-;6211:121;6220:6;266:10;6242:89;6280:6;6242:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6242:19:0;;;;;;:11;:19;;;;;;;;266:10;6242:33;;;;;;;;;;:37;:89::i;:::-;6211:8;:121::i;:::-;-1:-1:-1;6350:4:0;6007:355;;;;;:::o;27576:176::-;10726:6;;27669:12;;-1:-1:-1;;;;;10726:6:0;266:10;10726:22;10718:67;;;;-1:-1:-1;;;10718:67:0;;;;;;;:::i;:::-;;;;;;;;;27696:48:::1;::::0;-1:-1:-1;;;27696:48:0;;27725:10:::1;27696:48;::::0;::::1;5819:51:1::0;5886:18;;;5879:34;;;-1:-1:-1;;;;;27696:28:0;::::1;::::0;::::1;::::0;5792:18:1;;27696:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27689:55:::0;27576:176;-1:-1:-1;;;27576:176:0:o;6370:218::-;266:10;6458:4;6507:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6507:34:0;;;;;;;;;;6458:4;;6475:83;;6498:7;;6507:50;;6546:10;6507:38;:50::i;27889:282::-;10726:6;;-1:-1:-1;;;;;10726:6:0;266:10;10726:22;10718:67;;;;-1:-1:-1;;;10718:67:0;;;;;;;:::i;:::-;28037:3:::1;28013:20;:27;;28005:62;;;::::0;-1:-1:-1;;;28005:62:0;;6376:2:1;28005:62:0::1;::::0;::::1;6358:21:1::0;6415:2;6395:18;;;6388:30;-1:-1:-1;;;6434:18:1;;;6427:52;6496:18;;28005:62:0::1;6174:346:1::0;28005:62:0::1;28078:19;:42:::0;28131:14:::1;:32:::0;;-1:-1:-1;;28131:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27889:282::o;10813:150::-;10726:6;;-1:-1:-1;;;;;10726:6:0;266:10;10726:22;10718:67;;;;-1:-1:-1;;;10718:67:0;;;;;;;:::i;:::-;10906:6:::1;::::0;10885:40:::1;::::0;10922:1:::1;::::0;-1:-1:-1;;;;;10906:6:0::1;::::0;10885:40:::1;::::0;10922:1;;10885:40:::1;10936:6;:19:::0;;-1:-1:-1;;;;;;10936:19:0::1;::::0;;10813:150::o;27182:301::-;10726:6;;-1:-1:-1;;;;;10726:6:0;266:10;10726:22;10718:67;;;;-1:-1:-1;;;10718:67:0;;;;;;;:::i;:::-;27260:107:::1;::::0;6738:34:1;6726:47;;-1:-1:-1;;;6798:2:1;6789:12;;6782:41;27243:12:0::1;::::0;27268:10:::1;::::0;27292:21:::1;::::0;6848:2:1;6839:12;27260:107:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27242:125;;;27386:7;27378:97;;;::::0;-1:-1:-1;;;27378:97:0;;7064:2:1;27378:97:0::1;::::0;::::1;7046:21:1::0;7103:2;7083:18;;;7076:30;7142:34;7122:18;;;7115:62;7213:34;7193:18;;;7186:62;-1:-1:-1;;;7264:19:1;;;7257:44;7318:19;;27378:97:0::1;6862:481:1::0;27378:97:0::1;27231:252;27182:301::o:0;21896:290::-;10726:6;;-1:-1:-1;;;;;10726:6:0;266:10;10726:22;10718:67;;;;-1:-1:-1;;;10718:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21983:23:0;::::1;21975:59;;;::::0;-1:-1:-1;;;21975:59:0;;7550:2:1;21975:59:0::1;::::0;::::1;7532:21:1::0;7589:2;7569:18;;;7562:30;-1:-1:-1;;;7608:18:1;;;7601:53;7671:18;;21975:59:0::1;7348:347:1::0;21975:59:0::1;22045:32;22061:9;22072:4;22045:15;:32::i;:::-;22126:14;::::0;22093:48:::1;::::0;-1:-1:-1;;;;;22126:14:0;;::::1;::::0;22093:48;::::1;::::0;::::1;::::0;22126:14:::1;::::0;22093:48:::1;22152:14;:26:::0;;-1:-1:-1;;;;;;22152:26:0::1;-1:-1:-1::0;;;;;22152:26:0;;;::::1;::::0;;;::::1;::::0;;21896:290::o;5024:104::-;5080:13;5113:7;5106:14;;;;;:::i;20906:250::-;10726:6;;-1:-1:-1;;;;;10726:6:0;266:10;10726:22;10718:67;;;;-1:-1:-1;;;10718:67:0;;;;;;;:::i;:::-;21013:13:::1;::::0;-1:-1:-1;;;;;21013:13:0;;::::1;21005:21:::0;;::::1;::::0;20997:99:::1;;;::::0;-1:-1:-1;;;20997:99:0;;7902:2:1;20997:99:0::1;::::0;::::1;7884:21:1::0;7941:2;7921:18;;;7914:30;7980:34;7960:18;;;7953:62;8051:34;8031:18;;;8024:62;-1:-1:-1;;;8102:19:1;;;8095:32;8144:19;;20997:99:0::1;7700:469:1::0;20997:99:0::1;21107:41;21136:4;21142:5;21107:28;:41::i;:::-;20906:250:::0;;:::o;6596:269::-;6689:4;6706:129;266:10;6729:7;6738:96;6777:15;6738:96;;;;;;;;;;;;;;;;;266:10;6738:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6738:34:0;;;;;;;;;;;;:38;:96::i;5488:175::-;5574:4;5591:42;266:10;5615:9;5626:6;5591:9;:42::i;21458:339::-;10726:6;;-1:-1:-1;;;;;10726:6:0;266:10;10726:22;10718:67;;;;-1:-1:-1;;;10718:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21555:32:0;::::1;21547:68;;;::::0;-1:-1:-1;;;21547:68:0;;7550:2:1;21547:68:0::1;::::0;::::1;7532:21:1::0;7589:2;7569:18;;;7562:30;-1:-1:-1;;;7608:18:1;;;7601:53;7671:18;;21547:68:0::1;7348:347:1::0;21547:68:0::1;21626:41;21642:18;21662:4;21626:15;:41::i;:::-;21726:15;::::0;21683:59:::1;::::0;-1:-1:-1;;;;;21726:15:0;;::::1;::::0;21683:59;::::1;::::0;::::1;::::0;21726:15:::1;::::0;21683:59:::1;21753:15;:36:::0;;-1:-1:-1;;;;;;21753:36:0::1;-1:-1:-1::0;;;;;21753:36:0;;;::::1;::::0;;;::::1;::::0;;21458:339::o;20275:184::-;10726:6;;-1:-1:-1;;;;;10726:6:0;266:10;10726:22;10718:67;;;;-1:-1:-1;;;10718:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20360:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;20360:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20417:34;;1163:41:1;;;20417:34:0::1;::::0;1136:18:1;20417:34:0::1;;;;;;;20275:184:::0;;:::o;20592:306::-;10726:6;;-1:-1:-1;;;;;10726:6:0;266:10;10726:22;10718:67;;;;-1:-1:-1;;;10718:67:0;;;;;;;:::i;:::-;20711:9:::1;20707:115;20726:19:::0;;::::1;20707:115;;;20802:8;20767:19;:32;20787:8;;20796:1;20787:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20767:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20767:32:0;:43;;-1:-1:-1;;20767:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20747:3;::::1;::::0;::::1;:::i;:::-;;;;20707:115;;;;20839:51;20871:8;;20881;20839:51;;;;;;;;:::i;:::-;;;;;;;;20592:306:::0;;;:::o;19974:174::-;10726:6;;20055:4;;-1:-1:-1;;;;;10726:6:0;266:10;10726:22;10718:67;;;;-1:-1:-1;;;10718:67:0;;;;;;;:::i;:::-;20094:20:::1;:9:::0;20107:6:::1;20094:20;:::i;:::-;20073:18;:41:::0;-1:-1:-1;20134:4:0::1;19974:174:::0;;;:::o;10973:244::-;10726:6;;-1:-1:-1;;;;;10726:6:0;266:10;10726:22;10718:67;;;;-1:-1:-1;;;10718:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11062:22:0;::::1;11054:73;;;::::0;-1:-1:-1;;;11054:73:0;;9752:2:1;11054:73:0::1;::::0;::::1;9734:21:1::0;9791:2;9771:18;;;9764:30;9830:34;9810:18;;;9803:62;-1:-1:-1;;;9881:18:1;;;9874:36;9927:19;;11054:73:0::1;9550:402:1::0;11054:73:0::1;11164:6;::::0;11143:38:::1;::::0;-1:-1:-1;;;;;11143:38:0;;::::1;::::0;11164:6:::1;::::0;11143:38:::1;::::0;11164:6:::1;::::0;11143:38:::1;11192:6;:17:::0;;-1:-1:-1;;;;;;11192:17:0::1;-1:-1:-1::0;;;;;11192:17:0;;;::::1;::::0;;;::::1;::::0;;10973:244::o;8832:181::-;8890:7;;8922:5;8926:1;8922;:5;:::i;:::-;8910:17;;8951:1;8946;:6;;8938:46;;;;-1:-1:-1;;;8938:46:0;;10289:2:1;8938:46:0;;;10271:21:1;10328:2;10308:18;;;10301:30;10367:29;10347:18;;;10340:57;10414:18;;8938:46:0;10087:351:1;8286:380:0;-1:-1:-1;;;;;8422:19:0;;8414:68;;;;-1:-1:-1;;;8414:68:0;;10645:2:1;8414:68:0;;;10627:21:1;10684:2;10664:18;;;10657:30;10723:34;10703:18;;;10696:62;-1:-1:-1;;;10774:18:1;;;10767:34;10818:19;;8414:68:0;10443:400:1;8414:68:0;-1:-1:-1;;;;;8501:21:0;;8493:68;;;;-1:-1:-1;;;8493:68:0;;11050:2:1;8493:68:0;;;11032:21:1;11089:2;11069:18;;;11062:30;11128:34;11108:18;;;11101:62;-1:-1:-1;;;11179:18:1;;;11172:32;11221:19;;8493:68:0;10848:398:1;8493:68:0;-1:-1:-1;;;;;8574:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8626:32;;1361:25:1;;;8626:32:0;;1334:18:1;8626:32:0;;;;;;;;8286:380;;;:::o;22327:2164::-;-1:-1:-1;;;;;22459:18:0;;22451:68;;;;-1:-1:-1;;;22451:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22538:16:0;;22530:64;;;;-1:-1:-1;;;22530:64:0;;;;;;;:::i;:::-;22611:6;22621:1;22611:11;22608:92;;22639:28;22655:4;22661:2;22665:1;22639:15;:28::i;:::-;22327:2164;;;:::o;22608:92::-;22716:13;;;;22715:14;;:56;;;22759:12;22733:18;;22754:1;22733:22;;;;:::i;:::-;:38;;22715:56;22712:193;;;-1:-1:-1;;;;;22795:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;22824:23:0;;;;;;:19;:23;;;;;;;;22795:52;22787:106;;;;-1:-1:-1;;;22787:106:0;;12263:2:1;22787:106:0;;;12245:21:1;12302:2;12282:18;;;12275:30;12341:34;12321:18;;;12314:62;-1:-1:-1;;;12392:18:1;;;12385:39;12441:19;;22787:106:0;12061:405:1;22787:106:0;22966:4;22917:28;5454:18;;;;;;;;;;;23024;;23000:42;;;;;;;23072:35;;-1:-1:-1;23096:11:0;;;;;;;23072:35;:61;;;;-1:-1:-1;23125:8:0;;-1:-1:-1;;;23125:8:0;;;;23124:9;23072:61;:110;;;;-1:-1:-1;;;;;;23151:31:0;;;;;;:25;:31;;;;;;;;23150:32;23072:110;:153;;;;-1:-1:-1;;;;;;23200:25:0;;;;;;:19;:25;;;;;;;;23199:26;23072:153;:194;;;;-1:-1:-1;;;;;;23243:23:0;;;;;;:19;:23;;;;;;;;23242:24;23072:194;23055:321;;;23293:8;:15;;-1:-1:-1;;;;23293:15:0;-1:-1:-1;;;23293:15:0;;;23323:10;:8;:10::i;:::-;23348:8;:16;;-1:-1:-1;;;;23348:16:0;;;23055:321;23404:8;;-1:-1:-1;;;;;23430:25:0;;23388:12;23430:25;;;:19;:25;;;;;;23404:8;-1:-1:-1;;;23404:8:0;;;;;23403:9;;23430:25;;:52;;-1:-1:-1;;;;;;23459:23:0;;;;;;:19;:23;;;;;;;;23430:52;23427:99;;;-1:-1:-1;23509:5:0;23427:99;23538:12;23572:7;23569:867;;;-1:-1:-1;;;;;23640:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;23689:1;23673:13;;:17;23640:50;23636:651;;;23717:41;23747:10;;23717:25;23728:13;;23717:6;:10;;:25;;;;:::i;:::-;:29;;:41::i;:::-;23710:48;;23825:13;;23806:16;;23799:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;23777:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;23903:13:0;;23885:15;;23878:22;;:4;:22;:::i;:::-;:38;;;;:::i;:::-;23857:17;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;23636:651:0;;-1:-1:-1;23636:651:0;;-1:-1:-1;;;;;23992:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;24042:1;24027:12;;:16;23992:51;23989:298;;;24071:40;24100:10;;24071:24;24082:12;;24071:6;:10;;:24;;;;:::i;:40::-;24064:47;;24177:12;;24159:15;;24152:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;24130:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;24253:12:0;;24236:14;;24229:21;;:4;:21;:::i;:::-;:36;;;;:::i;:::-;24208:17;;:57;;;;;;;:::i;:::-;;;;-1:-1:-1;;23989:298:0;24308:8;;24305:89;;24336:42;24352:4;24366;24373;24336:15;:42::i;:::-;24410:14;24420:4;24410:14;;:::i;:::-;;;23569:867;24448:33;24464:4;24470:2;24474:6;24448:15;:33::i;:::-;22440:2051;;;;22327:2164;;;:::o;9167:192::-;9253:7;9289:12;9281:6;;;;9273:29;;;;-1:-1:-1;;;9273:29:0;;;;;;;;:::i;:::-;-1:-1:-1;9313:9:0;9325:5;9329:1;9325;:5;:::i;:::-;9313:17;9167:192;-1:-1:-1;;;;;9167:192:0:o;21164:186::-;-1:-1:-1;;;;;21247:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;21247:39:0;;;;;;;;;;21302:40;;21247:39;;:31;21302:40;;;21164:186;;:::o;6873:573::-;-1:-1:-1;;;;;7013:20:0;;7005:70;;;;-1:-1:-1;;;7005:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7094:23:0;;7086:71;;;;-1:-1:-1;;;7086:71:0;;;;;;;:::i;:::-;7250;7272:6;7250:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7250:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;7230:17:0;;;:9;:17;;;;;;;;;;;:91;;;;7355:20;;;;;;;:32;;7380:6;7355:24;:32::i;:::-;-1:-1:-1;;;;;7332:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;7403:35;1361:25:1;;;7332:20:0;;7403:35;;;;;;1334:18:1;7403:35:0;1215:177:1;25910:1082:0;25993:4;25949:23;5454:18;;;;;;;;;;;25949:50;;26010:25;26059:17;;26038:18;;:38;;;;:::i;:::-;26010:66;-1:-1:-1;26092:20:0;;;:46;;-1:-1:-1;26116:22:0;;26092:46;26089:60;;;26141:7;;25910:1082::o;26089:60::-;26161:12;26214:21;26248:33;26265:15;26248:16;:33::i;:::-;26294:18;26315:44;:21;26341:17;26315:25;:44::i;:::-;26294:65;;26372:23;26398:57;26437:17;26398:34;26413:18;;26398:10;:14;;:34;;;;:::i;:57::-;26372:83;;26466:22;26490:56;26528:17;26490:33;26505:17;;26490:10;:14;;:33;;;;:::i;:56::-;26580:14;;26572:55;;26466:80;;-1:-1:-1;;;;;;26580:14:0;;26466:80;;26572:55;;;;26466:80;26580:14;26572:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;26643:14:0;;26559:68;;-1:-1:-1;26643:14:0;;26640:345;;;26694:15;;26741:19;;-1:-1:-1;;;;;26694:15:0;;;;26763:3;;26723:37;;:15;:37;:::i;:::-;:43;;;;:::i;:::-;26686:112;;13249:29:1;13237:42;;13304:2;13295:12;26686:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26673:125;;;;;26813:44;26835:21;26813;:44::i;:::-;26640:345;;;26911:15;;26903:70;;-1:-1:-1;;;13519:22:1;;-1:-1:-1;;;;;26911:15:0;;;;26940:21;;13566:1:1;13557:11;26903:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;25910:1082:0:o;9369:252::-;9427:7;9453:1;9458;9453:6;9449:47;;-1:-1:-1;9483:1:0;9476:8;;9449:47;9508:9;9520:5;9524:1;9520;:5;:::i;:::-;9508:17;-1:-1:-1;9553:1:0;9544:5;9548:1;9508:17;9544:5;:::i;:::-;:10;9536:56;;;;-1:-1:-1;;;9536:56:0;;13781:2:1;9536:56:0;;;13763:21:1;13820:2;13800:18;;;13793:30;13859:34;13839:18;;;13832:62;-1:-1:-1;;;13910:18:1;;;13903:31;13951:19;;9536:56:0;13579:397:1;9629:132:0;9687:7;9714:39;9718:1;9721;9714:39;;;;;;;;;;;;;;;;;:3;:39::i;24988:479::-;25080:16;;;25094:1;25080:16;;;;;;;;25056:21;;25080:16;;;;;;;;;;-1:-1:-1;25080:16:0;25056:40;;25125:4;25107;25112:1;25107:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25107:23:0;;;:7;;;;;;;;;;:23;;;;25151:15;;:22;;;-1:-1:-1;;;25151:22:0;;;;:15;;;;;:20;;:22;;;;;25107:7;;25151:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25141:4;25146:1;25141:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25141:32:0;;;:7;;;;;;;;;:32;25218:15;;25186:62;;25203:4;;25218:15;25236:11;25186:8;:62::i;:::-;25261:15;;:196;;-1:-1:-1;;;25261:196:0;;-1:-1:-1;;;;;25261:15:0;;;;:66;;:196;;25342:11;;25261:15;;25384:4;;25411;;25431:15;;25261:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25043:424;24988:479;:::o;9023:136::-;9081:7;9108:43;9112:1;9115;9108:43;;;;;;;;;;;;;;;;;:3;:43::i;24499:481::-;24571:13;;24568:405;;24624:16;;;24638:1;24624:16;;;;;;;;24600:21;;24624:16;;;;;;;;-1:-1:-1;;24665:15:0;;:22;;;-1:-1:-1;;;24665:22:0;;;;24600:40;;-1:-1:-1;;;;;;24665:15:0;;;;:20;;-1:-1:-1;24665:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24655:4;24660:1;24655:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;24655:32:0;;;-1:-1:-1;;;;;24655:32:0;;;;;24720:4;24702;24707:1;24702:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24702:23:0;;;:7;;;;;;;;;:23;24742:15;;24896;;24742:219;;-1:-1:-1;;;24742:219:0;;:15;;;;:66;;24816:9;;24742:219;;:15;;24865:4;;24896:15;;;;24931;;24742:219;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9769:191;9855:7;9890:12;9883:5;9875:28;;;;-1:-1:-1;;;9875:28:0;;;;;;;;:::i;:::-;-1:-1:-1;9914:9:0;9926:5;9930:1;9926;:5;:::i;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;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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2282:247::-;2341:6;2394:2;2382:9;2373:7;2369:23;2365:32;2362:52;;;2410:1;2407;2400:12;2362:52;2449:9;2436:23;2468:31;2493:5;2468:31;:::i;2534:118::-;2620:5;2613:13;2606:21;2599:5;2596:32;2586:60;;2642:1;2639;2632:12;2657:309;2722:6;2730;2783:2;2771:9;2762:7;2758:23;2754:32;2751:52;;;2799:1;2796;2789:12;2751:52;2838:9;2825:23;2857:28;2879:5;2857:28;:::i;3179:382::-;3244:6;3252;3305:2;3293:9;3284:7;3280:23;3276:32;3273:52;;;3321:1;3318;3311:12;3273:52;3360:9;3347:23;3379:31;3404:5;3379:31;:::i;:::-;3429:5;-1:-1:-1;3486:2:1;3471:18;;3458:32;3499:30;3458:32;3499:30;:::i;:::-;3548:7;3538:17;;;3179:382;;;;;:::o;3566:750::-;3658:6;3666;3674;3727:2;3715:9;3706:7;3702:23;3698:32;3695:52;;;3743:1;3740;3733:12;3695:52;3783:9;3770:23;3812:18;3853:2;3845:6;3842:14;3839:34;;;3869:1;3866;3859:12;3839:34;3907:6;3896:9;3892:22;3882:32;;3952:7;3945:4;3941:2;3937:13;3933:27;3923:55;;3974:1;3971;3964:12;3923:55;4014:2;4001:16;4040:2;4032:6;4029:14;4026:34;;;4056:1;4053;4046:12;4026:34;4111:7;4104:4;4094:6;4091:1;4087:14;4083:2;4079:23;4075:34;4072:47;4069:67;;;4132:1;4129;4122:12;4069:67;4163:4;4155:13;;;;-1:-1:-1;4187:6:1;-1:-1:-1;;4228:20:1;;4215:34;4258:28;4215:34;4258:28;:::i;:::-;4305:5;4295:15;;;3566:750;;;;;:::o;4321:180::-;4380:6;4433:2;4421:9;4412:7;4408:23;4404:32;4401:52;;;4449:1;4446;4439:12;4401:52;-1:-1:-1;4472:23:1;;4321:180;-1:-1:-1;4321:180:1:o;4506:388::-;4574:6;4582;4635:2;4623:9;4614:7;4610:23;4606:32;4603:52;;;4651:1;4648;4641:12;4603:52;4690:9;4677:23;4709:31;4734:5;4709:31;:::i;:::-;4759:5;-1:-1:-1;4816:2:1;4801:18;;4788:32;4829:33;4788:32;4829:33;:::i;4899:380::-;4978:1;4974:12;;;;5021;;;5042:61;;5096:4;5088:6;5084:17;5074:27;;5042:61;5149:2;5141:6;5138:14;5118:18;5115:38;5112:161;;5195:10;5190:3;5186:20;5183:1;5176:31;5230:4;5227:1;5220:15;5258:4;5255:1;5248:15;5112:161;;4899:380;;;:::o;5284:356::-;5486:2;5468:21;;;5505:18;;;5498:30;5564:34;5559:2;5544:18;;5537:62;5631:2;5616:18;;5284:356::o;5924:245::-;5991:6;6044:2;6032:9;6023:7;6019:23;6015:32;6012:52;;;6060:1;6057;6050:12;6012:52;6092:9;6086:16;6111:28;6133:5;6111:28;:::i;8174:127::-;8235:10;8230:3;8226:20;8223:1;8216:31;8266:4;8263:1;8256:15;8290:4;8287:1;8280:15;8306:127;8367:10;8362:3;8358:20;8355:1;8348:31;8398:4;8395:1;8388:15;8422:4;8419:1;8412:15;8438:135;8477:3;8498:17;;;8495:43;;8518:18;;:::i;:::-;-1:-1:-1;8565:1:1;8554:13;;8438:135::o;8578:794::-;8800:2;8812:21;;;8785:18;;8868:22;;;8752:4;8947:6;8921:2;8906:18;;8752:4;8981:304;8995:6;8992:1;8989:13;8981:304;;;9070:6;9057:20;9090:31;9115:5;9090:31;:::i;:::-;-1:-1:-1;;;;;9146:31:1;9134:44;;9201:4;9260:15;;;;9225:12;;;;9174:1;9010:9;8981:304;;;8985:3;9302;9294:11;;;;9357:6;9350:14;9343:22;9336:4;9325:9;9321:20;9314:52;8578:794;;;;;;:::o;9377:168::-;9450:9;;;9481;;9498:15;;;9492:22;;9478:37;9468:71;;9519:18;;:::i;9957:125::-;10022:9;;;10043:10;;;10040:36;;;10056:18;;:::i;11251:401::-;11453:2;11435:21;;;11492:2;11472:18;;;11465:30;11531:34;11526:2;11511:18;;11504:62;-1:-1:-1;;;11597:2:1;11582:18;;11575:35;11642:3;11627:19;;11251:401::o;11657:399::-;11859:2;11841:21;;;11898:2;11878:18;;;11871:30;11937:34;11932:2;11917:18;;11910:62;-1:-1:-1;;;12003:2:1;11988:18;;11981:33;12046:3;12031:19;;11657:399::o;12471:217::-;12511:1;12537;12527:132;;12581:10;12576:3;12572:20;12569:1;12562:31;12616:4;12613:1;12606:15;12644:4;12641:1;12634:15;12527:132;-1:-1:-1;12673:9:1;;12471:217::o;12693:128::-;12760:9;;;12781:11;;;12778:37;;;12795:18;;:::i;14113:251::-;14183:6;14236:2;14224:9;14215:7;14211:23;14207:32;14204:52;;;14252:1;14249;14242:12;14204:52;14284:9;14278:16;14303:31;14328:5;14303:31;:::i;14369:461::-;14422:3;14460:5;14454:12;14487:6;14482:3;14475:19;14513:4;14542:2;14537:3;14533:12;14526:19;;14579:2;14572:5;14568:14;14600:1;14610:195;14624:6;14621:1;14618:13;14610:195;;;14689:13;;-1:-1:-1;;;;;14685:39:1;14673:52;;14745:12;;;;14780:15;;;;14721:1;14639:9;14610:195;;;-1:-1:-1;14821:3:1;;14369:461;-1:-1:-1;;;;;14369:461:1:o;14835:582::-;15134:6;15123:9;15116:25;15177:6;15172:2;15161:9;15157:18;15150:34;15220:3;15215:2;15204:9;15200:18;15193:31;15097:4;15241:57;15293:3;15282:9;15278:19;15270:6;15241:57;:::i;:::-;-1:-1:-1;;;;;15334:32:1;;;;15329:2;15314:18;;15307:60;-1:-1:-1;15398:3:1;15383:19;15376:35;15233:65;14835:582;-1:-1:-1;;;14835:582:1:o;15422:510::-;15693:6;15682:9;15675:25;15736:3;15731:2;15720:9;15716:18;15709:31;15656:4;15757:57;15809:3;15798:9;15794:19;15786:6;15757:57;:::i;:::-;-1:-1:-1;;;;;15850:32:1;;;;15845:2;15830:18;;15823:60;-1:-1:-1;15914:2:1;15899:18;15892:34;15749:65;15422:510;-1:-1:-1;;15422:510:1:o
Swarm Source
ipfs://6f1d4e5acdf501d1ebe63716e3c8af86a309f342d7125583d3fd3e967d6de70a
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.