ERC-20
Overview
Max Total Supply
10,000,000,000 DOLPHIN
Holders
289
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
137.5 DOLPHINValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DOLPHIN
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-01-15 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 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; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue( address target, bytes memory data, uint256 weiValue, string memory errorMessage ) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: weiValue}( data ); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; 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 waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0xdead)); _owner = address(0xdead); } 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, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract DOLPHIN is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "DOLPHIN"; string private _symbol = "DOLPHIN"; uint8 private _decimals = 9; address payable public marketingWalletAddress = payable(0xdcE7D1758D915B4548c5f30767afd57aAC76f912); address payable public teamWalletAddress = payable(0xdcE7D1758D915B4548c5f30767afd57aAC76f912); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isExcludedFromFee; mapping(address => bool) public _blackList; mapping(address => bool) public isMarketPair; bool public isLaunch = false; uint256 public _buyLiquidityFee = 0; uint256 public _buyMarketingFee = 2; uint256 public _buyTeamFee = 0; uint256 public _sellLiquidityFee = 0; uint256 public _sellMarketingFee = 2; uint256 public _sellTeamFee = 0; uint256 private _liquidityShare = 0; uint256 private _marketingShare = 100; uint256 private _teamShare = 0; uint256 private _totalTaxIfBuying = 1; uint256 private _totalTaxIfSelling = 1; uint256 private _totalDistributionShares = 2; uint256 private _totalSupply = 10000000000 * 10**_decimals; uint256 private minimumTokensBeforeSwap = 10000000 * 5**_decimals; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; 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 ); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair( address(this), _uniswapV2Router.WETH() ); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add( _buyTeamFee ); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add( _sellTeamFee ); _totalDistributionShares = _liquidityShare.add(_marketingShare).add( _teamShare ); isMarketPair[address(uniswapPair)] = true; _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 minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } 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 setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner { minimumTokensBeforeSwap = newLimit; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns (address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( newRouterAddress ); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair( address(this), _uniswapV2Router.WETH() ); if (newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isMarketPair[address(uniswapPair)] = true; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} 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"); require(!_blackList[recipient] && !_blackList[sender], "black address"); if (!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]) { require(isLaunch, "Swap not open"); } if (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { 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 finalAmount; if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { finalAmount = amount; } else { finalAmount = takeFee(sender, recipient, amount); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } 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 tokensForLP = tAmount .mul(_liquidityShare) .div(_totalDistributionShares) .div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalBNBFee = _totalDistributionShares.sub( _liquidityShare.div(2) ); uint256 amountBNBLiquidity = amountReceived .mul(_liquidityShare) .div(totalBNBFee) .div(2); uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee); uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub( amountBNBTeam ); if (amountBNBMarketing > 0) transferToAddressETH(marketingWalletAddress, amountBNBMarketing); if (amountBNBTeam > 0) transferToAddressETH(teamWalletAddress, amountBNBTeam); if (amountBNBLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountBNBLiquidity); } 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 deadAddress, block.timestamp ); } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeAmount = 0; if (isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if (isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if (feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function setWList(address[] calldata addrs, bool status) external onlyOwner { for (uint256 i; i < addrs.length; ++i) { isExcludedFromFee[addrs[i]] = status; } } function setBList(address[] calldata addrs, bool status) external onlyOwner { for (uint256 i; i < addrs.length; ++i) { _blackList[addrs[i]] = status; } } function Launch() public onlyOwner { isLaunch = true; } function setBuyTaxes(uint256 _marketing, uint256 _liquidity, uint256 _team) external onlyOwner{ _buyLiquidityFee = _liquidity; _buyMarketingFee = _marketing; _buyTeamFee = _team; } function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _team) external onlyOwner{ _sellLiquidityFee = _liquidity; _sellMarketingFee = _marketing; _sellTeamFee = _team; } }
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":"Launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","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":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"getCirculatingSupply","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":[],"name":"isLaunch","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":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_team","type":"uint256"}],"name":"setBuyTaxes","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":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_team","type":"uint256"}],"name":"setSellTaxes","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":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setWList","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":"teamWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600760a0908152662227a6282424a760c91b60c052600390620000289082620005af565b506040805180820190915260078152662227a6282424a760c91b6020820152600490620000569082620005af565b506005805474dce7d1758d915b4548c5f30767afd57aac76f912096001600160a81b0319909116179055600680546001600160a01b03191673dce7d1758d915b4548c5f30767afd57aac76f91217905561dead608052600c805460ff191690555f600d8190556002600e819055600f8290556010829055601181905560128290556013829055606460145560159190915560016016819055601755601855620001026009600a62000788565b62000113906402540be4006200079f565b601955600580546200012b9160ff9091169062000788565b6200013a90629896806200079f565b601a55601c805461ffff60a81b1916600160a81b1790553480156200015d575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002199190620007b9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000265573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028b9190620007b9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002d6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002fc9190620007b9565b601c80546001600160a01b039283166001600160a01b031991821617909155601b80549284169290911682179055601954305f90815260086020908152604080832094835293905291822055600190600990620003605f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553081526009909252902080549091166001179055600f54600e54600d54620003c19291620003ba9190620004a3565b90620004a3565b601655601254601154601054620003df9291620003ba9190620004a3565b601755601554601454601354620003fd9291620003ba9190620004a3565b601855601c546001600160a01b03165f908152600b60205260408120805460ff1916600117905560195490600790620004333390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6019546040516200049491815260200190565b60405180910390a350620007f7565b5f80620004b18385620007e1565b905083811015620005085760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200053a57607f821691505b6020821081036200055957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005aa57805f5260205f20601f840160051c81016020851015620005865750805b601f840160051c820191505b81811015620005a7575f815560010162000592565b50505b505050565b81516001600160401b03811115620005cb57620005cb62000511565b620005e381620005dc845462000525565b846200055f565b602080601f83116001811462000619575f8415620006015750858301515b5f19600386901b1c1916600185901b17855562000673565b5f85815260208120601f198616915b82811015620006495788860151825594840194600190910190840162000628565b50858210156200066757878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620006cf57815f1904821115620006b357620006b36200067b565b80851615620006c157918102915b93841c939080029062000694565b509250929050565b5f82620006e7575060016200050b565b81620006f557505f6200050b565b81600181146200070e5760028114620007195762000739565b60019150506200050b565b60ff8411156200072d576200072d6200067b565b50506001821b6200050b565b5060208310610133831016604e8410600b84101617156200075e575081810a6200050b565b6200076a83836200068f565b805f19048211156200078057620007806200067b565b029392505050565b5f6200079860ff841683620006d7565b9392505050565b80820281158282048414176200050b576200050b6200067b565b5f60208284031215620007ca575f80fd5b81516001600160a01b038116811462000508575f80fd5b808201808211156200050b576200050b6200067b565b6080516122266200081e5f395f81816103b3015281816109990152611ce501526122265ff3fe608060405260043610610257575f3560e01c8063844d591c1161013f578063c5d24189116100b3578063d5e9452411610078578063d5e9452414610703578063da00097d14610722578063dc44b6a014610742578063dd62ed3e14610757578063f2fde38b1461079b578063f5d588f5146107ba575f80fd5b8063c5d2418914610681578063c816841b14610696578063c8607952146106b5578063cab03471146106ca578063d158272d146106df575f80fd5b8063a073d37f11610104578063a073d37f146105dc578063a457c2d7146105f0578063a5d69d1f1461060f578063a9059cbb1461062e578063c469b6dd1461064d578063c49b9a8014610662575f80fd5b8063844d591c1461056457806388790a68146105835780638da5cb5b14610598578063914eb66a146105b457806395d89b41146105c8575f80fd5b80632b112e49116101d65780634a74bb021161019b5780634a74bb02146104765780635342acb4146104965780635881f3ef146104c4578063595dec3c146104e357806370a08231146105115780637567429114610545575f80fd5b80632b112e49146103d5578063313ce567146103e9578063395093511461040a5780633b97084a146104295780633ecad27114610448575f80fd5b80631694505e1161021c5780631694505e1461032757806318160ddd146103465780631870517a1461036457806323b872dd1461038357806327c8f835146103a2575f80fd5b806302ac81681461026257806306fdde031461027857806308733214146102a2578063095ea7b3146102c15780631245e347146102f0575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b506102766107d3565b005b348015610283575f80fd5b5061028c610814565b6040516102999190611d94565b60405180910390f35b3480156102ad575f80fd5b506102766102bc366004611de0565b6108a4565b3480156102cc575f80fd5b506102e06102db366004611e20565b6108de565b6040519015158152602001610299565b3480156102fb575f80fd5b5060065461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b348015610332575f80fd5b50601b5461030f906001600160a01b031681565b348015610351575f80fd5b506019545b604051908152602001610299565b34801561036f575f80fd5b5061027661037e366004611de0565b6108f4565b34801561038e575f80fd5b506102e061039d366004611e4a565b61092e565b3480156103ad575f80fd5b5061030f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e0575f80fd5b50610356610997565b3480156103f4575f80fd5b5060055460405160ff9091168152602001610299565b348015610415575f80fd5b506102e0610424366004611e20565b6109e0565b348015610434575f80fd5b50610276610443366004611e88565b610a15565b348015610453575f80fd5b506102e0610462366004611e9f565b600b6020525f908152604090205460ff1681565b348015610481575f80fd5b50601c546102e090600160a81b900460ff1681565b3480156104a1575f80fd5b506102e06104b0366004611e9f565b60096020525f908152604090205460ff1681565b3480156104cf575f80fd5b5061030f6104de366004611e9f565b610a43565b3480156104ee575f80fd5b506102e06104fd366004611e9f565b600a6020525f908152604090205460ff1681565b34801561051c575f80fd5b5061035661052b366004611e9f565b6001600160a01b03165f9081526007602052604090205490565b348015610550575f80fd5b5061027661055f366004611ece565b610d4d565b34801561056f575f80fd5b5061027661057e366004611f4b565b610de0565b34801561058e575f80fd5b5061035660105481565b3480156105a3575f80fd5b505f546001600160a01b031661030f565b3480156105bf575f80fd5b50610276610e33565b3480156105d3575f80fd5b5061028c610eaa565b3480156105e7575f80fd5b50601a54610356565b3480156105fb575f80fd5b506102e061060a366004611e20565b610eb9565b34801561061a575f80fd5b50610276610629366004611f7e565b610f06565b348015610639575f80fd5b506102e0610648366004611e20565b610f4d565b348015610658575f80fd5b50610356600f5481565b34801561066d575f80fd5b5061027661067c366004611f7e565b610f59565b34801561068c575f80fd5b50610356600e5481565b3480156106a1575f80fd5b50601c5461030f906001600160a01b031681565b3480156106c0575f80fd5b5061035660115481565b3480156106d5575f80fd5b5061035660125481565b3480156106ea575f80fd5b5060055461030f9061010090046001600160a01b031681565b34801561070e575f80fd5b5061027661071d366004611ece565b610fda565b34801561072d575f80fd5b50601c546102e090600160b01b900460ff1681565b34801561074d575f80fd5b50610356600d5481565b348015610762575f80fd5b50610356610771366004611f97565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b3480156107a6575f80fd5b506102766107b5366004611e9f565b611067565b3480156107c5575f80fd5b50600c546102e09060ff1681565b5f546001600160a01b031633146108055760405162461bcd60e51b81526004016107fc90611fce565b60405180910390fd5b600c805460ff19166001179055565b60606003805461082390612003565b80601f016020809104026020016040519081016040528092919081815260200182805461084f90612003565b801561089a5780601f106108715761010080835404028352916020019161089a565b820191905f5260205f20905b81548152906001019060200180831161087d57829003601f168201915b5050505050905090565b5f546001600160a01b031633146108cd5760405162461bcd60e51b81526004016107fc90611fce565b601091909155601191909155601255565b5f6108ea33848461114e565b5060015b92915050565b5f546001600160a01b0316331461091d5760405162461bcd60e51b81526004016107fc90611fce565b600d91909155600e91909155600f55565b5f61093a848484611271565b5061098c8433610987856040518060600160405280602881526020016121a4602891396001600160a01b038a165f908152600860209081526040808320338452909152902054919061162a565b61114e565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165f908152600760205260408120546019546109db91611662565b905090565b335f8181526008602090815260408083206001600160a01b038716845290915281205490916108ea91859061098790866116a3565b5f546001600160a01b03163314610a3e5760405162461bcd60e51b81526004016107fc90611fce565b601a55565b5f80546001600160a01b03163314610a6d5760405162461bcd60e51b81526004016107fc90611fce565b5f829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad1919061203b565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b40919061203b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610b89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bad919061203b565b91506001600160a01b038216610cfd57806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1d919061203b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8c919061203b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610cd6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfa919061203b565b91505b601c80546001600160a01b038085166001600160a01b03199283168117909355601b80549490911693909116929092179091555f908152600b60205260409020805460ff19166001179055919050565b5f546001600160a01b03163314610d765760405162461bcd60e51b81526004016107fc90611fce565b5f5b82811015610dda5781600a5f868685818110610d9657610d96612056565b9050602002016020810190610dab9190611e9f565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610d78565b50505050565b5f546001600160a01b03163314610e095760405162461bcd60e51b81526004016107fc90611fce565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610e5c5760405162461bcd60e51b81526004016107fc90611fce565b5f805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b03191661dead179055565b60606004805461082390612003565b5f6108ea3384610987856040518060600160405280602581526020016121cc60259139335f9081526008602090815260408083206001600160a01b038d168452909152902054919061162a565b5f546001600160a01b03163314610f2f5760405162461bcd60e51b81526004016107fc90611fce565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b5f61098c338484611271565b5f546001600160a01b03163314610f825760405162461bcd60e51b81526004016107fc90611fce565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610fcf90831515815260200190565b60405180910390a150565b5f546001600160a01b031633146110035760405162461bcd60e51b81526004016107fc90611fce565b5f5b82811015610dda578160095f86868581811061102357611023612056565b90506020020160208101906110389190611e9f565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611005565b5f546001600160a01b031633146110905760405162461bcd60e51b81526004016107fc90611fce565b6001600160a01b0381166110f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107fc565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111b05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fc565b6001600160a01b0382166112115760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fc565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166112d65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107fc565b6001600160a01b0383166113385760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107fc565b6001600160a01b0383165f908152600a602052604090205460ff1615801561137857506001600160a01b0384165f908152600a602052604090205460ff16155b6113b45760405162461bcd60e51b815260206004820152600d60248201526c626c61636b206164647265737360981b60448201526064016107fc565b6001600160a01b0384165f9081526009602052604090205460ff161580156113f457506001600160a01b0383165f9081526009602052604090205460ff16155b1561143b57600c5460ff1661143b5760405162461bcd60e51b815260206004820152600d60248201526c29bbb0b8103737ba1037b832b760991b60448201526064016107fc565b601c54600160a01b900460ff161561145f57611458848484611701565b9050610990565b305f90815260076020526040902054601a548110801590819061148c5750601c54600160a01b900460ff16155b80156114b057506001600160a01b0386165f908152600b602052604090205460ff16155b80156114c55750601c54600160a81b900460ff165b156114eb57601c54600160b01b900460ff16156114e257601a5491505b6114eb826117e4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f9081526007909152919091205461153c91869061162a565b6001600160a01b0387165f90815260076020908152604080832093909355600990529081205460ff168061158757506001600160a01b0386165f9081526009602052604090205460ff165b156115935750836115a1565b61159e878787611917565b90505b6001600160a01b0386165f908152600760205260409020546115c390826116a3565b6001600160a01b038088165f8181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116169085815260200190565b60405180910390a360019350505050610990565b5f818484111561164d5760405162461bcd60e51b81526004016107fc9190611d94565b505f611659848661207e565b95945050505050565b5f61099083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162a565b5f806116af8385612091565b9050838110156109905760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107fc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260079091529182205461175191849061162a565b6001600160a01b038086165f90815260076020526040808220939093559085168152205461177f90836116a3565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117d29086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b1790556018546013545f91611819916002916118139182908790611a19565b90611a97565b90505f6118268383611662565b905061183181611ad8565b60135447905f9061185090611847906002611a97565b60185490611662565b90505f61187160026118138461181360135488611a1990919063ffffffff16565b90505f61188d8361181360155487611a1990919063ffffffff16565b90505f6118a48261189e8786611662565b90611662565b905080156118c7576005546118c79061010090046001600160a01b031682611c61565b81156118e3576006546118e3906001600160a01b031683611c61565b5f831180156118f157505f87115b15611900576119008784611c99565b5050601c805460ff60a01b19169055505050505050565b6001600160a01b0383165f908152600b6020526040812054819060ff161561195a57611953606461181360165486611a1990919063ffffffff16565b9050611997565b6001600160a01b0384165f908152600b602052604090205460ff161561199757611994606461181360175486611a1990919063ffffffff16565b90505b8015611a0f57305f908152600760205260409020546119b690826116a3565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a069085815260200190565b60405180910390a35b6116598382611662565b5f825f03611a2857505f6108ee565b5f611a3383856120a4565b905082611a4085836120bb565b146109905760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107fc565b5f61099083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d68565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b0b57611b0b612056565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b86919061203b565b81600181518110611b9957611b99612056565b6001600160a01b039283166020918202929092010152601b54611bbf913091168461114e565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bf79085905f9086903090429060040161211d565b5f604051808303815f87803b158015611c0e575f80fd5b505af1158015611c20573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c55929190612158565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015611c94573d5f803e3d5ffd5b505050565b601b54611cb19030906001600160a01b03168461114e565b601b5460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611d3c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611d619190612178565b5050505050565b5f8183611d885760405162461bcd60e51b81526004016107fc9190611d94565b505f61165984866120bb565b5f602080835283518060208501525f5b81811015611dc057858101830151858201604001528201611da4565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215611df2575f80fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611e1d575f80fd5b50565b5f8060408385031215611e31575f80fd5b8235611e3c81611e09565b946020939093013593505050565b5f805f60608486031215611e5c575f80fd5b8335611e6781611e09565b92506020840135611e7781611e09565b929592945050506040919091013590565b5f60208284031215611e98575f80fd5b5035919050565b5f60208284031215611eaf575f80fd5b813561099081611e09565b80358015158114611ec9575f80fd5b919050565b5f805f60408486031215611ee0575f80fd5b833567ffffffffffffffff80821115611ef7575f80fd5b818601915086601f830112611f0a575f80fd5b813581811115611f18575f80fd5b8760208260051b8501011115611f2c575f80fd5b602092830195509350611f429186019050611eba565b90509250925092565b5f8060408385031215611f5c575f80fd5b8235611f6781611e09565b9150611f7560208401611eba565b90509250929050565b5f60208284031215611f8e575f80fd5b61099082611eba565b5f8060408385031215611fa8575f80fd5b8235611fb381611e09565b91506020830135611fc381611e09565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061201757607f821691505b60208210810361203557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121561204b575f80fd5b815161099081611e09565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156108ee576108ee61206a565b808201808211156108ee576108ee61206a565b80820281158282048414176108ee576108ee61206a565b5f826120d557634e487b7160e01b5f52601260045260245ffd5b500490565b5f815180845260208085019450602084015f5b838110156121125781516001600160a01b0316875295820195908201906001016120ed565b509495945050505050565b85815284602082015260a060408201525f61213b60a08301866120da565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f61217060408301846120da565b949350505050565b5f805f6060848603121561218a575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206da3e78514324f18703418fdd5b3e2ec250a1a1b9263fefd82e0ff3484325e7a64736f6c63430008170033
Deployed Bytecode
0x608060405260043610610257575f3560e01c8063844d591c1161013f578063c5d24189116100b3578063d5e9452411610078578063d5e9452414610703578063da00097d14610722578063dc44b6a014610742578063dd62ed3e14610757578063f2fde38b1461079b578063f5d588f5146107ba575f80fd5b8063c5d2418914610681578063c816841b14610696578063c8607952146106b5578063cab03471146106ca578063d158272d146106df575f80fd5b8063a073d37f11610104578063a073d37f146105dc578063a457c2d7146105f0578063a5d69d1f1461060f578063a9059cbb1461062e578063c469b6dd1461064d578063c49b9a8014610662575f80fd5b8063844d591c1461056457806388790a68146105835780638da5cb5b14610598578063914eb66a146105b457806395d89b41146105c8575f80fd5b80632b112e49116101d65780634a74bb021161019b5780634a74bb02146104765780635342acb4146104965780635881f3ef146104c4578063595dec3c146104e357806370a08231146105115780637567429114610545575f80fd5b80632b112e49146103d5578063313ce567146103e9578063395093511461040a5780633b97084a146104295780633ecad27114610448575f80fd5b80631694505e1161021c5780631694505e1461032757806318160ddd146103465780631870517a1461036457806323b872dd1461038357806327c8f835146103a2575f80fd5b806302ac81681461026257806306fdde031461027857806308733214146102a2578063095ea7b3146102c15780631245e347146102f0575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b506102766107d3565b005b348015610283575f80fd5b5061028c610814565b6040516102999190611d94565b60405180910390f35b3480156102ad575f80fd5b506102766102bc366004611de0565b6108a4565b3480156102cc575f80fd5b506102e06102db366004611e20565b6108de565b6040519015158152602001610299565b3480156102fb575f80fd5b5060065461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b348015610332575f80fd5b50601b5461030f906001600160a01b031681565b348015610351575f80fd5b506019545b604051908152602001610299565b34801561036f575f80fd5b5061027661037e366004611de0565b6108f4565b34801561038e575f80fd5b506102e061039d366004611e4a565b61092e565b3480156103ad575f80fd5b5061030f7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156103e0575f80fd5b50610356610997565b3480156103f4575f80fd5b5060055460405160ff9091168152602001610299565b348015610415575f80fd5b506102e0610424366004611e20565b6109e0565b348015610434575f80fd5b50610276610443366004611e88565b610a15565b348015610453575f80fd5b506102e0610462366004611e9f565b600b6020525f908152604090205460ff1681565b348015610481575f80fd5b50601c546102e090600160a81b900460ff1681565b3480156104a1575f80fd5b506102e06104b0366004611e9f565b60096020525f908152604090205460ff1681565b3480156104cf575f80fd5b5061030f6104de366004611e9f565b610a43565b3480156104ee575f80fd5b506102e06104fd366004611e9f565b600a6020525f908152604090205460ff1681565b34801561051c575f80fd5b5061035661052b366004611e9f565b6001600160a01b03165f9081526007602052604090205490565b348015610550575f80fd5b5061027661055f366004611ece565b610d4d565b34801561056f575f80fd5b5061027661057e366004611f4b565b610de0565b34801561058e575f80fd5b5061035660105481565b3480156105a3575f80fd5b505f546001600160a01b031661030f565b3480156105bf575f80fd5b50610276610e33565b3480156105d3575f80fd5b5061028c610eaa565b3480156105e7575f80fd5b50601a54610356565b3480156105fb575f80fd5b506102e061060a366004611e20565b610eb9565b34801561061a575f80fd5b50610276610629366004611f7e565b610f06565b348015610639575f80fd5b506102e0610648366004611e20565b610f4d565b348015610658575f80fd5b50610356600f5481565b34801561066d575f80fd5b5061027661067c366004611f7e565b610f59565b34801561068c575f80fd5b50610356600e5481565b3480156106a1575f80fd5b50601c5461030f906001600160a01b031681565b3480156106c0575f80fd5b5061035660115481565b3480156106d5575f80fd5b5061035660125481565b3480156106ea575f80fd5b5060055461030f9061010090046001600160a01b031681565b34801561070e575f80fd5b5061027661071d366004611ece565b610fda565b34801561072d575f80fd5b50601c546102e090600160b01b900460ff1681565b34801561074d575f80fd5b50610356600d5481565b348015610762575f80fd5b50610356610771366004611f97565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b3480156107a6575f80fd5b506102766107b5366004611e9f565b611067565b3480156107c5575f80fd5b50600c546102e09060ff1681565b5f546001600160a01b031633146108055760405162461bcd60e51b81526004016107fc90611fce565b60405180910390fd5b600c805460ff19166001179055565b60606003805461082390612003565b80601f016020809104026020016040519081016040528092919081815260200182805461084f90612003565b801561089a5780601f106108715761010080835404028352916020019161089a565b820191905f5260205f20905b81548152906001019060200180831161087d57829003601f168201915b5050505050905090565b5f546001600160a01b031633146108cd5760405162461bcd60e51b81526004016107fc90611fce565b601091909155601191909155601255565b5f6108ea33848461114e565b5060015b92915050565b5f546001600160a01b0316331461091d5760405162461bcd60e51b81526004016107fc90611fce565b600d91909155600e91909155600f55565b5f61093a848484611271565b5061098c8433610987856040518060600160405280602881526020016121a4602891396001600160a01b038a165f908152600860209081526040808320338452909152902054919061162a565b61114e565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03165f908152600760205260408120546019546109db91611662565b905090565b335f8181526008602090815260408083206001600160a01b038716845290915281205490916108ea91859061098790866116a3565b5f546001600160a01b03163314610a3e5760405162461bcd60e51b81526004016107fc90611fce565b601a55565b5f80546001600160a01b03163314610a6d5760405162461bcd60e51b81526004016107fc90611fce565b5f829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad1919061203b565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b40919061203b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610b89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bad919061203b565b91506001600160a01b038216610cfd57806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1d919061203b565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8c919061203b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610cd6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfa919061203b565b91505b601c80546001600160a01b038085166001600160a01b03199283168117909355601b80549490911693909116929092179091555f908152600b60205260409020805460ff19166001179055919050565b5f546001600160a01b03163314610d765760405162461bcd60e51b81526004016107fc90611fce565b5f5b82811015610dda5781600a5f868685818110610d9657610d96612056565b9050602002016020810190610dab9190611e9f565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610d78565b50505050565b5f546001600160a01b03163314610e095760405162461bcd60e51b81526004016107fc90611fce565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610e5c5760405162461bcd60e51b81526004016107fc90611fce565b5f805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b03191661dead179055565b60606004805461082390612003565b5f6108ea3384610987856040518060600160405280602581526020016121cc60259139335f9081526008602090815260408083206001600160a01b038d168452909152902054919061162a565b5f546001600160a01b03163314610f2f5760405162461bcd60e51b81526004016107fc90611fce565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b5f61098c338484611271565b5f546001600160a01b03163314610f825760405162461bcd60e51b81526004016107fc90611fce565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610fcf90831515815260200190565b60405180910390a150565b5f546001600160a01b031633146110035760405162461bcd60e51b81526004016107fc90611fce565b5f5b82811015610dda578160095f86868581811061102357611023612056565b90506020020160208101906110389190611e9f565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611005565b5f546001600160a01b031633146110905760405162461bcd60e51b81526004016107fc90611fce565b6001600160a01b0381166110f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107fc565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111b05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fc565b6001600160a01b0382166112115760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fc565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166112d65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107fc565b6001600160a01b0383166113385760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107fc565b6001600160a01b0383165f908152600a602052604090205460ff1615801561137857506001600160a01b0384165f908152600a602052604090205460ff16155b6113b45760405162461bcd60e51b815260206004820152600d60248201526c626c61636b206164647265737360981b60448201526064016107fc565b6001600160a01b0384165f9081526009602052604090205460ff161580156113f457506001600160a01b0383165f9081526009602052604090205460ff16155b1561143b57600c5460ff1661143b5760405162461bcd60e51b815260206004820152600d60248201526c29bbb0b8103737ba1037b832b760991b60448201526064016107fc565b601c54600160a01b900460ff161561145f57611458848484611701565b9050610990565b305f90815260076020526040902054601a548110801590819061148c5750601c54600160a01b900460ff16155b80156114b057506001600160a01b0386165f908152600b602052604090205460ff16155b80156114c55750601c54600160a81b900460ff165b156114eb57601c54600160b01b900460ff16156114e257601a5491505b6114eb826117e4565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f9081526007909152919091205461153c91869061162a565b6001600160a01b0387165f90815260076020908152604080832093909355600990529081205460ff168061158757506001600160a01b0386165f9081526009602052604090205460ff165b156115935750836115a1565b61159e878787611917565b90505b6001600160a01b0386165f908152600760205260409020546115c390826116a3565b6001600160a01b038088165f8181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116169085815260200190565b60405180910390a360019350505050610990565b5f818484111561164d5760405162461bcd60e51b81526004016107fc9190611d94565b505f611659848661207e565b95945050505050565b5f61099083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162a565b5f806116af8385612091565b9050838110156109905760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107fc565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260079091529182205461175191849061162a565b6001600160a01b038086165f90815260076020526040808220939093559085168152205461177f90836116a3565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117d29086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b1790556018546013545f91611819916002916118139182908790611a19565b90611a97565b90505f6118268383611662565b905061183181611ad8565b60135447905f9061185090611847906002611a97565b60185490611662565b90505f61187160026118138461181360135488611a1990919063ffffffff16565b90505f61188d8361181360155487611a1990919063ffffffff16565b90505f6118a48261189e8786611662565b90611662565b905080156118c7576005546118c79061010090046001600160a01b031682611c61565b81156118e3576006546118e3906001600160a01b031683611c61565b5f831180156118f157505f87115b15611900576119008784611c99565b5050601c805460ff60a01b19169055505050505050565b6001600160a01b0383165f908152600b6020526040812054819060ff161561195a57611953606461181360165486611a1990919063ffffffff16565b9050611997565b6001600160a01b0384165f908152600b602052604090205460ff161561199757611994606461181360175486611a1990919063ffffffff16565b90505b8015611a0f57305f908152600760205260409020546119b690826116a3565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a069085815260200190565b60405180910390a35b6116598382611662565b5f825f03611a2857505f6108ee565b5f611a3383856120a4565b905082611a4085836120bb565b146109905760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107fc565b5f61099083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d68565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b0b57611b0b612056565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b86919061203b565b81600181518110611b9957611b99612056565b6001600160a01b039283166020918202929092010152601b54611bbf913091168461114e565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611bf79085905f9086903090429060040161211d565b5f604051808303815f87803b158015611c0e575f80fd5b505af1158015611c20573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c55929190612158565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015611c94573d5f803e3d5ffd5b505050565b601b54611cb19030906001600160a01b03168461114e565b601b5460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611d3c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611d619190612178565b5050505050565b5f8183611d885760405162461bcd60e51b81526004016107fc9190611d94565b505f61165984866120bb565b5f602080835283518060208501525f5b81811015611dc057858101830151858201604001528201611da4565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215611df2575f80fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611e1d575f80fd5b50565b5f8060408385031215611e31575f80fd5b8235611e3c81611e09565b946020939093013593505050565b5f805f60608486031215611e5c575f80fd5b8335611e6781611e09565b92506020840135611e7781611e09565b929592945050506040919091013590565b5f60208284031215611e98575f80fd5b5035919050565b5f60208284031215611eaf575f80fd5b813561099081611e09565b80358015158114611ec9575f80fd5b919050565b5f805f60408486031215611ee0575f80fd5b833567ffffffffffffffff80821115611ef7575f80fd5b818601915086601f830112611f0a575f80fd5b813581811115611f18575f80fd5b8760208260051b8501011115611f2c575f80fd5b602092830195509350611f429186019050611eba565b90509250925092565b5f8060408385031215611f5c575f80fd5b8235611f6781611e09565b9150611f7560208401611eba565b90509250929050565b5f60208284031215611f8e575f80fd5b61099082611eba565b5f8060408385031215611fa8575f80fd5b8235611fb381611e09565b91506020830135611fc381611e09565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061201757607f821691505b60208210810361203557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121561204b575f80fd5b815161099081611e09565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156108ee576108ee61206a565b808201808211156108ee576108ee61206a565b80820281158282048414176108ee576108ee61206a565b5f826120d557634e487b7160e01b5f52601260045260245ffd5b500490565b5f815180845260208085019450602084015f5b838110156121125781516001600160a01b0316875295820195908201906001016120ed565b509495945050505050565b85815284602082015260a060408201525f61213b60a08301866120da565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f61217060408301846120da565b949350505050565b5f805f6060848603121561218a575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206da3e78514324f18703418fdd5b3e2ec250a1a1b9263fefd82e0ff3484325e7a64736f6c63430008170033
Deployed Bytecode Sourcemap
16313:13997:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29794:69;;;;;;;;;;;;;:::i;:::-;;19547:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30091:216;;;;;;;;;;-1:-1:-1;30091:216:0;;;;;:::i;:::-;;:::i;21095:193::-;;;;;;;;;;-1:-1:-1;21095:193:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;21095:193:0;1344:187:1;16663:103:0;;;;;;;;;;-1:-1:-1;16663:103:0;;;;-1:-1:-1;;;;;16663:103:0;;;;;;-1:-1:-1;;;;;1716:32:1;;;1698:51;;1686:2;1671:18;16663:103:0;1536:219:1;17840:41:0;;;;;;;;;;-1:-1:-1;17840:41:0;;;;-1:-1:-1;;;;;17840:41:0;;;19824:100;;;;;;;;;;-1:-1:-1;19904:12:0;;19824:100;;;2141:25:1;;;2129:2;2114:18;19824:100:0;1995:177:1;29871:212:0;;;;;;;;;;-1:-1:-1;29871:212:0;;;;;:::i;:::-;;:::i;23709:446::-;;;;;;;;;;-1:-1:-1;23709:446:0;;;;;:::i;:::-;;:::i;16773:90::-;;;;;;;;;;;;;;;22277:128;;;;;;;;;;;;;:::i;19733:83::-;;;;;;;;;;-1:-1:-1;19799:9:0;;19733:83;;19799:9;;;;2988:36:1;;2976:2;2961:18;19733:83:0;2846:184:1;20251:300:0;;;;;;;;;;-1:-1:-1;20251:300:0;;;;;:::i;:::-;;:::i;21835:122::-;;;;;;;;;;-1:-1:-1;21835:122:0;;;;;:::i;:::-;;:::i;17097:44::-;;;;;;;;;;-1:-1:-1;17097:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17951:40;;;;;;;;;;-1:-1:-1;17951:40:0;;;;-1:-1:-1;;;17951:40:0;;;;;;16992:49;;;;;;;;;;-1:-1:-1;16992:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22561:840;;;;;;;;;;-1:-1:-1;22561:840:0;;;;;:::i;:::-;;:::i;17048:42::-;;;;;;;;;;-1:-1:-1;17048:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19932:119;;;;;;;;;;-1:-1:-1;19932:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;20025:18:0;19998:7;20025:18;;;:9;:18;;;;;;;19932:119;29574:212;;;;;;;;;;-1:-1:-1;29574:212:0;;;;;:::i;:::-;;:::i;21675:152::-;;;;;;;;;;-1:-1:-1;21675:152:0;;;;;:::i;:::-;;:::i;17308:36::-;;;;;;;;;;;;;;;;6451:79;;;;;;;;;;-1:-1:-1;6489:7:0;6516:6;-1:-1:-1;;;;;6516:6:0;6451:79;;6665:155;;;;;;;;;;;;;:::i;19638:87::-;;;;;;;;;;;;;:::i;20967:120::-;;;;;;;;;;-1:-1:-1;21056:23:0;;20967:120;;20559:400;;;;;;;;;;-1:-1:-1;20559:400:0;;;;;:::i;:::-;;:::i;22144:125::-;;;;;;;;;;-1:-1:-1;22144:125:0;;;;;:::i;:::-;;:::i;23502:199::-;;;;;;;;;;-1:-1:-1;23502:199:0;;;;;:::i;:::-;;:::i;17269:30::-;;;;;;;;;;;;;;;;21965:171;;;;;;;;;;-1:-1:-1;21965:171:0;;;;;:::i;:::-;;:::i;17227:35::-;;;;;;;;;;;;;;;;17888:26;;;;;;;;;;-1:-1:-1;17888:26:0;;;;-1:-1:-1;;;;;17888:26:0;;;17351:36;;;;;;;;;;;;;;;;17394:31;;;;;;;;;;;;;;;;16548:108;;;;;;;;;;-1:-1:-1;16548:108:0;;;;;;;-1:-1:-1;;;;;16548:108:0;;;29347:219;;;;;;;;;;-1:-1:-1;29347:219:0;;;;;:::i;:::-;;:::i;17998:45::-;;;;;;;;;;-1:-1:-1;17998:45:0;;;;-1:-1:-1;;;17998:45:0;;;;;;17185:35;;;;;;;;;;;;;;;;20059:184;;;;;;;;;;-1:-1:-1;20059:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;20208:18:0;;;20176:7;20208:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20059:184;6828:281;;;;;;;;;;-1:-1:-1;6828:281:0;;;;;:::i;:::-;;:::i;17148:28::-;;;;;;;;;;-1:-1:-1;17148:28:0;;;;;;;;29794:69;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;;;;;;;;;29840:8:::1;:15:::0;;-1:-1:-1;;29840:15:0::1;29851:4;29840:15;::::0;;29794:69::o;19547:83::-;19584:13;19617:5;19610:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19547:83;:::o;30091:216::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;30197:17:::1;:30:::0;;;;30238:17:::1;:30:::0;;;;30279:12:::1;:20:::0;30091:216::o;21095:193::-;21197:4;21219:39;190:10;21242:7;21251:6;21219:8;:39::i;:::-;-1:-1:-1;21276:4:0;21095:193;;;;;:::o;29871:212::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;29976:16:::1;:29:::0;;;;30016:16:::1;:29:::0;;;;30056:11:::1;:19:::0;29871:212::o;23709:446::-;23841:4;23858:36;23868:6;23876:9;23887:6;23858:9;:36::i;:::-;-1:-1:-1;23905:220:0;23928:6;190:10;23976:138;24032:6;23976:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23976:19:0;;;;;;:11;:19;;;;;;;;190:10;23976:33;;;;;;;;;;:37;:138::i;:::-;23905:8;:220::i;:::-;-1:-1:-1;24143:4:0;23709:446;;;;;;:::o;22277:128::-;22384:11;-1:-1:-1;;;;;20025:18:0;22330:7;20025:18;;;:9;:18;;;;;;22357:12;;:40;;:16;:40::i;:::-;22350:47;;22277:128;:::o;20251:300::-;190:10;20366:4;20460:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20460:34:0;;;;;;;;;;20366:4;;20388:133;;20438:7;;20460:50;;20499:10;20460:38;:50::i;21835:122::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;21915:23:::1;:34:::0;21835:122::o;22561:840::-;22669:22;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;22709:35:::1;22780:16;22709:98;;22855:16;-1:-1:-1::0;;;;;22855:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22837:53:0::1;;22913:4;22933:16;-1:-1:-1::0;;;;;22933:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22837:130;::::0;-1:-1:-1;;;;;;22837:130:0::1;::::0;;;;;;-1:-1:-1;;;;;6461:15:1;;;22837:130:0::1;::::0;::::1;6443:34:1::0;6513:15;;6493:18;;;6486:43;6378:18;;22837:130:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22820:147:::0;-1:-1:-1;;;;;;22984:28:0;::::1;22980:226;;23098:16;-1:-1:-1::0;;;;;23098:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23080:74:0::1;;23163:4;23170:16;-1:-1:-1::0;;;;;23170:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23080:114;::::0;-1:-1:-1;;;;;;23080:114:0::1;::::0;;;;;;-1:-1:-1;;;;;6461:15:1;;;23080:114:0::1;::::0;::::1;6443:34:1::0;6513:15;;6493:18;;;6486:43;6378:18;;23080:114:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23063:131;;22980:226;23218:11;:28:::0;;-1:-1:-1;;;;;23218:28:0;;::::1;-1:-1:-1::0;;;;;;23218:28:0;;::::1;::::0;::::1;::::0;;;23280:15:::1;:34:::0;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;23218:11:::1;23352:34:::0;;;:12:::1;:34;::::0;;;;:41;;-1:-1:-1;;23352:41:0::1;23218:28:::0;23352:41:::1;::::0;;23232:14;22561:840;-1:-1:-1;22561:840:0:o;29574:212::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;29689:9:::1;29684:95;29700:16:::0;;::::1;29684:95;;;29761:6;29738:10;:20;29749:5;;29755:1;29749:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29738:20:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;29738:20:0;:29;;-1:-1:-1;;29738:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;29718:3:0::1;29684:95;;;;29574:212:::0;;;:::o;21675:152::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21787:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;21787:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21675:152::o;6665:155::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;6753:6:::1;::::0;;6732:45:::1;::::0;6769:6:::1;::::0;-1:-1:-1;;;;;6753:6:0;;::::1;::::0;6732:45:::1;::::0;::::1;6788:6;:24:::0;;-1:-1:-1;;;;;;6788:24:0::1;6805:6;6788:24;::::0;;6665:155::o;19638:87::-;19677:13;19710:7;19703:14;;;;;:::i;20559:400::-;20679:4;20701:228;190:10;20751:7;20773:145;20830:15;20773:145;;;;;;;;;;;;;;;;;190:10;20773:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20773:34:0;;;;;;;;;;;;:38;:145::i;22144:125::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;22225:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;22225:36:0::1;-1:-1:-1::0;;;;22225:36:0;;::::1;::::0;;;::::1;::::0;;22144:125::o;23502:199::-;23607:4;23629:42;190:10;23653:9;23664:6;23629:9;:42::i;21965:171::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;22042:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;22042:32:0::1;-1:-1:-1::0;;;;22042:32:0;;::::1;;::::0;;22090:38:::1;::::0;::::1;::::0;::::1;::::0;22066:8;1509:14:1;1502:22;1484:41;;1472:2;1457:18;;1344:187;22090:38:0::1;;;;;;;;21965:171:::0;:::o;29347:219::-;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;29462:9:::1;29457:102;29473:16:::0;;::::1;29457:102;;;29541:6;29511:17;:27;29529:5;;29535:1;29529:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29511:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;29511:27:0;:36;;-1:-1:-1;;29511:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;29491:3:0::1;29457:102;;6828:281:::0;6578:6;;-1:-1:-1;;;;;6578:6:0;190:10;6578:22;6570:67;;;;-1:-1:-1;;;6570:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6931:22:0;::::1;6909:110;;;::::0;-1:-1:-1;;;6909:110:0;;6874:2:1;6909:110:0::1;::::0;::::1;6856:21:1::0;6913:2;6893:18;;;6886:30;6952:34;6932:18;;;6925:62;-1:-1:-1;;;7003:18:1;;;6996:36;7049:19;;6909:110:0::1;6672:402:1::0;6909:110:0::1;7056:6;::::0;;7035:38:::1;::::0;-1:-1:-1;;;;;7035:38:0;;::::1;::::0;7056:6;::::1;::::0;7035:38:::1;::::0;::::1;7084:6;:17:::0;;-1:-1:-1;;;;;;7084:17:0::1;-1:-1:-1::0;;;;;7084:17:0;;;::::1;::::0;;;::::1;::::0;;6828:281::o;21296:371::-;-1:-1:-1;;;;;21423:19:0;;21415:68;;;;-1:-1:-1;;;21415:68:0;;7281:2:1;21415:68:0;;;7263:21:1;7320:2;7300:18;;;7293:30;7359:34;7339:18;;;7332:62;-1:-1:-1;;;7410:18:1;;;7403:34;7454:19;;21415:68:0;7079:400:1;21415:68:0;-1:-1:-1;;;;;21502:21:0;;21494:68;;;;-1:-1:-1;;;21494:68:0;;7686:2:1;21494:68:0;;;7668:21:1;7725:2;7705:18;;;7698:30;7764:34;7744:18;;;7737:62;-1:-1:-1;;;7815:18:1;;;7808:32;7857:19;;21494:68:0;7484:398:1;21494:68:0;-1:-1:-1;;;;;21575:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21627:32;;2141:25:1;;;21627:32:0;;2114:18:1;21627:32:0;;;;;;;21296:371;;;:::o;24163:1771::-;24284:4;-1:-1:-1;;;;;24309:20:0;;24301:70;;;;-1:-1:-1;;;24301:70:0;;8089:2:1;24301:70:0;;;8071:21:1;8128:2;8108:18;;;8101:30;8167:34;8147:18;;;8140:62;-1:-1:-1;;;8218:18:1;;;8211:35;8263:19;;24301:70:0;7887:401:1;24301:70:0;-1:-1:-1;;;;;24390:23:0;;24382:71;;;;-1:-1:-1;;;24382:71:0;;8495:2:1;24382:71:0;;;8477:21:1;8534:2;8514:18;;;8507:30;8573:34;8553:18;;;8546:62;-1:-1:-1;;;8624:18:1;;;8617:33;8667:19;;24382:71:0;8293:399:1;24382:71:0;-1:-1:-1;;;;;24473:21:0;;;;;;:10;:21;;;;;;;;24472:22;:45;;;;-1:-1:-1;;;;;;24499:18:0;;;;;;:10;:18;;;;;;;;24498:19;24472:45;24464:71;;;;-1:-1:-1;;;24464:71:0;;8899:2:1;24464:71:0;;;8881:21:1;8938:2;8918:18;;;8911:30;-1:-1:-1;;;8957:18:1;;;8950:43;9010:18;;24464:71:0;8697:337:1;24464:71:0;-1:-1:-1;;;;;24553:25:0;;;;;;:17;:25;;;;;;;;24552:26;:59;;;;-1:-1:-1;;;;;;24583:28:0;;;;;;:17;:28;;;;;;;;24582:29;24552:59;24548:126;;;24636:8;;;;24628:34;;;;-1:-1:-1;;;24628:34:0;;9241:2:1;24628:34:0;;;9223:21:1;9280:2;9260:18;;;9253:30;-1:-1:-1;;;9299:18:1;;;9292:43;9352:18;;24628:34:0;9039:337:1;24628:34:0;24690:16;;-1:-1:-1;;;24690:16:0;;;;24686:1241;;;24730:41;24745:6;24753:9;24764:6;24730:14;:41::i;:::-;24723:48;;;;24686:1241;24853:4;24804:28;20025:18;;;:9;:18;;;;;;24946:23;;24905:64;;;;;;;25008:61;;-1:-1:-1;25053:16:0;;-1:-1:-1;;;25053:16:0;;;;25052:17;25008:61;:103;;;;-1:-1:-1;;;;;;25091:20:0;;;;;;:12;:20;;;;;;;;25090:21;25008:103;:145;;;;-1:-1:-1;25132:21:0;;-1:-1:-1;;;25132:21:0;;;;25008:145;24986:371;;;25192:25;;-1:-1:-1;;;25192:25:0;;;;25188:98;;;25263:23;;25240:46;;25188:98;25305:36;25320:20;25305:14;:36::i;:::-;25393:102;;;;;;;;;;;-1:-1:-1;;;25393:102:0;;;;;;;;-1:-1:-1;;;;;25393:17:0;;-1:-1:-1;25393:17:0;;;:9;:17;;;;;;;;:102;;25433:6;;25393:21;:102::i;:::-;-1:-1:-1;;;;;25373:17:0;;;;;;:9;:17;;;;;;;;:122;;;;25548:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;25577:28:0;;;;;;:17;:28;;;;;;;;25548:57;25544:207;;;-1:-1:-1;25640:6:0;25544:207;;;25701:34;25709:6;25717:9;25728:6;25701:7;:34::i;:::-;25687:48;;25544:207;-1:-1:-1;;;;;25790:20:0;;;;;;:9;:20;;;;;;:37;;25815:11;25790:24;:37::i;:::-;-1:-1:-1;;;;;25767:20:0;;;;;;;:9;:20;;;;;;;:60;;;;25849:40;;;;;;;;;;25877:11;2141:25:1;;2129:2;2114:18;;1995:177;25849:40:0;;;;;;;;25911:4;25904:11;;;;;;;1616:226;1736:7;1772:12;1764:6;;;;1756:29;;;;-1:-1:-1;;;1756:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1796:9:0;1808:5;1812:1;1808;:5;:::i;:::-;1796:17;1616:226;-1:-1:-1;;;;;1616:226:0:o;1472:136::-;1530:7;1557:43;1561:1;1564;1557:43;;;;;;;;;;;;;;;;;:3;:43::i;1283:181::-;1341:7;;1373:5;1377:1;1373;:5;:::i;:::-;1361:17;;1402:1;1397;:6;;1389:46;;;;-1:-1:-1;;;1389:46:0;;9978:2:1;1389:46:0;;;9960:21:1;10017:2;9997:18;;;9990:30;10056:29;10036:18;;;10029:57;10103:18;;1389:46:0;9776:351:1;25942:401:0;26106:90;;;;;;;;;;;-1:-1:-1;;;26106:90:0;;;;;;;;-1:-1:-1;;;;;26106:17:0;;26069:4;26106:17;;;:9;:17;;;;;;;:90;;26142:6;;26106:21;:90::i;:::-;-1:-1:-1;;;;;26086:17:0;;;;;;;:9;:17;;;;;;:110;;;;26230:20;;;;;;;:32;;26255:6;26230:24;:32::i;:::-;-1:-1:-1;;;;;26207:20:0;;;;;;;:9;:20;;;;;;;:55;;;;26278:35;;;;;;;;;;26306:6;2141:25:1;;2129:2;2114:18;;1995:177;26278:35:0;;;;;;;;-1:-1:-1;26331:4:0;25942:401;;;;;:::o;26351:1165::-;18406:16;:23;;-1:-1:-1;;;;18406:23:0;-1:-1:-1;;;18406:23:0;;;26506:24:::1;::::0;26471:15:::1;::::0;18406:23;;26445:107:::1;::::0;26550:1:::1;::::0;26445:86:::1;::::0;;;:7;;:25:::1;:42::i;:::-;:60:::0;::::1;:86::i;:107::-;26423:129:::0;-1:-1:-1;26563:21:0::1;26587:24;:7:::0;26423:129;26587:11:::1;:24::i;:::-;26563:48;;26624:31;26641:13;26624:16;:31::i;:::-;26790:15;::::0;26691:21:::1;::::0;26666:22:::1;::::0;26747:76:::1;::::0;26790:22:::1;::::0;26810:1:::1;26790:19;:22::i;:::-;26747:24;::::0;;:28:::1;:76::i;:::-;26725:98;;26836:26;26865:101;26964:1;26865:80;26933:11;26865:49;26898:15;;26865:14;:32;;:49;;;;:::i;:101::-;26836:130;;26977:21;27001:47;27036:11;27001:30;27020:10;;27001:14;:18;;:30;;;;:::i;:47::-;26977:71:::0;-1:-1:-1;27059:26:0::1;27088:81;26977:71:::0;27088:38:::1;:14:::0;27107:18;27088::::1;:38::i;:::-;:42:::0;::::1;:81::i;:::-;27059:110:::0;-1:-1:-1;27186:22:0;;27182:105:::1;;27244:22;::::0;27223:64:::1;::::0;27244:22:::1;::::0;::::1;-1:-1:-1::0;;;;;27244:22:0::1;27268:18:::0;27223:20:::1;:64::i;:::-;27304:17:::0;;27300:90:::1;;27357:17;::::0;27336:54:::1;::::0;-1:-1:-1;;;;;27357:17:0::1;27376:13:::0;27336:20:::1;:54::i;:::-;27428:1;27407:18;:22;:41;;;;;27447:1;27433:11;:15;27407:41;27403:105;;;27463:45;27476:11;27489:18;27463:12;:45::i;:::-;-1:-1:-1::0;;18452:16:0;:24;;-1:-1:-1;;;;18452:24:0;;;-1:-1:-1;;;;;;26351:1165:0:o;28715:624::-;-1:-1:-1;;;;;28893:20:0;;28835:7;28893:20;;;:12;:20;;;;;;28835:7;;28893:20;;28889:216;;;28942:38;28976:3;28942:29;28953:17;;28942:6;:10;;:29;;;;:::i;:38::-;28930:50;;28889:216;;;-1:-1:-1;;;;;29002:23:0;;;;;;:12;:23;;;;;;;;28998:107;;;29054:39;29089:3;29054:30;29065:18;;29054:6;:10;;:30;;;;:::i;:39::-;29042:51;;28998:107;29121:13;;29117:174;;29196:4;29178:24;;;;:9;:24;;;;;;:39;;29207:9;29178:28;:39::i;:::-;29169:4;29151:24;;;;:9;:24;;;;;;;:66;;;;29237:42;;-1:-1:-1;;;;;29237:42:0;;;;;;;29269:9;2141:25:1;;2129:2;2114:18;;1995:177;29237:42:0;;;;;;;;29117:174;29310:21;:6;29321:9;29310:10;:21::i;1850:250::-;1908:7;1932:1;1937;1932:6;1928:47;;-1:-1:-1;1962:1:0;1955:8;;1928:47;1987:9;1999:5;2003:1;1999;:5;:::i;:::-;1987:17;-1:-1:-1;2032:1:0;2023:5;2027:1;1987:17;2023:5;:::i;:::-;:10;2015:56;;;;-1:-1:-1;;;2015:56:0;;10729:2:1;2015:56:0;;;10711:21:1;10768:2;10748:18;;;10741:30;10807:34;10787:18;;;10780:62;-1:-1:-1;;;10858:18:1;;;10851:31;10899:19;;2015:56:0;10527:397:1;2108:132:0;2166:7;2193:39;2197:1;2200;2193:39;;;;;;;;;;;;;;;;;:3;:39::i;27524:658::-;27674:16;;;27688:1;27674:16;;;;;;;;27650:21;;27674:16;;;;;;;;;;-1:-1:-1;27674:16:0;27650:40;;27719:4;27701;27706:1;27701:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27701:23:0;;;:7;;;;;;;;;;:23;;;;27745:15;;:22;;;-1:-1:-1;;;27745:22:0;;;;:15;;;;;:20;;:22;;;;;27701:7;;27745:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27735:4;27740:1;27735:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27735:32:0;;;:7;;;;;;;;;:32;27812:15;;27780:62;;27797:4;;27812:15;27830:11;27780:8;:62::i;:::-;27881:15;;:240;;-1:-1:-1;;;27881:240:0;;-1:-1:-1;;;;;27881:15:0;;;;:66;;:240;;27962:11;;27881:15;;28032:4;;28059;;28095:15;;27881:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28139:35;28156:11;28169:4;28139:35;;;;;;;:::i;:::-;;;;;;;;27579:603;27524:658;:::o;22413:140::-;22519:26;;-1:-1:-1;;;;;22519:18:0;;;:26;;;;;22538:6;;22519:26;;;;22538:6;22519:18;:26;;;;;;;;;;;;;;;;;;;;;22413:140;;:::o;28190:517::-;28370:15;;28338:62;;28355:4;;-1:-1:-1;;;;;28370:15:0;28388:11;28338:8;:62::i;:::-;28443:15;;:256;;-1:-1:-1;;;28443:256:0;;28515:4;28443:256;;;12796:34:1;12846:18;;;12839:34;;;-1:-1:-1;12889:18:1;;;12882:34;;;12932:18;;;12925:34;-1:-1:-1;;;;;28647:11:0;12996:15:1;;12975:19;;;12968:44;28673:15:0;13028:19:1;;;13021:35;28443:15:0;;;;:31;;28482:9;;12730:19:1;;28443:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28190:517;;:::o;2248:312::-;2368:7;2403:12;2396:5;2388:28;;;;-1:-1:-1;;;2388:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2427:9:0;2439:5;2443:1;2439;: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:316::-;644:6;652;660;713:2;701:9;692:7;688:23;684:32;681:52;;;729:1;726;719:12;681:52;-1:-1:-1;;752:23:1;;;822:2;807:18;;794:32;;-1:-1:-1;873:2:1;858:18;;;845:32;;567:316;-1:-1:-1;567:316:1:o;888:131::-;-1:-1:-1;;;;;963:31:1;;953:42;;943:70;;1009:1;1006;999:12;943:70;888:131;:::o;1024:315::-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;2177:456::-;2254:6;2262;2270;2323:2;2311:9;2302:7;2298:23;2294:32;2291:52;;;2339:1;2336;2329:12;2291:52;2378:9;2365:23;2397:31;2422:5;2397:31;:::i;:::-;2447:5;-1:-1:-1;2504:2:1;2489:18;;2476:32;2517:33;2476:32;2517:33;:::i;:::-;2177:456;;2569:7;;-1:-1:-1;;;2623:2:1;2608:18;;;;2595:32;;2177:456::o;3035:180::-;3094:6;3147:2;3135:9;3126:7;3122:23;3118:32;3115:52;;;3163:1;3160;3153:12;3115:52;-1:-1:-1;3186:23:1;;3035:180;-1:-1:-1;3035:180:1:o;3220:247::-;3279:6;3332:2;3320:9;3311:7;3307:23;3303:32;3300:52;;;3348:1;3345;3338:12;3300:52;3387:9;3374:23;3406:31;3431:5;3406:31;:::i;3472:160::-;3537:20;;3593:13;;3586:21;3576:32;;3566:60;;3622:1;3619;3612:12;3566:60;3472:160;;;:::o;3637:689::-;3729:6;3737;3745;3798:2;3786:9;3777:7;3773:23;3769:32;3766:52;;;3814:1;3811;3804:12;3766:52;3854:9;3841:23;3883:18;3924:2;3916:6;3913:14;3910:34;;;3940:1;3937;3930:12;3910:34;3978:6;3967:9;3963:22;3953:32;;4023:7;4016:4;4012:2;4008:13;4004:27;3994:55;;4045:1;4042;4035:12;3994:55;4085:2;4072:16;4111:2;4103:6;4100:14;4097:34;;;4127:1;4124;4117:12;4097:34;4182:7;4175:4;4165:6;4162:1;4158:14;4154:2;4150:23;4146:34;4143:47;4140:67;;;4203:1;4200;4193:12;4140:67;4234:4;4226:13;;;;-1:-1:-1;4258:6:1;-1:-1:-1;4283:37:1;;4299:20;;;-1:-1:-1;4283:37:1;:::i;:::-;4273:47;;3637:689;;;;;:::o;4331:315::-;4396:6;4404;4457:2;4445:9;4436:7;4432:23;4428:32;4425:52;;;4473:1;4470;4463:12;4425:52;4512:9;4499:23;4531:31;4556:5;4531:31;:::i;:::-;4581:5;-1:-1:-1;4605:35:1;4636:2;4621:18;;4605:35;:::i;:::-;4595:45;;4331:315;;;;;:::o;4651:180::-;4707:6;4760:2;4748:9;4739:7;4735:23;4731:32;4728:52;;;4776:1;4773;4766:12;4728:52;4799:26;4815:9;4799:26;:::i;4836:388::-;4904:6;4912;4965:2;4953:9;4944:7;4940:23;4936:32;4933:52;;;4981:1;4978;4971:12;4933:52;5020:9;5007:23;5039:31;5064:5;5039:31;:::i;:::-;5089:5;-1:-1:-1;5146:2:1;5131:18;;5118:32;5159:33;5118:32;5159:33;:::i;:::-;5211:7;5201:17;;;4836:388;;;;;:::o;5229:356::-;5431:2;5413:21;;;5450:18;;;5443:30;5509:34;5504:2;5489:18;;5482:62;5576:2;5561:18;;5229:356::o;5590:380::-;5669:1;5665:12;;;;5712;;;5733:61;;5787:4;5779:6;5775:17;5765:27;;5733:61;5840:2;5832:6;5829:14;5809:18;5806:38;5803:161;;5886:10;5881:3;5877:20;5874:1;5867:31;5921:4;5918:1;5911:15;5949:4;5946:1;5939:15;5803:161;;5590:380;;;:::o;5975:251::-;6045:6;6098:2;6086:9;6077:7;6073:23;6069:32;6066:52;;;6114:1;6111;6104:12;6066:52;6146:9;6140:16;6165:31;6190:5;6165:31;:::i;6540:127::-;6601:10;6596:3;6592:20;6589:1;6582:31;6632:4;6629:1;6622:15;6656:4;6653:1;6646:15;9381:127;9442:10;9437:3;9433:20;9430:1;9423:31;9473:4;9470:1;9463:15;9497:4;9494:1;9487:15;9513:128;9580:9;;;9601:11;;;9598:37;;;9615:18;;:::i;9646:125::-;9711:9;;;9732:10;;;9729:36;;;9745:18;;:::i;10132:168::-;10205:9;;;10236;;10253:15;;;10247:22;;10233:37;10223:71;;10274:18;;:::i;10305:217::-;10345:1;10371;10361:132;;10415:10;10410:3;10406:20;10403:1;10396:31;10450:4;10447:1;10440:15;10478:4;10475:1;10468:15;10361:132;-1:-1:-1;10507:9:1;;10305:217::o;11061:465::-;11114:3;11152:5;11146:12;11179:6;11174:3;11167:19;11205:4;11234;11229:3;11225:14;11218:21;;11273:4;11266:5;11262:16;11296:1;11306:195;11320:6;11317:1;11314:13;11306:195;;;11385:13;;-1:-1:-1;;;;;11381:39:1;11369:52;;11441:12;;;;11476:15;;;;11417:1;11335:9;11306:195;;;-1:-1:-1;11517:3:1;;11061:465;-1:-1:-1;;;;;11061:465:1:o;11531:582::-;11830:6;11819:9;11812:25;11873:6;11868:2;11857:9;11853:18;11846:34;11916:3;11911:2;11900:9;11896:18;11889:31;11793:4;11937:57;11989:3;11978:9;11974:19;11966:6;11937:57;:::i;:::-;-1:-1:-1;;;;;12030:32:1;;;;12025:2;12010:18;;12003:60;-1:-1:-1;12094:3:1;12079:19;12072:35;11929:65;11531:582;-1:-1:-1;;;11531:582:1:o;12118:332::-;12325:6;12314:9;12307:25;12368:2;12363;12352:9;12348:18;12341:30;12288:4;12388:56;12440:2;12429:9;12425:18;12417:6;12388:56;:::i;:::-;12380:64;12118:332;-1:-1:-1;;;;12118:332:1:o;13067:306::-;13155:6;13163;13171;13224:2;13212:9;13203:7;13199:23;13195:32;13192:52;;;13240:1;13237;13230:12;13192:52;13269:9;13263:16;13253:26;;13319:2;13308:9;13304:18;13298:25;13288:35;;13363:2;13352:9;13348:18;13342:25;13332:35;;13067:306;;;;;:::o
Swarm Source
ipfs://6da3e78514324f18703418fdd5b3e2ec250a1a1b9263fefd82e0ff3484325e7a
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.