ERC-20
Overview
Max Total Supply
1,777,777,777 LEGX
Holders
217
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
LEGX
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-19 */ // SPDX-License-Identifier: MIT /* Ensuring A Legal Legacy Block-by-Block™ The LegacyX Token (ticker: LEGX) is connected and associated with the initialization, development and adoption of the LegacyXFoundation™ Platform. Contract created by: Service Bridge https://serbridge.com/ */ 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 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 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 _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; } } // Interface for Uniswap 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; } // Main LegacyX Token Contract contract LEGX is ERC20, Ownable { using SafeMath for uint256; IUniswapV3Router02 public uniswapV3Router; address public uniswapV3Pair; bool private swapping; address public marketingWallet; address public expensesWallet; address private managementWallet; address private developerWallet; uint256 public percentForMarketing = 80; bool public buyBackEnabled = true; uint256 public swapTokensAtAmount; bool public swapEnabled = true; uint256 public feeDivisor = 1000; uint256 public totalSellFees; uint256 public marketingSellFee; uint256 public expensesSellFee; uint256 public managementSellFee; uint256 public developerSellFee; uint256 public totalBuyFees; uint256 public marketingBuyFee; uint256 public expensesBuyFee; uint256 public managementBuyFee; uint256 public developerBuyFee; uint256 private tokensForMarketing; uint256 private tokensForExpenses; uint256 private tokensForManagement; uint256 private tokensForDeveloper; 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("LegacyX Token", "LEGX"){ address newOwner = address(0xE24eF2Db22c60b30A398f8fbaC027bDb69F771A1); // Total Supply minted once during deployment and never minted again | Set number in exact tokens uint256 totalSupply = 1777777777 * (10**18); // Tokens threshold for conversion event | Set number in exact tokens swapTokensAtAmount = 50000 * (10**18); // Contracts Sell fees in percents | Static values marketingSellFee = 30; expensesSellFee = 30; managementSellFee = 5; developerSellFee = 5; totalSellFees = marketingSellFee + expensesSellFee + managementSellFee + developerSellFee; // Contracts Buy fees in percents | Static values marketingBuyFee = 30; expensesBuyFee = 30; managementBuyFee = 5; developerBuyFee = 5; totalBuyFees = marketingBuyFee + expensesBuyFee + managementBuyFee + developerBuyFee; // Project Marketing Wallet | In case of compromise, updateable marketingWallet = address(0x10FF95F4Ade1B70Edf73867Dd2a4438F5F6a1C66); // Project Expenses Wallet | In case of compromise, updateable expensesWallet = address(0xc9e142FD84ED201806F41236484fDB5Fd49AF2A9); // Project Management Wallet | Static variable managementWallet = address(0xD7257a80ACdf06B09Df2DD47CE990323561F0c08); // Project Developer Wallet | Static variable developerWallet = address(0x7c70239C0a77D1Db7Fc7d6759DAeec1A7B161020); // Router settings for Binance Smart Chain | Pancakeswap: // Pancakeswap testnet: 0xD99D1c33F9fC3444f8101754aBC46c52416550D1 // Pancakeswap mainnet: 0x10ED43C718714eb63d5aA57B78B54704E256024E // Router settings for Ethereum, Arbitrum, Optimism: // Uniswap V2 testnet: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D // Uniswap V2 mainnet: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D // Router settings for Polygon, Mumbai // SushiSwap mainnet & testnet: 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506 // QuickSwap mainnet: 0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff 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 S.A.L 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 fees | Not to be abused function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } // Exclude multiple wallets from fees | Not to be abused 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 | Only for owner 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 | Only for owner 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; } 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){ if (automatedMarketMakerPairs[to] && totalSellFees > 0){ fees = amount.mul(totalSellFees).div(feeDivisor); tokensForMarketing += fees * marketingSellFee / totalSellFees; tokensForExpenses += fees * expensesSellFee / totalSellFees; tokensForManagement += fees * managementSellFee / totalSellFees; tokensForDeveloper += fees * developerSellFee / totalSellFees; } else if(automatedMarketMakerPairs[from] && totalBuyFees > 0) { fees = amount.mul(totalBuyFees).div(feeDivisor); tokensForMarketing += fees * marketingBuyFee / totalBuyFees; tokensForExpenses += fees * expensesBuyFee / totalBuyFees; tokensForManagement += fees * managementBuyFee / totalBuyFees; tokensForDeveloper += fees * developerBuyFee / 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 ); } // For correcting sell pressure | Buyback percent adjustable between marketing wallet and buyback as % function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarketing + tokensForExpenses + tokensForManagement + tokensForDeveloper; 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); uint256 ethForManagement= ethBalance.mul(tokensForManagement).div(totalTokensToSwap); uint256 ethForDeveloper= ethBalance.mul(tokensForDeveloper).div(totalTokensToSwap); (success,) = address(expensesWallet).call{value: ethForExpenses}("Converted"); (success,) = address(managementWallet).call{value: ethForManagement}("Converted"); (success,) = address(developerWallet).call{value: ethForDeveloper}("Converted"); 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 recoverStuckETH() 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 recoverStuckTokens(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 changeBuyBackSettings(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":[{"internalType":"bool","name":"_buyBackEnabled","type":"bool"},{"internalType":"uint256","name":"_percentForMarketing","type":"uint256"}],"name":"changeBuyBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developerBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developerSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"managementBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"managementSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"recoverStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"recoverStuckTokens","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":[{"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
60806040526050600c55600d8054600160ff199182168117909255600f805490911690911790556103e86010553480156200003957600080fd5b506040518060400160405280600d81526020016c2632b3b0b1bcac102a37b5b2b760991b815250604051806040016040528060048152602001630988a8eb60e31b81525081600390816200008e919062000829565b5060046200009d828262000829565b5050506000620000b26200041660201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062002efc833981519152908290a350690a968163f0a57b400000600e55601e6012819055601381905560056014819055601581905573e24ef2db22c60b30a398f8fbac027bdb69f771a1916b05be8b1666a772525324000091908190620001489080620008f5565b620001549190620008f5565b620001609190620008f5565b601155601e6017819055601881905560056019819055601a8190559081906200018a9080620008f5565b620001969190620008f5565b620001a29190620008f5565b601655600880546001600160a01b03199081167310ff95f4ade1b70edf73867dd2a4438f5f6a1c661790915560098054821673c9e142fd84ed201806f41236484fdb5fd49af2a9179055600a8054821673d7257a80acdf06b09df2dd47ce990323561f0c08179055600b8054909116737c70239c0a77d1db7fc7d6759daeec1a7b1610201790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91600091839163c45a01559160048083019260209291908290030181865afa1580156200027f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a5919062000917565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000319919062000917565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000367573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038d919062000917565b600680546001600160a01b038086166001600160a01b03199283161790925560078054928416929091169190911790559050620003cc8160016200041a565b620003d98460016200046d565b620003e63060016200046d565b620003f561dead60016200046d565b6200040184846200051b565b6200040c8462000617565b5050505062000942565b3390565b6001600160a01b0382166000818152602080526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620004bc5760405162461bcd60e51b8152602060048201819052602482015260008051602062002edc83398151915260448201526064015b60405180910390fd5b6001600160a01b0382166000818152601f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005735760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004b3565b6200058f816002546200071960201b620011a31790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620005c2918390620011a362000719821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620006625760405162461bcd60e51b8152602060048201819052602482015260008051602062002edc8339815191526044820152606401620004b3565b6001600160a01b038116620006c95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620004b3565b6005546040516001600160a01b0380841692169060008051602062002efc83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b505050565b600080620007288385620008f5565b9050838110156200077c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620004b3565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007b057607f821691505b602082108103620007d157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200071457600081815260208120601f850160051c81016020861015620008005750805b601f850160051c820191505b8181101562000821578281556001016200080c565b505050505050565b81516001600160401b0381111562000845576200084562000785565b6200085d816200085684546200079b565b84620007d7565b602080601f8311600181146200089557600084156200087c5750858301515b600019600386901b1c1916600185901b17855562000821565b600085815260208120601f198616915b82811015620008c657888601518255948401946001909101908401620008a5565b5085821015620008e55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200077f57634e487b7160e01b600052601160045260246000fd5b6000602082840312156200092a57600080fd5b81516001600160a01b03811681146200077c57600080fd5b61258a80620009526000396000f3fe60806040526004361061026b5760003560e01c806395d89b4111610144578063c596f3fe116100b6578063dd62ed3e1161007a578063dd62ed3e14610712578063e2f4560514610758578063e35ec4471461076e578063e7f444b314610784578063f2fde38b1461079a578063ff258197146107ba57600080fd5b8063c596f3fe14610690578063ce1df33f146106b0578063d0a39814146106c6578063d257b34f146106dc578063d69f2f82146106fc57600080fd5b8063a9059cbb11610108578063a9059cbb146105cb578063aacebbe3146105eb578063b62496f51461060b578063b9e937001461063a578063c024666814610650578063c492f0461461067057600080fd5b806395d89b411461054a578063984f02d31461055f5780639a36f932146105755780639a7a23d61461058b578063a457c2d7146105ab57600080fd5b806358f30c8e116101dd578063715018a6116101a1578063715018a6146104a257806375f0a874146104b757806381a16445146104d757806388522998146104ec5780638da5cb5b1461050c5780639439ff281461052a57600080fd5b806358f30c8e1461040c5780636053a0e314610422578063680789521461043c5780636ddd17131461045257806370a082311461046c57600080fd5b80632c76d7a61161022f5780632c76d7a614610327578063313ce5671461035f578063395093511461037b5780633a919b6c1461039b5780633f1c325d146103bd5780634fbee193146103d357600080fd5b806306fdde0314610277578063095ea7b3146102a257806318160ddd146102d25780631e9c1e89146102f157806323b872dd1461030757600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028c6107da565b6040516102999190611fdf565b60405180910390f35b3480156102ae57600080fd5b506102c26102bd366004612042565b61086c565b6040519015158152602001610299565b3480156102de57600080fd5b506002545b604051908152602001610299565b3480156102fd57600080fd5b506102e360155481565b34801561031357600080fd5b506102c261032236600461206e565b610883565b34801561033357600080fd5b50600654610347906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b34801561036b57600080fd5b5060405160128152602001610299565b34801561038757600080fd5b506102c2610396366004612042565b6108ec565b3480156103a757600080fd5b506103bb6103b63660046120bd565b610922565b005b3480156103c957600080fd5b506102e3601a5481565b3480156103df57600080fd5b506102c26103ee3660046120db565b6001600160a01b03166000908152601f602052604090205460ff1690565b34801561041857600080fd5b506102e360145481565b34801561042e57600080fd5b50600d546102c29060ff1681565b34801561044857600080fd5b506102e360175481565b34801561045e57600080fd5b50600f546102c29060ff1681565b34801561047857600080fd5b506102e36104873660046120db565b6001600160a01b031660009081526020819052604090205490565b3480156104ae57600080fd5b506103bb6109b5565b3480156104c357600080fd5b50600854610347906001600160a01b031681565b3480156104e357600080fd5b506103bb610a29565b3480156104f857600080fd5b50600754610347906001600160a01b031681565b34801561051857600080fd5b506005546001600160a01b0316610347565b34801561053657600080fd5b506103bb6105453660046120db565b610b6f565b34801561055657600080fd5b5061028c610c51565b34801561056b57600080fd5b506102e3600c5481565b34801561058157600080fd5b506102e360105481565b34801561059757600080fd5b506103bb6105a63660046120f8565b610c60565b3480156105b757600080fd5b506102c26105c6366004612042565b610d26565b3480156105d757600080fd5b506102c26105e6366004612042565b610d75565b3480156105f757600080fd5b506103bb6106063660046120db565b610d82565b34801561061757600080fd5b506102c26106263660046120db565b602080526000908152604090205460ff1681565b34801561064657600080fd5b506102e360165481565b34801561065c57600080fd5b506103bb61066b3660046120f8565b610e64565b34801561067c57600080fd5b506103bb61068b366004612131565b610eed565b34801561069c57600080fd5b506102c26106ab366004612042565b610fc9565b3480156106bc57600080fd5b506102e360185481565b3480156106d257600080fd5b506102e360115481565b3480156106e857600080fd5b506102c26106f73660046121b7565b61106e565b34801561070857600080fd5b506102e360135481565b34801561071e57600080fd5b506102e361072d3660046121d0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561076457600080fd5b506102e3600e5481565b34801561077a57600080fd5b506102e360195481565b34801561079057600080fd5b506102e360125481565b3480156107a657600080fd5b506103bb6107b53660046120db565b6110b8565b3480156107c657600080fd5b50600954610347906001600160a01b031681565b6060600380546107e9906121fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610815906121fe565b80156108625780601f1061083757610100808354040283529160200191610862565b820191906000526020600020905b81548152906001019060200180831161084557829003601f168201915b5050505050905090565b6000610879338484611202565b5060015b92915050565b6000610890848484611327565b6108e284336108dd85604051806060016040528060288152602001612508602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061171a565b611202565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108799185906108dd90866111a3565b6005546001600160a01b031633146109555760405162461bcd60e51b815260040161094c90612238565b60405180910390fd5b606481111561099f5760405162461bcd60e51b81526020600482015260166024820152754d757374206265207365742062656c6f77203130302560501b604482015260640161094c565b600c55600d805460ff1916911515919091179055565b6005546001600160a01b031633146109df5760405162461bcd60e51b815260040161094c90612238565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610a535760405162461bcd60e51b815260040161094c90612238565b6040517f537475636b204554482062616c616e63652066726f6d20636f6e7472616374208152701859191c995cdcc81c9958dbdd995c9959607a1b60208201526000903390479060310160006040518083038185875af1925050503d8060008114610ada576040519150601f19603f3d011682016040523d82523d6000602084013e610adf565b606091505b5050905080610b6c5760405162461bcd60e51b815260206004820152604d60248201527f4661696c65642e204569746865722063616c6c6572206973206e6f742074686560448201527f206f776e6572206f722061646472657373206973206e6f742074686520636f6e60648201526c7472616374206164647265737360981b608482015260a40161094c565b50565b6005546001600160a01b03163314610b995760405162461bcd60e51b815260040161094c90612238565b6001600160a01b038116610be95760405162461bcd60e51b815260206004820152601760248201527663616e6e6f742073657420746f2030206164647265737360481b604482015260640161094c565b610bf4816001610e64565b6009546040516001600160a01b03918216918316907f2609b19f26860a94a545927956c443b3a282ac05c8a55d161424777a0fa61e2090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6060600480546107e9906121fe565b6005546001600160a01b03163314610c8a5760405162461bcd60e51b815260040161094c90612238565b6007546001600160a01b0390811690831603610d185760405162461bcd60e51b815260206004820152604160248201527f54686520556e695377617020706169722063616e6e6f742062652072656d6f7660448201527f65642066726f6d204175746f6d617465644d61726b65744d616b6572506169726064820152607360f81b608482015260a40161094c565b610d228282611754565b5050565b600061087933846108dd85604051806060016040528060258152602001612530602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061171a565b6000610879338484611327565b6005546001600160a01b03163314610dac5760405162461bcd60e51b815260040161094c90612238565b6001600160a01b038116610dfc5760405162461bcd60e51b815260206004820152601760248201527663616e6e6f742073657420746f2030206164647265737360481b604482015260640161094c565b610e07816001610e64565b6008546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610e8e5760405162461bcd60e51b815260040161094c90612238565b6001600160a01b0382166000818152601f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610f175760405162461bcd60e51b815260040161094c90612238565b60005b82811015610f885781601f6000868685818110610f3957610f3961226d565b9050602002016020810190610f4e91906120db565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610f8081612299565b915050610f1a565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b35838383604051610fbc939291906122b2565b60405180910390a1505050565b6005546000906001600160a01b03163314610ff65760405162461bcd60e51b815260040161094c90612238565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611043573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611067919061230b565b9392505050565b6005546000906001600160a01b0316331461109b5760405162461bcd60e51b815260040161094c90612238565b6110ad82670de0b6b3a7640000612328565b600e55506001919050565b6005546001600160a01b031633146110e25760405162461bcd60e51b815260040161094c90612238565b6001600160a01b0381166111475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161094c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000806111b0838561233f565b9050838110156110675760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161094c565b6001600160a01b0383166112645760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161094c565b6001600160a01b0382166112c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161094c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661134d5760405162461bcd60e51b815260040161094c90612352565b6001600160a01b0382166113735760405162461bcd60e51b815260040161094c90612397565b8060000361138c57611387838360006117a7565b505050565b30600090815260208190526040902054600e54811080159081906113b25750600f5460ff165b80156113c85750600754600160a01b900460ff16155b80156113ec57506001600160a01b038516600090815260208052604090205460ff16155b801561141157506001600160a01b0385166000908152601f602052604090205460ff16155b801561143657506001600160a01b0384166000908152601f602052604090205460ff16155b15611464576007805460ff60a01b1916600160a01b1790556114566118b0565b6007805460ff60a01b191690555b6007546001600160a01b0386166000908152601f602052604090205460ff600160a01b9092048216159116806114b257506001600160a01b0385166000908152601f602052604090205460ff165b156114bb575060005b60008115611706576001600160a01b038616600090815260208052604090205460ff1680156114ec57506000601154115b156115db5761151260105461150c60115488611bfd90919063ffffffff16565b90611c7f565b9050601154601254826115259190612328565b61152f91906123da565b601b6000828254611540919061233f565b90915550506011546013546115559083612328565b61155f91906123da565b601c6000828254611570919061233f565b90915550506011546014546115859083612328565b61158f91906123da565b601d60008282546115a0919061233f565b90915550506011546015546115b59083612328565b6115bf91906123da565b601e60008282546115d0919061233f565b909155506116e89050565b6001600160a01b038716600090815260208052604090205460ff16801561160457506000601654115b156116e85761162460105461150c60165488611bfd90919063ffffffff16565b9050601654601754826116379190612328565b61164191906123da565b601b6000828254611652919061233f565b90915550506016546018546116679083612328565b61167191906123da565b601c6000828254611682919061233f565b90915550506016546019546116979083612328565b6116a191906123da565b601d60008282546116b2919061233f565b9091555050601654601a546116c79083612328565b6116d191906123da565b601e60008282546116e2919061233f565b90915550505b80156116f9576116f98730836117a7565b61170381866123fc565b94505b6117118787876117a7565b50505050505050565b6000818484111561173e5760405162461bcd60e51b815260040161094c9190611fdf565b50600061174b84866123fc565b95945050505050565b6001600160a01b0382166000818152602080526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166117cd5760405162461bcd60e51b815260040161094c90612352565b6001600160a01b0382166117f35760405162461bcd60e51b815260040161094c90612397565b611830816040518060600160405280602681526020016124e2602691396001600160a01b038616600090815260208190526040902054919061171a565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461185f90826111a3565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161131a565b3060009081526020819052604081205490506000601e54601d54601c54601b546118da919061233f565b6118e4919061233f565b6118ee919061233f565b90508115806118fb575080155b15611904575050565b60004761191084611cc1565b600061191c4783611e1b565b905060006119398561150c601b5485611bfd90919063ffffffff16565b905060006119568661150c601c5486611bfd90919063ffffffff16565b905060006119738761150c601d5487611bfd90919063ffffffff16565b905060006119908861150c601e5488611bfd90919063ffffffff16565b600980546040516810dbdb9d995c9d195960ba1b81529293506001600160a01b03169185910160006040518083038185875af1925050503d80600081146119f3576040519150601f19603f3d011682016040523d82523d6000602084013e6119f8565b606091505b5050600a546040516810dbdb9d995c9d195960ba1b81529198506001600160a01b031690839060090160006040518083038185875af1925050503d8060008114611a5e576040519150601f19603f3d011682016040523d82523d6000602084013e611a63565b606091505b5050600b546040516810dbdb9d995c9d195960ba1b81529198506001600160a01b031690829060090160006040518083038185875af1925050503d8060008114611ac9576040519150601f19603f3d011682016040523d82523d6000602084013e611ace565b606091505b5050600d5490975060ff1615611b8657600854600c546001600160a01b0390911690606490611afd9087612328565b611b0791906123da565b6040517f4175746f6d61746564204275794261636b20636f6d706c6574656400000000008152601b0160006040518083038185875af1925050503d8060008114611b6d576040519150601f19603f3d011682016040523d82523d6000602084013e611b72565b606091505b505080975050611b8147611e5d565b611bf2565b600854604051665375636365737360c81b81526001600160a01b0390911690479060070160006040518083038185875af1925050503d8060008114611be7576040519150601f19603f3d011682016040523d82523d6000602084013e611bec565b606091505b50909750505b505050505050505050565b600082600003611c0f5750600061087d565b6000611c1b8385612328565b905082611c2885836123da565b146110675760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161094c565b600061106783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fb1565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611cf657611cf661226d565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d73919061240f565b81600181518110611d8657611d8661226d565b6001600160a01b039283166020918202929092010152600654611dac9130911684611202565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611de5908590600090869030904290600401612470565b600060405180830381600087803b158015611dff57600080fd5b505af1158015611e13573d6000803e3d6000fd5b505050505050565b600061106783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061171a565b8015610b6c576040805160028082526060820183526000926020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef1919061240f565b81600081518110611f0457611f0461226d565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611f3857611f3861226d565b6001600160a01b03928316602091820292909201015260065460085460405163b6f9de9560e01b81529183169263b6f9de95928692611f849260009288929091169042906004016124ac565b6000604051808303818588803b158015611f9d57600080fd5b505af1158015611711573d6000803e3d6000fd5b60008183611fd25760405162461bcd60e51b815260040161094c9190611fdf565b50600061174b84866123da565b600060208083528351808285015260005b8181101561200c57858101830151858201604001528201611ff0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b6c57600080fd5b6000806040838503121561205557600080fd5b82356120608161202d565b946020939093013593505050565b60008060006060848603121561208357600080fd5b833561208e8161202d565b9250602084013561209e8161202d565b929592945050506040919091013590565b8015158114610b6c57600080fd5b600080604083850312156120d057600080fd5b8235612060816120af565b6000602082840312156120ed57600080fd5b81356110678161202d565b6000806040838503121561210b57600080fd5b82356121168161202d565b91506020830135612126816120af565b809150509250929050565b60008060006040848603121561214657600080fd5b833567ffffffffffffffff8082111561215e57600080fd5b818601915086601f83011261217257600080fd5b81358181111561218157600080fd5b8760208260051b850101111561219657600080fd5b602092830195509350508401356121ac816120af565b809150509250925092565b6000602082840312156121c957600080fd5b5035919050565b600080604083850312156121e357600080fd5b82356121ee8161202d565b915060208301356121268161202d565b600181811c9082168061221257607f821691505b60208210810361223257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122ab576122ab612283565b5060010190565b6040808252810183905260008460608301825b868110156122f55782356122d88161202d565b6001600160a01b03168252602092830192909101906001016122c5565b5080925050508215156020830152949350505050565b60006020828403121561231d57600080fd5b8151611067816120af565b808202811582820484141761087d5761087d612283565b8082018082111561087d5761087d612283565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826123f757634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561087d5761087d612283565b60006020828403121561242157600080fd5b81516110678161202d565b600081518084526020808501945080840160005b838110156124655781516001600160a01b031687529582019590820190600101612440565b509495945050505050565b85815284602082015260a06040820152600061248f60a083018661242c565b6001600160a01b0394909416606083015250608001529392505050565b8481526080602082015260006124c5608083018661242c565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205c80bc1f2a972eec5ffbdb1f54fa4c1baa79e21ee1d97f355409ece4a7febce664736f6c634300081100334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x60806040526004361061026b5760003560e01c806395d89b4111610144578063c596f3fe116100b6578063dd62ed3e1161007a578063dd62ed3e14610712578063e2f4560514610758578063e35ec4471461076e578063e7f444b314610784578063f2fde38b1461079a578063ff258197146107ba57600080fd5b8063c596f3fe14610690578063ce1df33f146106b0578063d0a39814146106c6578063d257b34f146106dc578063d69f2f82146106fc57600080fd5b8063a9059cbb11610108578063a9059cbb146105cb578063aacebbe3146105eb578063b62496f51461060b578063b9e937001461063a578063c024666814610650578063c492f0461461067057600080fd5b806395d89b411461054a578063984f02d31461055f5780639a36f932146105755780639a7a23d61461058b578063a457c2d7146105ab57600080fd5b806358f30c8e116101dd578063715018a6116101a1578063715018a6146104a257806375f0a874146104b757806381a16445146104d757806388522998146104ec5780638da5cb5b1461050c5780639439ff281461052a57600080fd5b806358f30c8e1461040c5780636053a0e314610422578063680789521461043c5780636ddd17131461045257806370a082311461046c57600080fd5b80632c76d7a61161022f5780632c76d7a614610327578063313ce5671461035f578063395093511461037b5780633a919b6c1461039b5780633f1c325d146103bd5780634fbee193146103d357600080fd5b806306fdde0314610277578063095ea7b3146102a257806318160ddd146102d25780631e9c1e89146102f157806323b872dd1461030757600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028c6107da565b6040516102999190611fdf565b60405180910390f35b3480156102ae57600080fd5b506102c26102bd366004612042565b61086c565b6040519015158152602001610299565b3480156102de57600080fd5b506002545b604051908152602001610299565b3480156102fd57600080fd5b506102e360155481565b34801561031357600080fd5b506102c261032236600461206e565b610883565b34801561033357600080fd5b50600654610347906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b34801561036b57600080fd5b5060405160128152602001610299565b34801561038757600080fd5b506102c2610396366004612042565b6108ec565b3480156103a757600080fd5b506103bb6103b63660046120bd565b610922565b005b3480156103c957600080fd5b506102e3601a5481565b3480156103df57600080fd5b506102c26103ee3660046120db565b6001600160a01b03166000908152601f602052604090205460ff1690565b34801561041857600080fd5b506102e360145481565b34801561042e57600080fd5b50600d546102c29060ff1681565b34801561044857600080fd5b506102e360175481565b34801561045e57600080fd5b50600f546102c29060ff1681565b34801561047857600080fd5b506102e36104873660046120db565b6001600160a01b031660009081526020819052604090205490565b3480156104ae57600080fd5b506103bb6109b5565b3480156104c357600080fd5b50600854610347906001600160a01b031681565b3480156104e357600080fd5b506103bb610a29565b3480156104f857600080fd5b50600754610347906001600160a01b031681565b34801561051857600080fd5b506005546001600160a01b0316610347565b34801561053657600080fd5b506103bb6105453660046120db565b610b6f565b34801561055657600080fd5b5061028c610c51565b34801561056b57600080fd5b506102e3600c5481565b34801561058157600080fd5b506102e360105481565b34801561059757600080fd5b506103bb6105a63660046120f8565b610c60565b3480156105b757600080fd5b506102c26105c6366004612042565b610d26565b3480156105d757600080fd5b506102c26105e6366004612042565b610d75565b3480156105f757600080fd5b506103bb6106063660046120db565b610d82565b34801561061757600080fd5b506102c26106263660046120db565b602080526000908152604090205460ff1681565b34801561064657600080fd5b506102e360165481565b34801561065c57600080fd5b506103bb61066b3660046120f8565b610e64565b34801561067c57600080fd5b506103bb61068b366004612131565b610eed565b34801561069c57600080fd5b506102c26106ab366004612042565b610fc9565b3480156106bc57600080fd5b506102e360185481565b3480156106d257600080fd5b506102e360115481565b3480156106e857600080fd5b506102c26106f73660046121b7565b61106e565b34801561070857600080fd5b506102e360135481565b34801561071e57600080fd5b506102e361072d3660046121d0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561076457600080fd5b506102e3600e5481565b34801561077a57600080fd5b506102e360195481565b34801561079057600080fd5b506102e360125481565b3480156107a657600080fd5b506103bb6107b53660046120db565b6110b8565b3480156107c657600080fd5b50600954610347906001600160a01b031681565b6060600380546107e9906121fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610815906121fe565b80156108625780601f1061083757610100808354040283529160200191610862565b820191906000526020600020905b81548152906001019060200180831161084557829003601f168201915b5050505050905090565b6000610879338484611202565b5060015b92915050565b6000610890848484611327565b6108e284336108dd85604051806060016040528060288152602001612508602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061171a565b611202565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108799185906108dd90866111a3565b6005546001600160a01b031633146109555760405162461bcd60e51b815260040161094c90612238565b60405180910390fd5b606481111561099f5760405162461bcd60e51b81526020600482015260166024820152754d757374206265207365742062656c6f77203130302560501b604482015260640161094c565b600c55600d805460ff1916911515919091179055565b6005546001600160a01b031633146109df5760405162461bcd60e51b815260040161094c90612238565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610a535760405162461bcd60e51b815260040161094c90612238565b6040517f537475636b204554482062616c616e63652066726f6d20636f6e7472616374208152701859191c995cdcc81c9958dbdd995c9959607a1b60208201526000903390479060310160006040518083038185875af1925050503d8060008114610ada576040519150601f19603f3d011682016040523d82523d6000602084013e610adf565b606091505b5050905080610b6c5760405162461bcd60e51b815260206004820152604d60248201527f4661696c65642e204569746865722063616c6c6572206973206e6f742074686560448201527f206f776e6572206f722061646472657373206973206e6f742074686520636f6e60648201526c7472616374206164647265737360981b608482015260a40161094c565b50565b6005546001600160a01b03163314610b995760405162461bcd60e51b815260040161094c90612238565b6001600160a01b038116610be95760405162461bcd60e51b815260206004820152601760248201527663616e6e6f742073657420746f2030206164647265737360481b604482015260640161094c565b610bf4816001610e64565b6009546040516001600160a01b03918216918316907f2609b19f26860a94a545927956c443b3a282ac05c8a55d161424777a0fa61e2090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6060600480546107e9906121fe565b6005546001600160a01b03163314610c8a5760405162461bcd60e51b815260040161094c90612238565b6007546001600160a01b0390811690831603610d185760405162461bcd60e51b815260206004820152604160248201527f54686520556e695377617020706169722063616e6e6f742062652072656d6f7660448201527f65642066726f6d204175746f6d617465644d61726b65744d616b6572506169726064820152607360f81b608482015260a40161094c565b610d228282611754565b5050565b600061087933846108dd85604051806060016040528060258152602001612530602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061171a565b6000610879338484611327565b6005546001600160a01b03163314610dac5760405162461bcd60e51b815260040161094c90612238565b6001600160a01b038116610dfc5760405162461bcd60e51b815260206004820152601760248201527663616e6e6f742073657420746f2030206164647265737360481b604482015260640161094c565b610e07816001610e64565b6008546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610e8e5760405162461bcd60e51b815260040161094c90612238565b6001600160a01b0382166000818152601f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610f175760405162461bcd60e51b815260040161094c90612238565b60005b82811015610f885781601f6000868685818110610f3957610f3961226d565b9050602002016020810190610f4e91906120db565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610f8081612299565b915050610f1a565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b35838383604051610fbc939291906122b2565b60405180910390a1505050565b6005546000906001600160a01b03163314610ff65760405162461bcd60e51b815260040161094c90612238565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611043573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611067919061230b565b9392505050565b6005546000906001600160a01b0316331461109b5760405162461bcd60e51b815260040161094c90612238565b6110ad82670de0b6b3a7640000612328565b600e55506001919050565b6005546001600160a01b031633146110e25760405162461bcd60e51b815260040161094c90612238565b6001600160a01b0381166111475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161094c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000806111b0838561233f565b9050838110156110675760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161094c565b6001600160a01b0383166112645760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161094c565b6001600160a01b0382166112c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161094c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661134d5760405162461bcd60e51b815260040161094c90612352565b6001600160a01b0382166113735760405162461bcd60e51b815260040161094c90612397565b8060000361138c57611387838360006117a7565b505050565b30600090815260208190526040902054600e54811080159081906113b25750600f5460ff165b80156113c85750600754600160a01b900460ff16155b80156113ec57506001600160a01b038516600090815260208052604090205460ff16155b801561141157506001600160a01b0385166000908152601f602052604090205460ff16155b801561143657506001600160a01b0384166000908152601f602052604090205460ff16155b15611464576007805460ff60a01b1916600160a01b1790556114566118b0565b6007805460ff60a01b191690555b6007546001600160a01b0386166000908152601f602052604090205460ff600160a01b9092048216159116806114b257506001600160a01b0385166000908152601f602052604090205460ff165b156114bb575060005b60008115611706576001600160a01b038616600090815260208052604090205460ff1680156114ec57506000601154115b156115db5761151260105461150c60115488611bfd90919063ffffffff16565b90611c7f565b9050601154601254826115259190612328565b61152f91906123da565b601b6000828254611540919061233f565b90915550506011546013546115559083612328565b61155f91906123da565b601c6000828254611570919061233f565b90915550506011546014546115859083612328565b61158f91906123da565b601d60008282546115a0919061233f565b90915550506011546015546115b59083612328565b6115bf91906123da565b601e60008282546115d0919061233f565b909155506116e89050565b6001600160a01b038716600090815260208052604090205460ff16801561160457506000601654115b156116e85761162460105461150c60165488611bfd90919063ffffffff16565b9050601654601754826116379190612328565b61164191906123da565b601b6000828254611652919061233f565b90915550506016546018546116679083612328565b61167191906123da565b601c6000828254611682919061233f565b90915550506016546019546116979083612328565b6116a191906123da565b601d60008282546116b2919061233f565b9091555050601654601a546116c79083612328565b6116d191906123da565b601e60008282546116e2919061233f565b90915550505b80156116f9576116f98730836117a7565b61170381866123fc565b94505b6117118787876117a7565b50505050505050565b6000818484111561173e5760405162461bcd60e51b815260040161094c9190611fdf565b50600061174b84866123fc565b95945050505050565b6001600160a01b0382166000818152602080526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166117cd5760405162461bcd60e51b815260040161094c90612352565b6001600160a01b0382166117f35760405162461bcd60e51b815260040161094c90612397565b611830816040518060600160405280602681526020016124e2602691396001600160a01b038616600090815260208190526040902054919061171a565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461185f90826111a3565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161131a565b3060009081526020819052604081205490506000601e54601d54601c54601b546118da919061233f565b6118e4919061233f565b6118ee919061233f565b90508115806118fb575080155b15611904575050565b60004761191084611cc1565b600061191c4783611e1b565b905060006119398561150c601b5485611bfd90919063ffffffff16565b905060006119568661150c601c5486611bfd90919063ffffffff16565b905060006119738761150c601d5487611bfd90919063ffffffff16565b905060006119908861150c601e5488611bfd90919063ffffffff16565b600980546040516810dbdb9d995c9d195960ba1b81529293506001600160a01b03169185910160006040518083038185875af1925050503d80600081146119f3576040519150601f19603f3d011682016040523d82523d6000602084013e6119f8565b606091505b5050600a546040516810dbdb9d995c9d195960ba1b81529198506001600160a01b031690839060090160006040518083038185875af1925050503d8060008114611a5e576040519150601f19603f3d011682016040523d82523d6000602084013e611a63565b606091505b5050600b546040516810dbdb9d995c9d195960ba1b81529198506001600160a01b031690829060090160006040518083038185875af1925050503d8060008114611ac9576040519150601f19603f3d011682016040523d82523d6000602084013e611ace565b606091505b5050600d5490975060ff1615611b8657600854600c546001600160a01b0390911690606490611afd9087612328565b611b0791906123da565b6040517f4175746f6d61746564204275794261636b20636f6d706c6574656400000000008152601b0160006040518083038185875af1925050503d8060008114611b6d576040519150601f19603f3d011682016040523d82523d6000602084013e611b72565b606091505b505080975050611b8147611e5d565b611bf2565b600854604051665375636365737360c81b81526001600160a01b0390911690479060070160006040518083038185875af1925050503d8060008114611be7576040519150601f19603f3d011682016040523d82523d6000602084013e611bec565b606091505b50909750505b505050505050505050565b600082600003611c0f5750600061087d565b6000611c1b8385612328565b905082611c2885836123da565b146110675760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161094c565b600061106783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fb1565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611cf657611cf661226d565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d73919061240f565b81600181518110611d8657611d8661226d565b6001600160a01b039283166020918202929092010152600654611dac9130911684611202565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611de5908590600090869030904290600401612470565b600060405180830381600087803b158015611dff57600080fd5b505af1158015611e13573d6000803e3d6000fd5b505050505050565b600061106783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061171a565b8015610b6c576040805160028082526060820183526000926020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef1919061240f565b81600081518110611f0457611f0461226d565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611f3857611f3861226d565b6001600160a01b03928316602091820292909201015260065460085460405163b6f9de9560e01b81529183169263b6f9de95928692611f849260009288929091169042906004016124ac565b6000604051808303818588803b158015611f9d57600080fd5b505af1158015611711573d6000803e3d6000fd5b60008183611fd25760405162461bcd60e51b815260040161094c9190611fdf565b50600061174b84866123da565b600060208083528351808285015260005b8181101561200c57858101830151858201604001528201611ff0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b6c57600080fd5b6000806040838503121561205557600080fd5b82356120608161202d565b946020939093013593505050565b60008060006060848603121561208357600080fd5b833561208e8161202d565b9250602084013561209e8161202d565b929592945050506040919091013590565b8015158114610b6c57600080fd5b600080604083850312156120d057600080fd5b8235612060816120af565b6000602082840312156120ed57600080fd5b81356110678161202d565b6000806040838503121561210b57600080fd5b82356121168161202d565b91506020830135612126816120af565b809150509250929050565b60008060006040848603121561214657600080fd5b833567ffffffffffffffff8082111561215e57600080fd5b818601915086601f83011261217257600080fd5b81358181111561218157600080fd5b8760208260051b850101111561219657600080fd5b602092830195509350508401356121ac816120af565b809150509250925092565b6000602082840312156121c957600080fd5b5035919050565b600080604083850312156121e357600080fd5b82356121ee8161202d565b915060208301356121268161202d565b600181811c9082168061221257607f821691505b60208210810361223257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016122ab576122ab612283565b5060010190565b6040808252810183905260008460608301825b868110156122f55782356122d88161202d565b6001600160a01b03168252602092830192909101906001016122c5565b5080925050508215156020830152949350505050565b60006020828403121561231d57600080fd5b8151611067816120af565b808202811582820484141761087d5761087d612283565b8082018082111561087d5761087d612283565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826123f757634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561087d5761087d612283565b60006020828403121561242157600080fd5b81516110678161202d565b600081518084526020808501945080840160005b838110156124655781516001600160a01b031687529582019590820190600101612440565b509495945050505050565b85815284602082015260a06040820152600061248f60a083018661242c565b6001600160a01b0394909416606083015250608001529392505050565b8481526080602082015260006124c5608083018661242c565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205c80bc1f2a972eec5ffbdb1f54fa4c1baa79e21ee1d97f355409ece4a7febce664736f6c63430008110033
Deployed Bytecode Sourcemap
15736:13146:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4929:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5843:169;;;;;;;;;;-1:-1:-1;5843:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5843:169:0;1023:187:1;5250:108:0;;;;;;;;;;-1:-1:-1;5338:12:0;;5250:108;;;1361:25:1;;;1349:2;1334:18;5250:108:0;1215:177:1;16434:31:0;;;;;;;;;;;;;;;;6020:355;;;;;;;;;;-1:-1:-1;6020:355:0;;;;;:::i;:::-;;:::i;15810:41::-;;;;;;;;;;-1:-1:-1;15810:41:0;;;;-1:-1:-1;;;;;15810:41:0;;;;;;-1:-1:-1;;;;;2049:32:1;;;2031:51;;2019:2;2004:18;15810:41:0;1858:230:1;5149:93:0;;;;;;;;;;-1:-1:-1;5149:93:0;;5232:2;2235:36:1;;2223:2;2208:18;5149:93:0;2093:184:1;6383:218:0;;;;;;;;;;-1:-1:-1;6383:218:0;;;;;:::i;:::-;;:::i;28600:279::-;;;;;;;;;;-1:-1:-1;28600:279:0;;;;;:::i;:::-;;:::i;:::-;;16619:30;;;;;;;;;;;;;;;;22386:125;;;;;;;;;;-1:-1:-1;22386:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;22475:28:0;22451:4;22475:28;;;:19;:28;;;;;;;;;22386:125;16395:32;;;;;;;;;;;;;;;;16121:33;;;;;;;;;;-1:-1:-1;16121:33:0;;;;;;;;16508:30;;;;;;;;;;;;;;;;16205;;;;;;;;;;-1:-1:-1;16205:30:0;;;;;;;;5366:127;;;;;;;;;;-1:-1:-1;5366:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5467:18:0;5440:7;5467:18;;;;;;;;;;;;5366:127;10395:150;;;;;;;;;;;;;:::i;15923:30::-;;;;;;;;;;-1:-1:-1;15923:30:0;;;;-1:-1:-1;;;;;15923:30:0;;;27895:298;;;;;;;;;;;;;:::i;15858:28::-;;;;;;;;;;-1:-1:-1;15858:28:0;;;;-1:-1:-1;;;;;15858:28:0;;;10181:79;;;;;;;;;;-1:-1:-1;10246:6:0;;-1:-1:-1;;;;;10246:6:0;10181:79;;22088:290;;;;;;;;;;-1:-1:-1;22088:290:0;;;;;:::i;:::-;;:::i;5037:104::-;;;;;;;;;;;;;:::i;16075:39::-;;;;;;;;;;;;;;;;16244:32;;;;;;;;;;;;;;;;21178:250;;;;;;;;;;-1:-1:-1;21178:250:0;;;;;:::i;:::-;;:::i;6609:269::-;;;;;;;;;;-1:-1:-1;6609:269:0;;;;;:::i;:::-;;:::i;5501:175::-;;;;;;;;;;-1:-1:-1;5501:175:0;;;;;:::i;:::-;;:::i;21690:339::-;;;;;;;;;;-1:-1:-1;21690:339:0;;;;;:::i;:::-;;:::i;16886:58::-;;;;;;;;;;-1:-1:-1;16886:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16474:27;;;;;;;;;;;;;;;;20610:184;;;;;;;;;;-1:-1:-1;20610:184:0;;;;;:::i;:::-;;:::i;20864:306::-;;;;;;;;;;-1:-1:-1;20864:306:0;;;;;:::i;:::-;;:::i;28286:177::-;;;;;;;;;;-1:-1:-1;28286:177:0;;;;;:::i;:::-;;:::i;16545:29::-;;;;;;;;;;;;;;;;16285:28;;;;;;;;;;;;;;;;20372:174;;;;;;;;;;-1:-1:-1;20372:174:0;;;;;:::i;:::-;;:::i;16358:30::-;;;;;;;;;;;;;;;;5684:151;;;;;;;;;;-1:-1:-1;5684:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;5800:18:0;;;5773:7;5800:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5684:151;16163:33;;;;;;;;;;;;;;;;16581:31;;;;;;;;;;;;;;;;16320;;;;;;;;;;;;;;;;10555:244;;;;;;;;;;-1:-1:-1;10555:244:0;;;;;:::i;:::-;;:::i;15960:29::-;;;;;;;;;;-1:-1:-1;15960:29:0;;;;-1:-1:-1;;;;;15960:29:0;;;4929:100;4983:13;5016:5;5009:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4929:100;:::o;5843:169::-;5926:4;5943:39;446:10;5966:7;5975:6;5943:8;:39::i;:::-;-1:-1:-1;6000:4:0;5843:169;;;;;:::o;6020:355::-;6160:4;6177:36;6187:6;6195:9;6206:6;6177:9;:36::i;:::-;6224:121;6233:6;446:10;6255:89;6293:6;6255:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6255:19:0;;;;;;:11;:19;;;;;;;;446:10;6255:33;;;;;;;;;;:37;:89::i;:::-;6224:8;:121::i;:::-;-1:-1:-1;6363:4:0;6020:355;;;;;:::o;6383:218::-;446:10;6471:4;6520:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6520:34:0;;;;;;;;;;6471:4;;6488:83;;6511:7;;6520:50;;6559:10;6520:38;:50::i;28600:279::-;10308:6;;-1:-1:-1;;;;;10308:6:0;446:10;10308:22;10300:67;;;;-1:-1:-1;;;10300:67:0;;;;;;;:::i;:::-;;;;;;;;;28745:3:::1;28721:20;:27;;28713:62;;;::::0;-1:-1:-1;;;28713:62:0;;5847:2:1;28713:62:0::1;::::0;::::1;5829:21:1::0;5886:2;5866:18;;;5859:30;-1:-1:-1;;;5905:18:1;;;5898:52;5967:18;;28713:62:0::1;5645:346:1::0;28713:62:0::1;28786:19;:42:::0;28839:14:::1;:32:::0;;-1:-1:-1;;28839:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;28600:279::o;10395:150::-;10308:6;;-1:-1:-1;;;;;10308:6:0;446:10;10308:22;10300:67;;;;-1:-1:-1;;;10300:67:0;;;;;;;:::i;:::-;10488:6:::1;::::0;10467:40:::1;::::0;10504:1:::1;::::0;-1:-1:-1;;;;;10488:6:0::1;::::0;10467:40:::1;::::0;10504:1;;10467:40:::1;10518:6;:19:::0;;-1:-1:-1;;;;;;10518:19:0::1;::::0;;10395:150::o;27895:298::-;10308:6;;-1:-1:-1;;;;;10308:6:0;446:10;10308:22;10300:67;;;;-1:-1:-1;;;10300:67:0;;;;;;;:::i;:::-;27970:107:::1;::::0;6209:34:1;6197:47;;-1:-1:-1;;;6269:2:1;6260:12;;6253:41;27953:12:0::1;::::0;27978:10:::1;::::0;28002:21:::1;::::0;6319:2:1;6310:12;27970:107:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27952:125;;;28096:7;28088:97;;;::::0;-1:-1:-1;;;28088:97:0;;6535:2:1;28088:97:0::1;::::0;::::1;6517:21:1::0;6574:2;6554:18;;;6547:30;6613:34;6593:18;;;6586:62;6684:34;6664:18;;;6657:62;-1:-1:-1;;;6735:19:1;;;6728:44;6789:19;;28088:97:0::1;6333:481:1::0;28088:97:0::1;27941:252;27895:298::o:0;22088:290::-;10308:6;;-1:-1:-1;;;;;10308:6:0;446:10;10308:22;10300:67;;;;-1:-1:-1;;;10300:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22175:23:0;::::1;22167:59;;;::::0;-1:-1:-1;;;22167:59:0;;7021:2:1;22167:59:0::1;::::0;::::1;7003:21:1::0;7060:2;7040:18;;;7033:30;-1:-1:-1;;;7079:18:1;;;7072:53;7142:18;;22167:59:0::1;6819:347:1::0;22167:59:0::1;22237:32;22253:9;22264:4;22237:15;:32::i;:::-;22318:14;::::0;22285:48:::1;::::0;-1:-1:-1;;;;;22318:14:0;;::::1;::::0;22285:48;::::1;::::0;::::1;::::0;22318:14:::1;::::0;22285:48:::1;22344:14;:26:::0;;-1:-1:-1;;;;;;22344:26:0::1;-1:-1:-1::0;;;;;22344:26:0;;;::::1;::::0;;;::::1;::::0;;22088:290::o;5037:104::-;5093:13;5126:7;5119:14;;;;;:::i;21178:250::-;10308:6;;-1:-1:-1;;;;;10308:6:0;446:10;10308:22;10300:67;;;;-1:-1:-1;;;10300:67:0;;;;;;;:::i;:::-;21285:13:::1;::::0;-1:-1:-1;;;;;21285:13:0;;::::1;21277:21:::0;;::::1;::::0;21269:99:::1;;;::::0;-1:-1:-1;;;21269:99:0;;7373:2:1;21269:99:0::1;::::0;::::1;7355:21:1::0;7412:2;7392:18;;;7385:30;7451:34;7431:18;;;7424:62;7522:34;7502:18;;;7495:62;-1:-1:-1;;;7573:19:1;;;7566:32;7615:19;;21269:99:0::1;7171:469:1::0;21269:99:0::1;21379:41;21408:4;21414:5;21379:28;:41::i;:::-;21178:250:::0;;:::o;6609:269::-;6702:4;6719:129;446:10;6742:7;6751:96;6790:15;6751:96;;;;;;;;;;;;;;;;;446:10;6751:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6751:34:0;;;;;;;;;;;;:38;:96::i;5501:175::-;5587:4;5604:42;446:10;5628:9;5639:6;5604:9;:42::i;21690:339::-;10308:6;;-1:-1:-1;;;;;10308:6:0;446:10;10308:22;10300:67;;;;-1:-1:-1;;;10300:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21787:32:0;::::1;21779:68;;;::::0;-1:-1:-1;;;21779:68:0;;7021:2:1;21779:68:0::1;::::0;::::1;7003:21:1::0;7060:2;7040:18;;;7033:30;-1:-1:-1;;;7079:18:1;;;7072:53;7142:18;;21779:68:0::1;6819:347:1::0;21779:68:0::1;21858:41;21874:18;21894:4;21858:15;:41::i;:::-;21958:15;::::0;21915:59:::1;::::0;-1:-1:-1;;;;;21958:15:0;;::::1;::::0;21915:59;::::1;::::0;::::1;::::0;21958:15:::1;::::0;21915:59:::1;21985:15;:36:::0;;-1:-1:-1;;;;;;21985:36:0::1;-1:-1:-1::0;;;;;21985:36:0;;;::::1;::::0;;;::::1;::::0;;21690:339::o;20610:184::-;10308:6;;-1:-1:-1;;;;;10308:6:0;446:10;10308:22;10300:67;;;;-1:-1:-1;;;10300:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20695:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;20695:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20752:34;;1163:41:1;;;20752:34:0::1;::::0;1136:18:1;20752:34:0::1;;;;;;;20610:184:::0;;:::o;20864:306::-;10308:6;;-1:-1:-1;;;;;10308:6:0;446:10;10308:22;10300:67;;;;-1:-1:-1;;;10300:67:0;;;;;;;:::i;:::-;20983:9:::1;20979:115;20998:19:::0;;::::1;20979:115;;;21074:8;21039:19;:32;21059:8;;21068:1;21059:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21039:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;21039:32:0;:43;;-1:-1:-1;;21039:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21019:3;::::1;::::0;::::1;:::i;:::-;;;;20979:115;;;;21111:51;21143:8;;21153;21111:51;;;;;;;;:::i;:::-;;;;;;;;20864:306:::0;;;:::o;28286:177::-;10308:6;;28380:12;;-1:-1:-1;;;;;10308:6:0;446:10;10308:22;10300:67;;;;-1:-1:-1;;;10300:67:0;;;;;;;:::i;:::-;28407:48:::1;::::0;-1:-1:-1;;;28407:48:0;;28436:10:::1;28407:48;::::0;::::1;9022:51:1::0;9089:18;;;9082:34;;;-1:-1:-1;;;;;28407:28:0;::::1;::::0;::::1;::::0;8995:18:1;;28407:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28400:55:::0;28286:177;-1:-1:-1;;;28286:177:0:o;20372:174::-;10308:6;;20453:4;;-1:-1:-1;;;;;10308:6:0;446:10;10308:22;10300:67;;;;-1:-1:-1;;;10300:67:0;;;;;;;:::i;:::-;20492:20:::1;:9:::0;20505:6:::1;20492:20;:::i;:::-;20471:18;:41:::0;-1:-1:-1;20532:4:0::1;20372:174:::0;;;:::o;10555:244::-;10308:6;;-1:-1:-1;;;;;10308:6:0;446:10;10308:22;10300:67;;;;-1:-1:-1;;;10300:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10644:22:0;::::1;10636:73;;;::::0;-1:-1:-1;;;10636:73:0;;9752:2:1;10636: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;;10636:73:0::1;9550:402:1::0;10636:73:0::1;10746:6;::::0;10725:38:::1;::::0;-1:-1:-1;;;;;10725:38:0;;::::1;::::0;10746:6:::1;::::0;10725:38:::1;::::0;10746:6:::1;::::0;10725:38:::1;10774:6;:17:::0;;-1:-1:-1;;;;;;10774:17:0::1;-1:-1:-1::0;;;;;10774:17:0;;;::::1;::::0;;;::::1;::::0;;10555:244::o;8414:181::-;8472:7;;8504:5;8508:1;8504;:5;:::i;:::-;8492:17;;8533:1;8528;:6;;8520:46;;;;-1:-1:-1;;;8520:46:0;;10289:2:1;8520:46:0;;;10271:21:1;10328:2;10308:18;;;10301:30;10367:29;10347:18;;;10340:57;10414:18;;8520:46:0;10087:351:1;7868:380:0;-1:-1:-1;;;;;8004:19:0;;7996:68;;;;-1:-1:-1;;;7996:68:0;;10645:2:1;7996: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;;7996:68:0;10443:400:1;7996:68:0;-1:-1:-1;;;;;8083:21:0;;8075:68;;;;-1:-1:-1;;;8075:68:0;;11050:2:1;8075: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;;8075:68:0;10848:398:1;8075:68:0;-1:-1:-1;;;;;8156:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8208:32;;1361:25:1;;;8208:32:0;;1334:18:1;8208:32:0;;;;;;;;7868:380;;;:::o;22519:2204::-;-1:-1:-1;;;;;22651:18:0;;22643:68;;;;-1:-1:-1;;;22643:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22730:16:0;;22722:64;;;;-1:-1:-1;;;22722:64:0;;;;;;;:::i;:::-;22803:6;22813:1;22803:11;22800:92;;22831:28;22847:4;22853:2;22857:1;22831:15;:28::i;:::-;22519:2204;;;:::o;22800:92::-;22953:4;22904:28;5467:18;;;;;;;;;;;23011;;22987:42;;;;;;;23059:35;;-1:-1:-1;23083:11:0;;;;23059:35;:61;;;;-1:-1:-1;23112:8:0;;-1:-1:-1;;;23112:8:0;;;;23111:9;23059:61;:110;;;;-1:-1:-1;;;;;;23138:31:0;;;;;;:25;:31;;;;;;;;23137:32;23059:110;:153;;;;-1:-1:-1;;;;;;23187:25:0;;;;;;:19;:25;;;;;;;;23186:26;23059:153;:194;;;;-1:-1:-1;;;;;;23230:23:0;;;;;;:19;:23;;;;;;;;23229:24;23059:194;23042:321;;;23280:8;:15;;-1:-1:-1;;;;23280:15:0;-1:-1:-1;;;23280:15:0;;;23310:10;:8;:10::i;:::-;23335:8;:16;;-1:-1:-1;;;;23335:16:0;;;23042:321;23391:8;;-1:-1:-1;;;;;23417:25:0;;23375:12;23417:25;;;:19;:25;;;;;;23391:8;-1:-1:-1;;;23391:8:0;;;;;23390:9;;23417:25;;:52;;-1:-1:-1;;;;;;23446:23:0;;;;;;:19;:23;;;;;;;;23417:52;23414:99;;;-1:-1:-1;23496:5:0;23414:99;23525:12;23559:7;23556:1112;;;-1:-1:-1;;;;;23588:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;23637:1;23621:13;;:17;23588:50;23584:935;;;23665:41;23695:10;;23665:25;23676:13;;23665:6;:10;;:25;;;;:::i;:::-;:29;;:41::i;:::-;23658:48;;23773:13;;23754:16;;23747:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;23725:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;23851:13:0;;23833:15;;23826:22;;:4;:22;:::i;:::-;:38;;;;:::i;:::-;23805:17;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;23933:13:0;;23913:17;;23906:24;;:4;:24;:::i;:::-;:40;;;;:::i;:::-;23883:19;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;24013:13:0;;23994:16;;23987:23;;:4;:23;:::i;:::-;:39;;;;:::i;:::-;23965:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;23584:935:0;;-1:-1:-1;23584:935:0;;-1:-1:-1;;;;;24066:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;24116:1;24101:12;;:16;24066:51;24063:456;;;24145:40;24174:10;;24145:24;24156:12;;24145:6;:10;;:24;;;;:::i;:40::-;24138:47;;24251:12;;24233:15;;24226:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;24204:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;24327:12:0;;24310:14;;24303:21;;:4;:21;:::i;:::-;:36;;;;:::i;:::-;24282:17;;:57;;;;;;;:::i;:::-;;;;-1:-1:-1;;24407:12:0;;24388:16;;24381:23;;:4;:23;:::i;:::-;:38;;;;:::i;:::-;24358:19;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;24485:12:0;;24467:15;;24460:22;;:4;:22;:::i;:::-;:37;;;;:::i;:::-;24438:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;24063:456:0;24540:8;;24537:89;;24568:42;24584:4;24598;24605;24568:15;:42::i;:::-;24642:14;24652:4;24642:14;;:::i;:::-;;;23556:1112;24680:33;24696:4;24702:2;24706:6;24680:15;:33::i;:::-;22632:2091;;;;22519:2204;;;:::o;8749:192::-;8835:7;8871:12;8863:6;;;;8855:29;;;;-1:-1:-1;;;8855:29:0;;;;;;;;:::i;:::-;-1:-1:-1;8895:9:0;8907:5;8911:1;8907;:5;:::i;:::-;8895:17;8749:192;-1:-1:-1;;;;;8749:192:0:o;21436:186::-;-1:-1:-1;;;;;21519:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;21519:39:0;;;;;;;;;;21574:40;;21519:39;;:31;21574:40;;;21436:186;;:::o;6886:573::-;-1:-1:-1;;;;;7026:20:0;;7018:70;;;;-1:-1:-1;;;7018:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7107:23:0;;7099:71;;;;-1:-1:-1;;;7099:71:0;;;;;;;:::i;:::-;7263;7285:6;7263:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7263:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;7243:17:0;;;:9;:17;;;;;;;;;;;:91;;;;7368:20;;;;;;;:32;;7393:6;7368:24;:32::i;:::-;-1:-1:-1;;;;;7345:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;7416:35;1361:25:1;;;7345:20:0;;7416:35;;;;;;1334:18:1;7416:35:0;1215:177:1;26201:1504:0;26284:4;26240:23;5467:18;;;;;;;;;;;26240:50;;26301:25;26392:18;;26370:19;;26350:17;;26329:18;;:38;;;;:::i;:::-;:60;;;;:::i;:::-;:81;;;;:::i;:::-;26301:109;-1:-1:-1;26426:20:0;;;:46;;-1:-1:-1;26450:22:0;;26426:46;26423:60;;;26475:7;;26201:1504::o;26423:60::-;26495:12;26548:21;26582:33;26599:15;26582:16;:33::i;:::-;26628:18;26649:44;:21;26675:17;26649:25;:44::i;:::-;26628:65;;26706:23;26732:57;26771:17;26732:34;26747:18;;26732:10;:14;;:34;;;;:::i;:57::-;26706:83;;26800:22;26824:56;26862:17;26824:33;26839:17;;26824:10;:14;;:33;;;;:::i;:56::-;26800:80;;26891:24;26917:58;26957:17;26917:35;26932:19;;26917:10;:14;;:35;;;;:::i;:58::-;26891:84;;26986:23;27011:57;27050:17;27011:34;27026:18;;27011:10;:14;;:34;;;;:::i;:57::-;27102:14;;;27094:64;;-1:-1:-1;;;12617:24:1;;26986:82:0;;-1:-1:-1;;;;;;27102:14:0;;27130;;12657:11:1;27094:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27190:16:0;;27182:68;;-1:-1:-1;;;12617:24:1;;27081:77:0;;-1:-1:-1;;;;;;27190:16:0;;27220;;12666:1:1;12657:11;27182:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27282:15:0;;27274:66;;-1:-1:-1;;;12617:24:1;;27169:81:0;;-1:-1:-1;;;;;;27282:15:0;;27311;;12666:1:1;12657:11;27274:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27356:14:0;;27261:79;;-1:-1:-1;27356:14:0;;27353:345;;;27407:15;;27454:19;;-1:-1:-1;;;;;27407:15:0;;;;27476:3;;27436:37;;:15;:37;:::i;:::-;:43;;;;:::i;:::-;27399:112;;12892:29:1;12880:42;;12947:2;12938:12;27399:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27386:125;;;;;27526:44;27548:21;27526;:44::i;:::-;27353:345;;;27624:15;;27616:70;;-1:-1:-1;;;13162:22:1;;-1:-1:-1;;;;;27624:15:0;;;;27653:21;;13209:1:1;13200:11;27616:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27603:83:0;;-1:-1:-1;;27353:345:0;26229:1476;;;;;;;;;26201:1504::o;8951:252::-;9009:7;9035:1;9040;9035:6;9031:47;;-1:-1:-1;9065:1:0;9058:8;;9031:47;9090:9;9102:5;9106:1;9102;:5;:::i;:::-;9090:17;-1:-1:-1;9135:1:0;9126:5;9130:1;9090:17;9126:5;:::i;:::-;:10;9118:56;;;;-1:-1:-1;;;9118:56:0;;13424:2:1;9118:56:0;;;13406:21:1;13463:2;13443:18;;;13436:30;13502:34;13482:18;;;13475:62;-1:-1:-1;;;13553:18:1;;;13546:31;13594:19;;9118:56:0;13222:397:1;9211:132:0;9269:7;9296:39;9300:1;9303;9296:39;;;;;;;;;;;;;;;;;:3;:39::i;25220:479::-;25312:16;;;25326:1;25312:16;;;;;;;;25288:21;;25312:16;;;;;;;;;;-1:-1:-1;25312:16:0;25288:40;;25357:4;25339;25344:1;25339:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25339:23:0;;;:7;;;;;;;;;;:23;;;;25383:15;;:22;;;-1:-1:-1;;;25383:22:0;;;;:15;;;;;:20;;:22;;;;;25339:7;;25383:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25373:4;25378:1;25373:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25373:32:0;;;:7;;;;;;;;;:32;25450:15;;25418:62;;25435:4;;25450:15;25468:11;25418:8;:62::i;:::-;25493:15;;:196;;-1:-1:-1;;;25493:196:0;;-1:-1:-1;;;;;25493:15:0;;;;:66;;:196;;25574:11;;25493:15;;25616:4;;25643;;25663:15;;25493:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25275:424;25220:479;:::o;8605:136::-;8663:7;8690:43;8694:1;8697;8690:43;;;;;;;;;;;;;;;;;:3;:43::i;24731:481::-;24803:13;;24800:405;;24856:16;;;24870:1;24856:16;;;;;;;;24832:21;;24856:16;;;;;;;;-1:-1:-1;;24897:15:0;;:22;;;-1:-1:-1;;;24897:22:0;;;;24832:40;;-1:-1:-1;;;;;;24897:15:0;;;;:20;;-1:-1:-1;24897:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24887:4;24892:1;24887:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;24887:32:0;;;-1:-1:-1;;;;;24887:32:0;;;;;24952:4;24934;24939:1;24934:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24934:23:0;;;:7;;;;;;;;;:23;24974:15;;25128;;24974:219;;-1:-1:-1;;;24974:219:0;;:15;;;;:66;;25048:9;;24974:219;;:15;;25097:4;;25128:15;;;;25163;;24974:219;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9351:191;9437:7;9472:12;9465:5;9457:28;;;;-1:-1:-1;;;9457:28:0;;;;;;;;:::i;:::-;-1:-1:-1;9496:9:0;9508:5;9512:1;9508;: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:118::-;2368:5;2361:13;2354:21;2347:5;2344:32;2334:60;;2390:1;2387;2380:12;2405:309;2470:6;2478;2531:2;2519:9;2510:7;2506:23;2502:32;2499:52;;;2547:1;2544;2537:12;2499:52;2586:9;2573:23;2605:28;2627:5;2605:28;:::i;2719:247::-;2778:6;2831:2;2819:9;2810:7;2806:23;2802:32;2799:52;;;2847:1;2844;2837:12;2799:52;2886:9;2873:23;2905:31;2930:5;2905:31;:::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;7645:127::-;7706:10;7701:3;7697:20;7694:1;7687:31;7737:4;7734:1;7727:15;7761:4;7758:1;7751:15;7777:127;7838:10;7833:3;7829:20;7826:1;7819:31;7869:4;7866:1;7859:15;7893:4;7890:1;7883:15;7909:135;7948:3;7969:17;;;7966:43;;7989:18;;:::i;:::-;-1:-1:-1;8036:1:1;8025:13;;7909:135::o;8049:794::-;8271:2;8283:21;;;8256:18;;8339:22;;;8223:4;8418:6;8392:2;8377:18;;8223:4;8452:304;8466:6;8463:1;8460:13;8452:304;;;8541:6;8528:20;8561:31;8586:5;8561:31;:::i;:::-;-1:-1:-1;;;;;8617:31:1;8605:44;;8672:4;8731:15;;;;8696:12;;;;8645:1;8481:9;8452:304;;;8456:3;8773;8765:11;;;;8828:6;8821:14;8814:22;8807:4;8796:9;8792:20;8785:52;8049:794;;;;;;:::o;9127:245::-;9194:6;9247:2;9235:9;9226:7;9222:23;9218:32;9215:52;;;9263:1;9260;9253:12;9215:52;9295:9;9289:16;9314:28;9336:5;9314:28;:::i;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;12061:217::-;12101:1;12127;12117:132;;12171:10;12166:3;12162:20;12159:1;12152:31;12206:4;12203:1;12196:15;12234:4;12231:1;12224:15;12117:132;-1:-1:-1;12263:9:1;;12061:217::o;12283:128::-;12350:9;;;12371:11;;;12368:37;;;12385:18;;:::i;13756:251::-;13826:6;13879:2;13867:9;13858:7;13854:23;13850:32;13847:52;;;13895:1;13892;13885:12;13847:52;13927:9;13921:16;13946:31;13971:5;13946:31;:::i;14012:461::-;14065:3;14103:5;14097:12;14130:6;14125:3;14118:19;14156:4;14185:2;14180:3;14176:12;14169:19;;14222:2;14215:5;14211:14;14243:1;14253:195;14267:6;14264:1;14261:13;14253:195;;;14332:13;;-1:-1:-1;;;;;14328:39:1;14316:52;;14388:12;;;;14423:15;;;;14364:1;14282:9;14253:195;;;-1:-1:-1;14464:3:1;;14012:461;-1:-1:-1;;;;;14012:461:1:o;14478:582::-;14777:6;14766:9;14759:25;14820:6;14815:2;14804:9;14800:18;14793:34;14863:3;14858:2;14847:9;14843:18;14836:31;14740:4;14884:57;14936:3;14925:9;14921:19;14913:6;14884:57;:::i;:::-;-1:-1:-1;;;;;14977:32:1;;;;14972:2;14957:18;;14950:60;-1:-1:-1;15041:3:1;15026:19;15019:35;14876:65;14478:582;-1:-1:-1;;;14478:582:1:o;15065:510::-;15336:6;15325:9;15318:25;15379:3;15374:2;15363:9;15359:18;15352:31;15299:4;15400:57;15452:3;15441:9;15437:19;15429:6;15400:57;:::i;:::-;-1:-1:-1;;;;;15493:32:1;;;;15488:2;15473:18;;15466:60;-1:-1:-1;15557:2:1;15542:18;15535:34;15392:65;15065:510;-1:-1:-1;;15065:510:1:o
Swarm Source
ipfs://5c80bc1f2a972eec5ffbdb1f54fa4c1baa79e21ee1d97f355409ece4a7febce6
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.