ERC-20
Overview
Max Total Supply
100,000,000,000,000 novacs
Holders
142
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
NOVACS
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-13 */ pragma solidity ^0.8.0; //SPDX-License-Identifier: MIT interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _owner = newOwner; } } /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of returning `false` on failure. This behavior is nonetheless conventional * and does not conflict with the expectations of ERC20 applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ 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; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract NOVACS is ERC20, Ownable { IUniswapV2Router02 public uniswapV2Router; bool private swapping; bool private enableTrade = true; address public constant ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address public constant USDT = 0xdAC17F958D2ee523a2206206994597C13D831ec7; address public marketWallet = 0xA6DB725523cf0e8405225aFCB407F91BdEB3712A; address public tokenOwner = 0xBC92bE92EdD9b61511610C4261E24AC39c54B82c; uint256 public numTokensSellToSwap = 10000000000 * 1e18; uint256 public buyMarketingFee = 2; uint256 public sellMarketingFee = 2; // exlcude from fees and max transaction amount mapping (address => bool) public isExcludedFromFees; mapping (address => bool) public isPair; mapping (address => bool) public isBlclist; modifier lockTheSwap { swapping = true; _; swapping = false; } constructor() ERC20("novacs", "novacs") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(ROUTER); address _WETH = _uniswapV2Router.WETH(); // Create a uniswap pair for this new token address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _WETH); address _uniswapV2PairUSDT = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), USDT); isPair[_uniswapV2Pair] = true; isPair[_uniswapV2PairUSDT] = true; uniswapV2Router = _uniswapV2Router; // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(marketWallet, true); excludeFromFees(address(this), true); _approve(address(this), ROUTER, type(uint).max); /* _mint is an internal function in ERC20.sol that is only called here, and CANNOT be called ever again */ _mint(tokenOwner, 100000000000000 * 1e18); } receive() external payable {} function excludeFromFees(address account, bool excluded) public onlyOwner { isExcludedFromFees[account] = excluded; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { isExcludedFromFees[accounts[i]] = excluded; } } function setEnableTrade(bool _enableTrade) external onlyOwner { enableTrade = _enableTrade; } function setBuyMarketingFee(uint256 _buyMarketingFee) external onlyOwner { buyMarketingFee = _buyMarketingFee; } function setMarketWallet(address _marketWallet) external onlyOwner { marketWallet = _marketWallet; } function setSellMarketingFee(uint256 _sellMarketingFee) external onlyOwner { sellMarketingFee = _sellMarketingFee; } function setBlcList(address account, bool flag) external onlyOwner { isBlclist[account] = flag; } function setMultipleBlclist(address[] calldata accounts, bool flag) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { isBlclist[accounts[i]] = flag; } } function setNumTokensSellToSwap(uint256 value) external onlyOwner { numTokensSellToSwap = value; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(amount > 0, "ERC20: wrong amount"); require(!isBlclist[from], "ERC20: blclist account"); require(enableTrade, "ERC20: not time"); uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToSwap; if( overMinTokenBalance && !swapping && !isPair[from] ) { swapAndDividend(numTokensSellToSwap); } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if(isExcludedFromFees[from] || isExcludedFromFees[to]) { takeFee = false; } //transfer amount, it will take tax, burn, liquidity fee _tokenTransfer(from,to,amount,takeFee); } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { if(takeFee) { uint256 totalFee; if(isPair[sender]) { //buy totalFee = buyMarketingFee; } else if (isPair[recipient]) { totalFee = sellMarketingFee; } if(totalFee > 0) { uint256 feeAmount = amount * totalFee / 100; super._transfer(sender, address(this), feeAmount); amount -= feeAmount; } } super._transfer(sender, recipient, amount); } function swapAndDividend(uint256 tokenAmount) private lockTheSwap { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); // make the swap uniswapV2Router.swapExactTokensForETH( tokenAmount, 0, // accept any amount of USDT path, marketWallet, block.timestamp ); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETH( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be 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; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
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":"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":"ROUTER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"isBlclist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensSellToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setBlcList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"}],"name":"setBuyMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enableTrade","type":"bool"}],"name":"setEnableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketWallet","type":"address"}],"name":"setMarketWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setMultipleBlclist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setNumTokensSellToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"}],"name":"setSellMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenOwner","outputs":[{"internalType":"address","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":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526006805460ff60a81b1916600160a81b179055600780546001600160a01b031990811673a6db725523cf0e8405225afcb407f91bdeb3712a179091556008805490911673bc92be92edd9b61511610c4261e24ac39c54b82c1790556b204fce5e3e250261100000006009556002600a819055600b553480156200008657600080fd5b506040805180820182526006808252656e6f7661637360d01b6020808401829052845180860190955291845290830152906003620000c583826200080d565b506004620000d482826200080d565b5050506000620000e96200044560201b60201c565b600580546001600160a01b0319166001600160a01b039290921691909117905550604080516315ab88c960e31b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91600091839163ad5c46489160048083019260209291908290030181865afa15801562000160573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001869190620008d9565b90506000826001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ef9190620008d9565b6040516364e329cb60e11b81523060048201526001600160a01b038481166024830152919091169063c9c65396906044016020604051808303816000875af115801562000240573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002669190620008d9565b90506000836001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cf9190620008d9565b6040516364e329cb60e11b815230600482015273dac17f958d2ee523a2206206994597c13d831ec760248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af115801562000332573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003589190620008d9565b6001600160a01b038381166000908152600d60205260408082208054600160ff19918216811790925585851684529190922080549091169091179055600680546001600160a01b0319169187169190911790559050620003cc620003c46005546001600160a01b031690565b600162000449565b600754620003e5906001600160a01b0316600162000449565b620003f230600162000449565b6200041530737a250d5630b4cf539739df2c5dacb4c659f2488d600019620004d4565b6008546200043b906001600160a01b03166d04ee2d6d415b85acef8100000000620005fc565b5050505062000926565b3390565b6005546001600160a01b03163314620004a95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6001600160a01b038316620005385760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620004a0565b6001600160a01b0382166200059b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004a0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620006545760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004a0565b6200067081600254620006fd60201b62000c731790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620006a391839062000c73620006fd821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b6000806200070c838562000904565b905083811015620007605760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401620004a0565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200079457607f821691505b602082108103620007b557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006f857600081815260208120601f850160051c81016020861015620007e45750805b601f850160051c820191505b818110156200080557828155600101620007f0565b505050505050565b81516001600160401b0381111562000829576200082962000769565b62000841816200083a84546200077f565b84620007bb565b602080601f831160018114620008795760008415620008605750858301515b600019600386901b1c1916600185901b17855562000805565b600085815260208120601f198616915b82811015620008aa5788860151825594840194600190910190840162000889565b5085821015620008c95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008ec57600080fd5b81516001600160a01b03811681146200076057600080fd5b808201808211156200076357634e487b7160e01b600052601160045260246000fd5b61181d80620009366000396000f3fe6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063c0246668116100a0578063dd62ed3e1161006f578063dd62ed3e146105dd578063e4440a8614610623578063e5e31b1314610643578063f2fde38b14610673578063ff4ed8fa1461069357600080fd5b8063c024666814610555578063c492f04614610575578063c54e44eb14610595578063d887a407146105bd57600080fd5b8063a3e67610116100dc578063a3e67610146104d5578063a457c2d7146104f5578063a9059cbb14610515578063bed3aec51461053557600080fd5b80638da5cb5b1461046c5780638e14ada91461048a57806392136913146104aa57806395d89b41146104c057600080fd5b806339509351116101905780636aa58bb51161015f5780636aa58bb5146103cb57806370a08231146103eb578063715018a6146104215780637bce5a041461043657806380422e001461044c57600080fd5b806339509351146103395780634fbee1931461035957806352bbcece1461038957806354332266146103ab57600080fd5b806318160ddd116101cc57806318160ddd146102c057806323b872dd146102d5578063313ce567146102f557806332fe7b261461031157600080fd5b806306fdde0314610209578063095ea7b314610234578063123ddac7146102645780631694505e1461028857600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021e6106c3565b60405161022b9190611363565b60405180910390f35b34801561024057600080fd5b5061025461024f3660046113c9565b610755565b604051901515815260200161022b565b34801561027057600080fd5b5061027a60095481565b60405190815260200161022b565b34801561029457600080fd5b506006546102a8906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156102cc57600080fd5b5060025461027a565b3480156102e157600080fd5b506102546102f03660046113f5565b61076c565b34801561030157600080fd5b506040516012815260200161022b565b34801561031d57600080fd5b506102a8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561034557600080fd5b506102546103543660046113c9565b6107d5565b34801561036557600080fd5b50610254610374366004611436565b600c6020526000908152604090205460ff1681565b34801561039557600080fd5b506103a96103a4366004611468565b61080b565b005b3480156103b757600080fd5b506103a96103c6366004611436565b6108b5565b3480156103d757600080fd5b506103a96103e63660046114ec565b610901565b3480156103f757600080fd5b5061027a610406366004611436565b6001600160a01b031660009081526020819052604090205490565b34801561042d57600080fd5b506103a9610930565b34801561044257600080fd5b5061027a600a5481565b34801561045857600080fd5b506103a96104673660046114ec565b61096c565b34801561047857600080fd5b506005546001600160a01b03166102a8565b34801561049657600080fd5b506103a96104a5366004611505565b61099b565b3480156104b657600080fd5b5061027a600b5481565b3480156104cc57600080fd5b5061021e6109e3565b3480156104e157600080fd5b506008546102a8906001600160a01b031681565b34801561050157600080fd5b506102546105103660046113c9565b6109f2565b34801561052157600080fd5b506102546105303660046113c9565b610a41565b34801561054157600080fd5b506103a9610550366004611520565b610a4e565b34801561056157600080fd5b506103a9610570366004611520565b610aa3565b34801561058157600080fd5b506103a9610590366004611468565b610af8565b3480156105a157600080fd5b506102a873dac17f958d2ee523a2206206994597c13d831ec781565b3480156105c957600080fd5b506103a96105d83660046114ec565b610b93565b3480156105e957600080fd5b5061027a6105f8366004611555565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561062f57600080fd5b506007546102a8906001600160a01b031681565b34801561064f57600080fd5b5061025461065e366004611436565b600d6020526000908152604090205460ff1681565b34801561067f57600080fd5b506103a961068e366004611436565b610bc2565b34801561069f57600080fd5b506102546106ae366004611436565b600e6020526000908152604090205460ff1681565b6060600380546106d29061158e565b80601f01602080910402602001604051908101604052809291908181526020018280546106fe9061158e565b801561074b5780601f106107205761010080835404028352916020019161074b565b820191906000526020600020905b81548152906001019060200180831161072e57829003601f168201915b5050505050905090565b6000610762338484610cd9565b5060015b92915050565b6000610779848484610dfe565b6107cb84336107c68560405180606001604052806028815260200161179b602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190610fe5565b610cd9565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107629185906107c69086610c73565b6005546001600160a01b0316331461083e5760405162461bcd60e51b8152600401610835906115c8565b60405180910390fd5b60005b828110156108af5781600e6000868685818110610860576108606115fd565b90506020020160208101906108759190611436565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108a781611629565b915050610841565b50505050565b6005546001600160a01b031633146108df5760405162461bcd60e51b8152600401610835906115c8565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461092b5760405162461bcd60e51b8152600401610835906115c8565b600b55565b6005546001600160a01b0316331461095a5760405162461bcd60e51b8152600401610835906115c8565b600580546001600160a01b0319169055565b6005546001600160a01b031633146109965760405162461bcd60e51b8152600401610835906115c8565b600955565b6005546001600160a01b031633146109c55760405162461bcd60e51b8152600401610835906115c8565b60068054911515600160a81b0260ff60a81b19909216919091179055565b6060600480546106d29061158e565b600061076233846107c6856040518060600160405280602581526020016117c3602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190610fe5565b6000610762338484610dfe565b6005546001600160a01b03163314610a785760405162461bcd60e51b8152600401610835906115c8565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610acd5760405162461bcd60e51b8152600401610835906115c8565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610b225760405162461bcd60e51b8152600401610835906115c8565b60005b828110156108af5781600c6000868685818110610b4457610b446115fd565b9050602002016020810190610b599190611436565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b8b81611629565b915050610b25565b6005546001600160a01b03163314610bbd5760405162461bcd60e51b8152600401610835906115c8565b600a55565b6005546001600160a01b03163314610bec5760405162461bcd60e51b8152600401610835906115c8565b6001600160a01b038116610c515760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610835565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b600080610c808385611642565b905083811015610cd25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610835565b9392505050565b6001600160a01b038316610d3b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610835565b6001600160a01b038216610d9c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610835565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e245760405162461bcd60e51b815260040161083590611655565b60008111610e6a5760405162461bcd60e51b8152602060048201526013602482015272115490cc8c0e881ddc9bdb99c8185b5bdd5b9d606a1b6044820152606401610835565b6001600160a01b0383166000908152600e602052604090205460ff1615610ecc5760405162461bcd60e51b8152602060048201526016602482015275115490cc8c0e88189b18db1a5cdd081858d8dbdd5b9d60521b6044820152606401610835565b600654600160a81b900460ff16610f175760405162461bcd60e51b815260206004820152600f60248201526e45524332303a206e6f742074696d6560881b6044820152606401610835565b3060009081526020819052604090205460095481108015908190610f455750600654600160a01b900460ff16155b8015610f6a57506001600160a01b0385166000908152600d602052604090205460ff16155b15610f7a57610f7a60095461101f565b6006546001600160a01b0386166000908152600c602052604090205460ff600160a01b909204821615911680610fc857506001600160a01b0385166000908152600c602052604090205460ff165b15610fd1575060005b610fdd86868684611186565b505050505050565b600081848411156110095760405162461bcd60e51b81526004016108359190611363565b506000611016848661169a565b95945050505050565b6006805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611067576110676115fd565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e491906116ad565b816001815181106110f7576110f76115fd565b6001600160a01b0392831660209182029290920101526006546007546040516318cbafe560e01b8152918316926318cbafe59261114392879260009288929091169042906004016116ca565b600060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b50506006805460ff60a01b1916905550505050565b8015611217576001600160a01b0384166000908152600d602052604081205460ff16156111b65750600a546111dc565b6001600160a01b0384166000908152600d602052604090205460ff16156111dc5750600b545b801561121557600060646111f0838661173b565b6111fa9190611752565b905061120786308361121e565b611211818561169a565b9350505b505b6108af8484845b6001600160a01b0383166112445760405162461bcd60e51b815260040161083590611655565b6001600160a01b0382166112a65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610835565b6112e381604051806060016040528060268152602001611775602691396001600160a01b0386166000908152602081905260409020549190610fe5565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546113129082610c73565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610df1565b600060208083528351808285015260005b8181101561139057858101830151858201604001528201611374565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113c657600080fd5b50565b600080604083850312156113dc57600080fd5b82356113e7816113b1565b946020939093013593505050565b60008060006060848603121561140a57600080fd5b8335611415816113b1565b92506020840135611425816113b1565b929592945050506040919091013590565b60006020828403121561144857600080fd5b8135610cd2816113b1565b8035801515811461146357600080fd5b919050565b60008060006040848603121561147d57600080fd5b833567ffffffffffffffff8082111561149557600080fd5b818601915086601f8301126114a957600080fd5b8135818111156114b857600080fd5b8760208260051b85010111156114cd57600080fd5b6020928301955093506114e39186019050611453565b90509250925092565b6000602082840312156114fe57600080fd5b5035919050565b60006020828403121561151757600080fd5b610cd282611453565b6000806040838503121561153357600080fd5b823561153e816113b1565b915061154c60208401611453565b90509250929050565b6000806040838503121561156857600080fd5b8235611573816113b1565b91506020830135611583816113b1565b809150509250929050565b600181811c908216806115a257607f821691505b6020821081036115c257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161163b5761163b611613565b5060010190565b8082018082111561076657610766611613565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8181038181111561076657610766611613565b6000602082840312156116bf57600080fd5b8151610cd2816113b1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561171a5784516001600160a01b0316835293830193918301916001016116f5565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761076657610766611613565b60008261176f57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122023f7b880cc3bd618b35987607cd9ebbaea8cad8ca20b974dab07e3e14d90f07764736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063c0246668116100a0578063dd62ed3e1161006f578063dd62ed3e146105dd578063e4440a8614610623578063e5e31b1314610643578063f2fde38b14610673578063ff4ed8fa1461069357600080fd5b8063c024666814610555578063c492f04614610575578063c54e44eb14610595578063d887a407146105bd57600080fd5b8063a3e67610116100dc578063a3e67610146104d5578063a457c2d7146104f5578063a9059cbb14610515578063bed3aec51461053557600080fd5b80638da5cb5b1461046c5780638e14ada91461048a57806392136913146104aa57806395d89b41146104c057600080fd5b806339509351116101905780636aa58bb51161015f5780636aa58bb5146103cb57806370a08231146103eb578063715018a6146104215780637bce5a041461043657806380422e001461044c57600080fd5b806339509351146103395780634fbee1931461035957806352bbcece1461038957806354332266146103ab57600080fd5b806318160ddd116101cc57806318160ddd146102c057806323b872dd146102d5578063313ce567146102f557806332fe7b261461031157600080fd5b806306fdde0314610209578063095ea7b314610234578063123ddac7146102645780631694505e1461028857600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021e6106c3565b60405161022b9190611363565b60405180910390f35b34801561024057600080fd5b5061025461024f3660046113c9565b610755565b604051901515815260200161022b565b34801561027057600080fd5b5061027a60095481565b60405190815260200161022b565b34801561029457600080fd5b506006546102a8906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156102cc57600080fd5b5060025461027a565b3480156102e157600080fd5b506102546102f03660046113f5565b61076c565b34801561030157600080fd5b506040516012815260200161022b565b34801561031d57600080fd5b506102a8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561034557600080fd5b506102546103543660046113c9565b6107d5565b34801561036557600080fd5b50610254610374366004611436565b600c6020526000908152604090205460ff1681565b34801561039557600080fd5b506103a96103a4366004611468565b61080b565b005b3480156103b757600080fd5b506103a96103c6366004611436565b6108b5565b3480156103d757600080fd5b506103a96103e63660046114ec565b610901565b3480156103f757600080fd5b5061027a610406366004611436565b6001600160a01b031660009081526020819052604090205490565b34801561042d57600080fd5b506103a9610930565b34801561044257600080fd5b5061027a600a5481565b34801561045857600080fd5b506103a96104673660046114ec565b61096c565b34801561047857600080fd5b506005546001600160a01b03166102a8565b34801561049657600080fd5b506103a96104a5366004611505565b61099b565b3480156104b657600080fd5b5061027a600b5481565b3480156104cc57600080fd5b5061021e6109e3565b3480156104e157600080fd5b506008546102a8906001600160a01b031681565b34801561050157600080fd5b506102546105103660046113c9565b6109f2565b34801561052157600080fd5b506102546105303660046113c9565b610a41565b34801561054157600080fd5b506103a9610550366004611520565b610a4e565b34801561056157600080fd5b506103a9610570366004611520565b610aa3565b34801561058157600080fd5b506103a9610590366004611468565b610af8565b3480156105a157600080fd5b506102a873dac17f958d2ee523a2206206994597c13d831ec781565b3480156105c957600080fd5b506103a96105d83660046114ec565b610b93565b3480156105e957600080fd5b5061027a6105f8366004611555565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561062f57600080fd5b506007546102a8906001600160a01b031681565b34801561064f57600080fd5b5061025461065e366004611436565b600d6020526000908152604090205460ff1681565b34801561067f57600080fd5b506103a961068e366004611436565b610bc2565b34801561069f57600080fd5b506102546106ae366004611436565b600e6020526000908152604090205460ff1681565b6060600380546106d29061158e565b80601f01602080910402602001604051908101604052809291908181526020018280546106fe9061158e565b801561074b5780601f106107205761010080835404028352916020019161074b565b820191906000526020600020905b81548152906001019060200180831161072e57829003601f168201915b5050505050905090565b6000610762338484610cd9565b5060015b92915050565b6000610779848484610dfe565b6107cb84336107c68560405180606001604052806028815260200161179b602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190610fe5565b610cd9565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107629185906107c69086610c73565b6005546001600160a01b0316331461083e5760405162461bcd60e51b8152600401610835906115c8565b60405180910390fd5b60005b828110156108af5781600e6000868685818110610860576108606115fd565b90506020020160208101906108759190611436565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108a781611629565b915050610841565b50505050565b6005546001600160a01b031633146108df5760405162461bcd60e51b8152600401610835906115c8565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461092b5760405162461bcd60e51b8152600401610835906115c8565b600b55565b6005546001600160a01b0316331461095a5760405162461bcd60e51b8152600401610835906115c8565b600580546001600160a01b0319169055565b6005546001600160a01b031633146109965760405162461bcd60e51b8152600401610835906115c8565b600955565b6005546001600160a01b031633146109c55760405162461bcd60e51b8152600401610835906115c8565b60068054911515600160a81b0260ff60a81b19909216919091179055565b6060600480546106d29061158e565b600061076233846107c6856040518060600160405280602581526020016117c3602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190610fe5565b6000610762338484610dfe565b6005546001600160a01b03163314610a785760405162461bcd60e51b8152600401610835906115c8565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610acd5760405162461bcd60e51b8152600401610835906115c8565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610b225760405162461bcd60e51b8152600401610835906115c8565b60005b828110156108af5781600c6000868685818110610b4457610b446115fd565b9050602002016020810190610b599190611436565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b8b81611629565b915050610b25565b6005546001600160a01b03163314610bbd5760405162461bcd60e51b8152600401610835906115c8565b600a55565b6005546001600160a01b03163314610bec5760405162461bcd60e51b8152600401610835906115c8565b6001600160a01b038116610c515760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610835565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b600080610c808385611642565b905083811015610cd25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610835565b9392505050565b6001600160a01b038316610d3b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610835565b6001600160a01b038216610d9c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610835565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e245760405162461bcd60e51b815260040161083590611655565b60008111610e6a5760405162461bcd60e51b8152602060048201526013602482015272115490cc8c0e881ddc9bdb99c8185b5bdd5b9d606a1b6044820152606401610835565b6001600160a01b0383166000908152600e602052604090205460ff1615610ecc5760405162461bcd60e51b8152602060048201526016602482015275115490cc8c0e88189b18db1a5cdd081858d8dbdd5b9d60521b6044820152606401610835565b600654600160a81b900460ff16610f175760405162461bcd60e51b815260206004820152600f60248201526e45524332303a206e6f742074696d6560881b6044820152606401610835565b3060009081526020819052604090205460095481108015908190610f455750600654600160a01b900460ff16155b8015610f6a57506001600160a01b0385166000908152600d602052604090205460ff16155b15610f7a57610f7a60095461101f565b6006546001600160a01b0386166000908152600c602052604090205460ff600160a01b909204821615911680610fc857506001600160a01b0385166000908152600c602052604090205460ff165b15610fd1575060005b610fdd86868684611186565b505050505050565b600081848411156110095760405162461bcd60e51b81526004016108359190611363565b506000611016848661169a565b95945050505050565b6006805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611067576110676115fd565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e491906116ad565b816001815181106110f7576110f76115fd565b6001600160a01b0392831660209182029290920101526006546007546040516318cbafe560e01b8152918316926318cbafe59261114392879260009288929091169042906004016116ca565b600060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b50506006805460ff60a01b1916905550505050565b8015611217576001600160a01b0384166000908152600d602052604081205460ff16156111b65750600a546111dc565b6001600160a01b0384166000908152600d602052604090205460ff16156111dc5750600b545b801561121557600060646111f0838661173b565b6111fa9190611752565b905061120786308361121e565b611211818561169a565b9350505b505b6108af8484845b6001600160a01b0383166112445760405162461bcd60e51b815260040161083590611655565b6001600160a01b0382166112a65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610835565b6112e381604051806060016040528060268152602001611775602691396001600160a01b0386166000908152602081905260409020549190610fe5565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546113129082610c73565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610df1565b600060208083528351808285015260005b8181101561139057858101830151858201604001528201611374565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113c657600080fd5b50565b600080604083850312156113dc57600080fd5b82356113e7816113b1565b946020939093013593505050565b60008060006060848603121561140a57600080fd5b8335611415816113b1565b92506020840135611425816113b1565b929592945050506040919091013590565b60006020828403121561144857600080fd5b8135610cd2816113b1565b8035801515811461146357600080fd5b919050565b60008060006040848603121561147d57600080fd5b833567ffffffffffffffff8082111561149557600080fd5b818601915086601f8301126114a957600080fd5b8135818111156114b857600080fd5b8760208260051b85010111156114cd57600080fd5b6020928301955093506114e39186019050611453565b90509250925092565b6000602082840312156114fe57600080fd5b5035919050565b60006020828403121561151757600080fd5b610cd282611453565b6000806040838503121561153357600080fd5b823561153e816113b1565b915061154c60208401611453565b90509250929050565b6000806040838503121561156857600080fd5b8235611573816113b1565b91506020830135611583816113b1565b809150509250929050565b600181811c908216806115a257607f821691505b6020821081036115c257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161163b5761163b611613565b5060010190565b8082018082111561076657610766611613565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8181038181111561076657610766611613565b6000602082840312156116bf57600080fd5b8151610cd2816113b1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561171a5784516001600160a01b0316835293830193918301916001016116f5565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761076657610766611613565b60008261176f57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122023f7b880cc3bd618b35987607cd9ebbaea8cad8ca20b974dab07e3e14d90f07764736f6c63430008120033
Deployed Bytecode Sourcemap
16195:5687:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7591:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9758:169;;;;;;;;;;-1:-1:-1;9758:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9758:169:0;1023:187:1;16676:55:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;16676:55:0;1215:177:1;16238:41:0;;;;;;;;;;-1:-1:-1;16238:41:0;;;;-1:-1:-1;;;;;16238:41:0;;;;;;-1:-1:-1;;;;;1588:32:1;;;1570:51;;1558:2;1543:18;16238:41:0;1397:230:1;8711:108:0;;;;;;;;;;-1:-1:-1;8799:12:0;;8711:108;;10409:355;;;;;;;;;;-1:-1:-1;10409:355:0;;;;;:::i;:::-;;:::i;8553:93::-;;;;;;;;;;-1:-1:-1;8553:93:0;;8636:2;2235:36:1;;2223:2;2208:18;8553:93:0;2093:184:1;16356:75:0;;;;;;;;;;;;16389:42;16356:75;;11173:218;;;;;;;;;;-1:-1:-1;11173:218:0;;;;;:::i;:::-;;:::i;16891:51::-;;;;;;;;;;-1:-1:-1;16891:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19300:204;;;;;;;;;;-1:-1:-1;19300:204:0;;;;;:::i;:::-;;:::i;:::-;;18921:114;;;;;;;;;;-1:-1:-1;18921:114:0;;;;;:::i;:::-;;:::i;19043:130::-;;;;;;;;;;-1:-1:-1;19043:130:0;;;;;:::i;:::-;;:::i;8882:127::-;;;;;;;;;;-1:-1:-1;8882:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8983:18:0;8956:7;8983:18;;;;;;;;;;;;8882:127;5144:92;;;;;;;;;;;;;:::i;16744:34::-;;;;;;;;;;;;;;;;19512:112;;;;;;;;;;-1:-1:-1;19512:112:0;;;;;:::i;:::-;;:::i;4502:79::-;;;;;;;;;;-1:-1:-1;4567:6:0;;-1:-1:-1;;;;;4567:6:0;4502:79;;18672:107;;;;;;;;;;-1:-1:-1;18672:107:0;;;;;:::i;:::-;;:::i;16792:35::-;;;;;;;;;;;;;;;;7810:104;;;;;;;;;;;;;:::i;16597:70::-;;;;;;;;;;-1:-1:-1;16597:70:0;;;;-1:-1:-1;;;;;16597:70:0;;;11894:269;;;;;;;;;;-1:-1:-1;11894:269:0;;;;;:::i;:::-;;:::i;9222:175::-;;;;;;;;;;-1:-1:-1;9222:175:0;;;;;:::i;:::-;;:::i;19181:111::-;;;;;;;;;;-1:-1:-1;19181:111:0;;;;;:::i;:::-;;:::i;18291:131::-;;;;;;;;;;-1:-1:-1;18291:131:0;;;;;:::i;:::-;;:::i;18430:234::-;;;;;;;;;;-1:-1:-1;18430:234:0;;;;;:::i;:::-;;:::i;16438:73::-;;;;;;;;;;;;16469:42;16438:73;;18787:126;;;;;;;;;;-1:-1:-1;18787:126:0;;;;;:::i;:::-;;:::i;9460:151::-;;;;;;;;;;-1:-1:-1;9460:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;9576:18:0;;;9549:7;9576:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9460:151;16518:72;;;;;;;;;;-1:-1:-1;16518:72:0;;;;-1:-1:-1;;;;;16518:72:0;;;16949:39;;;;;;;;;;-1:-1:-1;16949:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5391:190;;;;;;;;;;-1:-1:-1;5391:190:0;;;;;:::i;:::-;;:::i;16995:42::-;;;;;;;;;;-1:-1:-1;16995:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7591:100;7645:13;7678:5;7671:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7591:100;:::o;9758:169::-;9841:4;9858:39;3893:10;9881:7;9890:6;9858:8;:39::i;:::-;-1:-1:-1;9915:4:0;9758:169;;;;;:::o;10409:355::-;10549:4;10566:36;10576:6;10584:9;10595:6;10566:9;:36::i;:::-;10613:121;10622:6;3893:10;10644:89;10682:6;10644:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10644:19:0;;;;;;:11;:19;;;;;;;;3893:10;10644:33;;;;;;;;;;:37;:89::i;:::-;10613:8;:121::i;:::-;-1:-1:-1;10752:4:0;10409:355;;;;;:::o;11173:218::-;3893:10;11261:4;11310:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11310:34:0;;;;;;;;;;11261:4;;11278:83;;11301:7;;11310:50;;11349:10;11310:38;:50::i;19300:204::-;4714:6;;-1:-1:-1;;;;;4714:6:0;3893:10;4714:22;4706:67;;;;-1:-1:-1;;;4706:67:0;;;;;;;:::i;:::-;;;;;;;;;19400:9:::1;19396:101;19415:19:::0;;::::1;19396:101;;;19481:4;19456:9;:22;19466:8;;19475:1;19466:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19456:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19456:22:0;:29;;-1:-1:-1;;19456:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19436:3;::::1;::::0;::::1;:::i;:::-;;;;19396:101;;;;19300:204:::0;;;:::o;18921:114::-;4714:6;;-1:-1:-1;;;;;4714:6:0;3893:10;4714:22;4706:67;;;;-1:-1:-1;;;4706:67:0;;;;;;;:::i;:::-;18999:12:::1;:28:::0;;-1:-1:-1;;;;;;18999:28:0::1;-1:-1:-1::0;;;;;18999:28:0;;;::::1;::::0;;;::::1;::::0;;18921:114::o;19043:130::-;4714:6;;-1:-1:-1;;;;;4714:6:0;3893:10;4714:22;4706:67;;;;-1:-1:-1;;;4706:67:0;;;;;;;:::i;:::-;19129:16:::1;:36:::0;19043:130::o;5144:92::-;4714:6;;-1:-1:-1;;;;;4714:6:0;3893:10;4714:22;4706:67;;;;-1:-1:-1;;;4706:67:0;;;;;;;:::i;:::-;5209:6:::1;:19:::0;;-1:-1:-1;;;;;;5209:19:0::1;::::0;;5144:92::o;19512:112::-;4714:6;;-1:-1:-1;;;;;4714:6:0;3893:10;4714:22;4706:67;;;;-1:-1:-1;;;4706:67:0;;;;;;;:::i;:::-;19589:19:::1;:27:::0;19512:112::o;18672:107::-;4714:6;;-1:-1:-1;;;;;4714:6:0;3893:10;4714:22;4706:67;;;;-1:-1:-1;;;4706:67:0;;;;;;;:::i;:::-;18745:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18745:26:0::1;-1:-1:-1::0;;;;18745:26:0;;::::1;::::0;;;::::1;::::0;;18672:107::o;7810:104::-;7866:13;7899:7;7892:14;;;;;:::i;11894:269::-;11987:4;12004:129;3893:10;12027:7;12036:96;12075:15;12036:96;;;;;;;;;;;;;;;;;3893:10;12036:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12036:34:0;;;;;;;;;;;;:38;:96::i;9222:175::-;9308:4;9325:42;3893:10;9349:9;9360:6;9325:9;:42::i;19181:111::-;4714:6;;-1:-1:-1;;;;;4714:6:0;3893:10;4714:22;4706:67;;;;-1:-1:-1;;;4706:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19259:18:0;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:25;;-1:-1:-1;;19259:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19181:111::o;18291:131::-;4714:6;;-1:-1:-1;;;;;4714:6:0;3893:10;4714:22;4706:67;;;;-1:-1:-1;;;4706:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18376:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;18376:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18291:131::o;18430:234::-;4714:6;;-1:-1:-1;;;;;4714:6:0;3893:10;4714:22;4706:67;;;;-1:-1:-1;;;4706:67:0;;;;;;;:::i;:::-;18547:9:::1;18543:114;18562:19:::0;;::::1;18543:114;;;18637:8;18603:18;:31;18622:8;;18631:1;18622:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18603:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18603:31:0;:42;;-1:-1:-1;;18603:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18583:3;::::1;::::0;::::1;:::i;:::-;;;;18543:114;;18787:126:::0;4714:6;;-1:-1:-1;;;;;4714:6:0;3893:10;4714:22;4706:67;;;;-1:-1:-1;;;4706:67:0;;;;;;;:::i;:::-;18871:15:::1;:34:::0;18787:126::o;5391:190::-;4714:6;;-1:-1:-1;;;;;4714:6:0;3893:10;4714:22;4706:67;;;;-1:-1:-1;;;4706:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5480:22:0;::::1;5472:73;;;::::0;-1:-1:-1;;;5472:73:0;;6036:2:1;5472:73:0::1;::::0;::::1;6018:21:1::0;6075:2;6055:18;;;6048:30;6114:34;6094:18;;;6087:62;-1:-1:-1;;;6165:18:1;;;6158:36;6211:19;;5472:73:0::1;5834:402:1::0;5472:73:0::1;5556:6;:17:::0;;-1:-1:-1;;;;;;5556:17:0::1;-1:-1:-1::0;;;;;5556:17:0;;;::::1;::::0;;;::::1;::::0;;5391:190::o;22608:181::-;22666:7;;22698:5;22702:1;22698;:5;:::i;:::-;22686:17;;22727:1;22722;:6;;22714:46;;;;-1:-1:-1;;;22714:46:0;;6573:2:1;22714:46:0;;;6555:21:1;6612:2;6592:18;;;6585:30;6651:29;6631:18;;;6624:57;6698:18;;22714:46:0;6371:351:1;22714:46:0;22780:1;22608:181;-1:-1:-1;;;22608:181:0:o;15080:380::-;-1:-1:-1;;;;;15216:19:0;;15208:68;;;;-1:-1:-1;;;15208:68:0;;6929:2:1;15208:68:0;;;6911:21:1;6968:2;6948:18;;;6941:30;7007:34;6987:18;;;6980:62;-1:-1:-1;;;7058:18:1;;;7051:34;7102:19;;15208:68:0;6727:400:1;15208:68:0;-1:-1:-1;;;;;15295:21:0;;15287:68;;;;-1:-1:-1;;;15287:68:0;;7334:2:1;15287:68:0;;;7316:21:1;7373:2;7353:18;;;7346:30;7412:34;7392:18;;;7385:62;-1:-1:-1;;;7463:18:1;;;7456:32;7505:19;;15287:68:0;7132:398:1;15287:68:0;-1:-1:-1;;;;;15368:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15420:32;;1361:25:1;;;15420:32:0;;1334:18:1;15420:32:0;;;;;;;;15080:380;;;:::o;19632:1028::-;-1:-1:-1;;;;;19764:18:0;;19756:68;;;;-1:-1:-1;;;19756:68:0;;;;;;;:::i;:::-;19852:1;19843:6;:10;19835:42;;;;-1:-1:-1;;;19835:42:0;;8143:2:1;19835:42:0;;;8125:21:1;8182:2;8162:18;;;8155:30;-1:-1:-1;;;8201:18:1;;;8194:49;8260:18;;19835:42:0;7941:343:1;19835:42:0;-1:-1:-1;;;;;19897:15:0;;;;;;:9;:15;;;;;;;;19896:16;19888:51;;;;-1:-1:-1;;;19888:51:0;;8491:2:1;19888:51:0;;;8473:21:1;8530:2;8510:18;;;8503:30;-1:-1:-1;;;8549:18:1;;;8542:52;8611:18;;19888:51:0;8289:346:1;19888:51:0;19958:11;;-1:-1:-1;;;19958:11:0;;;;19950:39;;;;-1:-1:-1;;;19950:39:0;;8842:2:1;19950:39:0;;;8824:21:1;8881:2;8861:18;;;8854:30;-1:-1:-1;;;8900:18:1;;;8893:45;8955:18;;19950:39:0;8640:339:1;19950:39:0;20051:4;20002:28;8983:18;;;;;;;;;;;20119:19;;20095:43;;;;;;;20153:45;;-1:-1:-1;20190:8:0;;-1:-1:-1;;;20190:8:0;;;;20189:9;20153:45;:75;;;;-1:-1:-1;;;;;;20216:12:0;;;;;;:6;:12;;;;;;;;20215:13;20153:75;20149:154;;;20255:36;20271:19;;20255:15;:36::i;:::-;20332:8;;-1:-1:-1;;;;;20441:24:0;;20316:12;20441:24;;;:18;:24;;;;;;20332:8;-1:-1:-1;;;20332:8:0;;;;;20331:9;;20441:24;;:50;;-1:-1:-1;;;;;;20469:22:0;;;;;;:18;:22;;;;;;;;20441:50;20438:97;;;-1:-1:-1;20518:5:0;20438:97;20613:38;20628:4;20633:2;20636:6;20643:7;20613:14;:38::i;:::-;19745:915;;;19632:1028;;;:::o;23511:192::-;23597:7;23633:12;23625:6;;;;23617:29;;;;-1:-1:-1;;;23617:29:0;;;;;;;;:::i;:::-;-1:-1:-1;23657:9:0;23669:5;23673:1;23669;:5;:::i;:::-;23657:17;23511:192;-1:-1:-1;;;;;23511:192:0:o;21381:498::-;17078:8;:15;;-1:-1:-1;;;;17078:15:0;-1:-1:-1;;;17078:15:0;;;21544:16:::1;::::0;;21558:1:::1;21544:16:::0;;;;;::::1;::::0;;-1:-1:-1;;21544:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21544:16:0::1;21520:40;;21589:4;21571;21576:1;21571:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21571:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;21615:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;21615:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;21571:7;;21615:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21605:4;21610:1;21605:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21605:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;21676:15:::1;::::0;21818:12:::1;::::0;21676:195:::1;::::0;-1:-1:-1;;;21676:195:0;;:15;;::::1;::::0;:37:::1;::::0;:195:::1;::::0;21728:11;;21676:15:::1;::::0;21799:4;;21818:12;;::::1;::::0;21845:15:::1;::::0;21676:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;17116:8:0;:16;;-1:-1:-1;;;;17116:16:0;;;-1:-1:-1;;;;21381:498:0:o;20741:632::-;20852:7;20849:464;;;-1:-1:-1;;;;;20910:14:0;;20876:16;20910:14;;;:6;:14;;;;;;;;20907:177;;;-1:-1:-1;20962:15:0;;20907:177;;;-1:-1:-1;;;;;21003:17:0;;;;;;:6;:17;;;;;;;;20999:85;;;-1:-1:-1;21052:16:0;;20999:85;21104:12;;21101:201;;21137:17;21177:3;21157:17;21166:8;21157:6;:17;:::i;:::-;:23;;;;:::i;:::-;21137:43;;21199:49;21215:6;21231:4;21238:9;21199:15;:49::i;:::-;21267:19;21277:9;21267:19;;:::i;:::-;;;21118:184;21101:201;20861:452;20849:464;21323:42;21339:6;21347:9;21358:6;12653:573;-1:-1:-1;;;;;12793:20:0;;12785:70;;;;-1:-1:-1;;;12785:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12874:23:0;;12866:71;;;;-1:-1:-1;;;12866:71:0;;11087:2:1;12866:71:0;;;11069:21:1;11126:2;11106:18;;;11099:30;11165:34;11145:18;;;11138:62;-1:-1:-1;;;11216:18:1;;;11209:33;11259:19;;12866:71:0;10885:399:1;12866:71:0;13030;13052:6;13030:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13030:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;13010:17:0;;;:9;:17;;;;;;;;;;;:91;;;;13135:20;;;;;;;:32;;13160:6;13135:24;:32::i;:::-;-1:-1:-1;;;;;13112:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;13183:35;1361:25:1;;;13112:20:0;;13183:35;;;;;;1334:18:1;13183:35:0;1215:177:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1632:456::-;1709:6;1717;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;1833:9;1820:23;1852:31;1877:5;1852:31;:::i;:::-;1902:5;-1:-1:-1;1959:2:1;1944:18;;1931:32;1972:33;1931:32;1972:33;:::i;:::-;1632:456;;2024:7;;-1:-1:-1;;;2078:2:1;2063:18;;;;2050:32;;1632:456::o;2490:247::-;2549:6;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2657:9;2644:23;2676:31;2701:5;2676:31;:::i;2742:160::-;2807:20;;2863:13;;2856:21;2846:32;;2836:60;;2892:1;2889;2882:12;2836:60;2742:160;;;:::o;2907:689::-;2999:6;3007;3015;3068:2;3056:9;3047:7;3043:23;3039:32;3036:52;;;3084:1;3081;3074:12;3036:52;3124:9;3111:23;3153:18;3194:2;3186:6;3183:14;3180:34;;;3210:1;3207;3200:12;3180:34;3248:6;3237:9;3233:22;3223:32;;3293:7;3286:4;3282:2;3278:13;3274:27;3264:55;;3315:1;3312;3305:12;3264:55;3355:2;3342:16;3381:2;3373:6;3370:14;3367:34;;;3397:1;3394;3387:12;3367:34;3452:7;3445:4;3435:6;3432:1;3428:14;3424:2;3420:23;3416:34;3413:47;3410:67;;;3473:1;3470;3463:12;3410:67;3504:4;3496:13;;;;-1:-1:-1;3528:6:1;-1:-1:-1;3553:37:1;;3569:20;;;-1:-1:-1;3553:37:1;:::i;:::-;3543:47;;2907:689;;;;;:::o;3601:180::-;3660:6;3713:2;3701:9;3692:7;3688:23;3684:32;3681:52;;;3729:1;3726;3719:12;3681:52;-1:-1:-1;3752:23:1;;3601:180;-1:-1:-1;3601:180:1:o;3786:::-;3842:6;3895:2;3883:9;3874:7;3870:23;3866:32;3863:52;;;3911:1;3908;3901:12;3863:52;3934:26;3950:9;3934:26;:::i;3971:315::-;4036:6;4044;4097:2;4085:9;4076:7;4072:23;4068:32;4065:52;;;4113:1;4110;4103:12;4065:52;4152:9;4139:23;4171:31;4196:5;4171:31;:::i;:::-;4221:5;-1:-1:-1;4245:35:1;4276:2;4261:18;;4245:35;:::i;:::-;4235:45;;3971:315;;;;;:::o;4291:388::-;4359:6;4367;4420:2;4408:9;4399:7;4395:23;4391:32;4388:52;;;4436:1;4433;4426:12;4388:52;4475:9;4462:23;4494:31;4519:5;4494:31;:::i;:::-;4544:5;-1:-1:-1;4601:2:1;4586:18;;4573:32;4614:33;4573:32;4614:33;:::i;:::-;4666:7;4656:17;;;4291:388;;;;;:::o;4684:380::-;4763:1;4759:12;;;;4806;;;4827:61;;4881:4;4873:6;4869:17;4859:27;;4827:61;4934:2;4926:6;4923:14;4903:18;4900:38;4897:161;;4980:10;4975:3;4971:20;4968:1;4961:31;5015:4;5012:1;5005:15;5043:4;5040:1;5033:15;4897:161;;4684:380;;;:::o;5069:356::-;5271:2;5253:21;;;5290:18;;;5283:30;5349:34;5344:2;5329:18;;5322:62;5416:2;5401:18;;5069:356::o;5430:127::-;5491:10;5486:3;5482:20;5479:1;5472:31;5522:4;5519:1;5512:15;5546:4;5543:1;5536:15;5562:127;5623:10;5618:3;5614:20;5611:1;5604:31;5654:4;5651:1;5644:15;5678:4;5675:1;5668:15;5694:135;5733:3;5754:17;;;5751:43;;5774:18;;:::i;:::-;-1:-1:-1;5821:1:1;5810:13;;5694:135::o;6241:125::-;6306:9;;;6327:10;;;6324:36;;;6340:18;;:::i;7535:401::-;7737:2;7719:21;;;7776:2;7756:18;;;7749:30;7815:34;7810:2;7795:18;;7788:62;-1:-1:-1;;;7881:2:1;7866:18;;7859:35;7926:3;7911:19;;7535:401::o;8984:128::-;9051:9;;;9072:11;;;9069:37;;;9086:18;;:::i;9249:251::-;9319:6;9372:2;9360:9;9351:7;9347:23;9343:32;9340:52;;;9388:1;9385;9378:12;9340:52;9420:9;9414:16;9439:31;9464:5;9439:31;:::i;9505:980::-;9767:4;9815:3;9804:9;9800:19;9846:6;9835:9;9828:25;9872:2;9910:6;9905:2;9894:9;9890:18;9883:34;9953:3;9948:2;9937:9;9933:18;9926:31;9977:6;10012;10006:13;10043:6;10035;10028:22;10081:3;10070:9;10066:19;10059:26;;10120:2;10112:6;10108:15;10094:29;;10141:1;10151:195;10165:6;10162:1;10159:13;10151:195;;;10230:13;;-1:-1:-1;;;;;10226:39:1;10214:52;;10321:15;;;;10286:12;;;;10262:1;10180:9;10151:195;;;-1:-1:-1;;;;;;;10402:32:1;;;;10397:2;10382:18;;10375:60;-1:-1:-1;;;10466:3:1;10451:19;10444:35;10363:3;9505:980;-1:-1:-1;;;9505:980:1:o;10490:168::-;10563:9;;;10594;;10611:15;;;10605:22;;10591:37;10581:71;;10632:18;;:::i;10663:217::-;10703:1;10729;10719:132;;10773:10;10768:3;10764:20;10761:1;10754:31;10808:4;10805:1;10798:15;10836:4;10833:1;10826:15;10719:132;-1:-1:-1;10865:9:1;;10663:217::o
Swarm Source
ipfs://23f7b880cc3bd618b35987607cd9ebbaea8cad8ca20b974dab07e3e14d90f077
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.