ERC-20
Overview
Max Total Supply
100,000,000 CAT
Holders
374
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
817.81773656381142877 CATValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Cat
Compiler Version
v0.6.2+commit.bacdbe57
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-19 */ // SPDX-License-Identifier: MIT /* ,_ _, |\\___//| |=6 6=| \=._Y_.=/ ) ` ( , / \ (( | | )) /| | | |\_// \| |._.| |/-` '"' '"' Website: www.catnation.xyz Telegram: https://t.me/catstate Twitter(X): https://twitter.com/acatnation */ pragma solidity ^0.6.0; pragma experimental ABIEncoderV2; pragma solidity ^0.6.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } pragma solidity ^0.6.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } pragma solidity ^0.6.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ 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 () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } pragma solidity ^0.6.2; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Cat is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping(address => bool) public isBlackList; mapping (address => bool) private _isExcludedFromFee; uint8 private _decimals = 18; uint256 private _tTotal; uint256 public supply = 1 * (10 ** 8) * (10 ** 18); string private _name = "Cat Nation"; string private _symbol = "CAT"; address public marketAddress = 0x15c0cB5a4cDcE8cE21317B1F2fBBb85BC1eC25F4; address usdt = 0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32; address constant router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address constant rootAddress = address(0x000000000000000000000000000000000000dEaD); address public initPoolAddress; uint256 public _marketFee = 1; IUniswapV2Router02 public uniswapV2Router; mapping(address => bool) public ammPairs; IERC20 public uniswapV2Pair; address public weth; bool public openTransaction; uint256 launchedBlock; uint256 private firstBlock = 1; uint256 private secondBlock = 5; bool public swapEnabled = true; uint256 public swapThreshold = supply / 10000; bool inSwap; modifier swapping() {inSwap = true; _; inSwap = false;} constructor () public { initPoolAddress = owner(); _tOwned[initPoolAddress] = supply; _tTotal = supply; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[rootAddress] = true; _isExcludedFromFee[marketAddress] = true; _isExcludedFromFee[initPoolAddress] = true; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); uniswapV2Router = _uniswapV2Router; address ethPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); weth = _uniswapV2Router.WETH(); uniswapV2Pair = IERC20(ethPair); ammPairs[ethPair] = true; emit Transfer(address(0), initPoolAddress, _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function setExcludeFromFee(address account, bool _isExclude) public onlyOwner { _isExcludedFromFee[account] = _isExclude; } function setOpenTransaction() external onlyOwner { require(openTransaction == false, "Already opened"); openTransaction = true; launchedBlock = block.number; } function muliAddToBlackList(address[] calldata users) external onlyOwner { for (uint i = 0; i < users.length; i++) { isBlackList[users[i]] = true; } } function muliRemoveFromBlackList(address[] calldata users) external onlyOwner { for (uint i = 0; i < users.length; i++) { isBlackList[users[i]] = false; } } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner{ swapEnabled = _enabled; swapThreshold = _amount; } receive() external payable {} function _take(uint256 tValue,address from,address to) private { _tOwned[to] = _tOwned[to].add(tValue); emit Transfer(from, to, tValue); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } struct Param{ bool takeFee; uint tTransferAmount; uint tContract; address user; } function _initParam(uint256 amount,Param memory param, uint256 currentBlock) private view { param.tContract = amount * _marketFee / 100; param.tTransferAmount = amount.sub(param.tContract); } function _takeFee(Param memory param,address from) private { if( param.tContract > 0 ){ _take(param.tContract, from, address(this)); } } function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function shouldSwapBack(address to) internal view returns (bool) { return ammPairs[to] && !inSwap && swapEnabled && balanceOf(address(this)) >= swapThreshold; } function swapBack() internal swapping { _allowances[address(this)][address(uniswapV2Router)] = swapThreshold; address[] memory path = new address[](2); path[0] = address(this); path[1] = weth; uint256 balanceBefore = address(this).balance; uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( swapThreshold, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); payable(marketAddress).transfer(amountETH); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(amount > 0, "ERC20: transfer amount must be greater than zero"); if (!_isExcludedFromFee[from] && ammPairs[to] && !inSwap) { uint256 fromBalance = balanceOf(from).mul(99).div(100); if (fromBalance < amount) { amount = fromBalance; } } uint256 currentBlock = block.number; bool takeFee; Param memory param; param.takeFee = takeFee; param.tTransferAmount = amount; if(ammPairs[from]){ param.user = to; } else { param.user = address(this); } if(ammPairs[to] && IERC20(to).totalSupply() == 0){ require(from == initPoolAddress,"Not allow init"); } if(inSwap || _isExcludedFromFee[from] || _isExcludedFromFee[to]){ return _tokenTransfer(from,to,amount,param); } require(openTransaction == true && !isBlackList[from],"Not allow"); if (ammPairs[from] == true) { if (currentBlock - launchedBlock < secondBlock + 1) { require(IERC20(usdt).balanceOf(to) > 0 , "Transaction failed"); } } if (ammPairs[from] == true || ammPairs[to] == true) { takeFee = true; if(shouldSwapBack(to)){ swapBack();} param.takeFee = takeFee; if(takeFee){ _initParam(amount,param,currentBlock); } } _tokenTransfer(from,to,amount,param); } function _tokenTransfer(address sender, address recipient, uint256 tAmount,Param memory param) private { _tOwned[sender] = _tOwned[sender].sub(tAmount); _tOwned[recipient] = _tOwned[recipient].add(param.tTransferAmount); emit Transfer(sender, recipient, param.tTransferAmount); if(param.takeFee){ _takeFee(param,sender); } } }
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":"_marketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initPoolAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"}],"name":"muliAddToBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"}],"name":"muliRemoveFromBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"_isExclude","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setOpenTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supply","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":"swapThreshold","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6005805460ff191660121790556a52b7d2dcc80cd2e400000060075560c0604052600a60808190526921b0ba102730ba34b7b760b11b60a0908152620000499160089190620004f0565b506040805180820190915260038082526210d05560ea1b60209092019182526200007691600991620004f0565b50600a80546001600160a01b03199081167315c0cb5a4cdce8ce21317b1f2fbbb85bc1ec25f417909155600b8054909116735a98fcbea516cf06857215779fd812ca3bef1b321790556001600d819055601381905560056014556015805460ff191690911790556007546127109004601655348015620000f557600080fd5b5060006200010b6001600160e01b03620004dc16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001686001600160e01b03620004e116565b600c80546001600160a01b0319166001600160a01b039283161790819055600754911660009081526001602081905260408220839055600692909255600490620001b1620004e1565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260048085528382208054871660019081179091557f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd8054881682179055600a54841683528483208054881682179055600c5490931682528382208054909616909217909455600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b81529251909493859363c45a0155938181019391829003018186803b158015620002a357600080fd5b505afa158015620002b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620002de919081019062000592565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032757600080fd5b505afa1580156200033c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000362919081019062000592565b6040518363ffffffff1660e01b815260040162000381929190620005c2565b602060405180830381600087803b1580156200039c57600080fd5b505af1158015620003b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620003d7919081019062000592565b9050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041357600080fd5b505afa15801562000428573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200044e919081019062000592565b601180546001600160a01b039283166001600160a01b031991821617909155601080548484169216821790556000908152600f6020526040808220805460ff19166001179055600c5460065491519316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620004cc91620005dc565b60405180910390a35050620005e5565b335b90565b6000546001600160a01b031690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200053357805160ff191683800117855562000563565b8280016001018555821562000563579182015b828111156200056357825182559160200191906001019062000546565b506200057192915062000575565b5090565b620004de91905b808211156200057157600081556001016200057c565b600060208284031215620005a4578081fd5b81516001600160a01b0381168114620005bb578182fd5b9392505050565b6001600160a01b0392831681529116602082015260400190565b90815260200190565b611c2180620005f56000396000f3fe6080604052600436106101dc5760003560e01c806384d6ff2f11610102578063a72905a211610095578063b428677711610064578063b4286777146104d9578063dd62ed3e146104f9578063df20fd4914610519578063f2fde38b14610539576101e3565b8063a72905a214610459578063a9059cbb14610479578063af9549e014610499578063b36d6919146104b9576101e3565b806395623641116100d157806395623641146103fa57806395d89b411461040f578063a457c2d714610424578063a4b3cf9814610444576101e3565b806384d6ff2f146103a6578063876ab8d8146103bb578063891b70d2146103d05780638da5cb5b146103e5576101e3565b806323b872dd1161017a57806349bd5a5e1161014957806349bd5a5e146103475780636ddd17131461035c57806370a0823114610371578063715018a614610391576101e3565b806323b872dd146102d0578063313ce567146102f057806339509351146103125780633fc8cef314610332576101e3565b8063095ea7b3116101b6578063095ea7b31461024a57806310b81b78146102775780631694505e1461029957806318160ddd146102bb576101e3565b80630445b667146101e8578063047fc9aa1461021357806306fdde0314610228576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610559565b60405161020a9190611aff565b60405180910390f35b34801561021f57600080fd5b506101fd61055f565b34801561023457600080fd5b5061023d610565565b60405161020a91906117ff565b34801561025657600080fd5b5061026a610265366004611716565b6105fb565b60405161020a91906117f4565b34801561028357600080fd5b50610297610292366004611740565b610619565b005b3480156102a557600080fd5b506102ae6106be565b60405161020a91906117e0565b3480156102c757600080fd5b506101fd6106cd565b3480156102dc57600080fd5b5061026a6102eb3660046116ab565b6106d3565b3480156102fc57600080fd5b50610305610760565b60405161020a9190611b78565b34801561031e57600080fd5b5061026a61032d366004611716565b610769565b34801561033e57600080fd5b506102ae6107bd565b34801561035357600080fd5b506102ae6107cc565b34801561036857600080fd5b5061026a6107db565b34801561037d57600080fd5b506101fd61038c36600461165c565b6107e4565b34801561039d57600080fd5b506102976107ff565b3480156103b257600080fd5b506101fd61087e565b3480156103c757600080fd5b506102ae610884565b3480156103dc57600080fd5b5061026a610893565b3480156103f157600080fd5b506102ae6108a3565b34801561040657600080fd5b506102ae6108b2565b34801561041b57600080fd5b5061023d6108c1565b34801561043057600080fd5b5061026a61043f366004611716565b610922565b34801561045057600080fd5b50610297610990565b34801561046557600080fd5b5061026a61047436600461165c565b610a08565b34801561048557600080fd5b5061026a610494366004611716565b610a1d565b3480156104a557600080fd5b506102976104b43660046116eb565b610a31565b3480156104c557600080fd5b5061026a6104d436600461165c565b610a91565b3480156104e557600080fd5b506102976104f4366004611740565b610aa6565b34801561050557600080fd5b506101fd610514366004611677565b610b3d565b34801561052557600080fd5b506102976105343660046117ac565b610b68565b34801561054557600080fd5b5061029761055436600461165c565b610bb4565b60165481565b60075481565b60088054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105f15780601f106105c6576101008083540402835291602001916105f1565b820191906000526020600020905b8154815290600101906020018083116105d457829003601f168201915b5050505050905090565b600061060f610608610c6a565b8484610c6e565b5060015b92915050565b610621610c6a565b6000546001600160a01b039081169116146106575760405162461bcd60e51b815260040161064e906119a2565b60405180910390fd5b60005b818110156106b95760016003600085858581811061067457fe5b9050602002016020610689919081019061165c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905560010161065a565b505050565b600e546001600160a01b031681565b60065490565b60006106e0848484610d22565b610756846106ec610c6a565b61075185604051806060016040528060288152602001611b9f602891396001600160a01b038a1660009081526002602052604081209061072a610c6a565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61113416565b610c6e565b5060019392505050565b60055460ff1690565b600061060f610776610c6a565b846107518560026000610787610c6a565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61116016565b6011546001600160a01b031681565b6010546001600160a01b031681565b60155460ff1681565b6001600160a01b031660009081526001602052604090205490565b610807610c6a565b6000546001600160a01b039081169116146108345760405162461bcd60e51b815260040161064e906119a2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600d5481565b600c546001600160a01b031681565b601154600160a01b900460ff1681565b6000546001600160a01b031690565b600a546001600160a01b031681565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105f15780601f106105c6576101008083540402835291602001916105f1565b600061060f61092f610c6a565b8461075185604051806060016040528060258152602001611bc76025913960026000610959610c6a565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61113416565b610998610c6a565b6000546001600160a01b039081169116146109c55760405162461bcd60e51b815260040161064e906119a2565b601154600160a01b900460ff16156109ef5760405162461bcd60e51b815260040161064e906119d7565b6011805460ff60a01b1916600160a01b17905543601255565b600f6020526000908152604090205460ff1681565b600061060f610a2a610c6a565b8484610d22565b610a39610c6a565b6000546001600160a01b03908116911614610a665760405162461bcd60e51b815260040161064e906119a2565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b60036020526000908152604090205460ff1681565b610aae610c6a565b6000546001600160a01b03908116911614610adb5760405162461bcd60e51b815260040161064e906119a2565b60005b818110156106b957600060036000858585818110610af857fe5b9050602002016020610b0d919081019061165c565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610ade565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610b70610c6a565b6000546001600160a01b03908116911614610b9d5760405162461bcd60e51b815260040161064e906119a2565b6015805460ff191692151592909217909155601655565b610bbc610c6a565b6000546001600160a01b03908116911614610be95760405162461bcd60e51b815260040161064e906119a2565b6001600160a01b038116610c0f5760405162461bcd60e51b815260040161064e90611852565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b038316610c945760405162461bcd60e51b815260040161064e90611a98565b6001600160a01b038216610cba5760405162461bcd60e51b815260040161064e90611898565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d15908590611aff565b60405180910390a3505050565b6001600160a01b038316610d485760405162461bcd60e51b815260040161064e90611a27565b60008111610d685760405162461bcd60e51b815260040161064e90611911565b6001600160a01b03831660009081526004602052604090205460ff16158015610da957506001600160a01b0382166000908152600f602052604090205460ff165b8015610db8575060175460ff16155b15610dfa576000610dea6064610dde6063610dd2886107e4565b9063ffffffff61118c16565b9063ffffffff6111c616565b905081811015610df8578091505b505b436000610e05611602565b811515815260208082018590526001600160a01b0387166000908152600f909152604090205460ff1615610e47576001600160a01b0385166060820152610e4e565b3060608201525b6001600160a01b0385166000908152600f602052604090205460ff168015610ee45750846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610eaa57600080fd5b505afa158015610ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ee291908101906117c8565b155b15610f1657600c546001600160a01b03878116911614610f165760405162461bcd60e51b815260040161064e906119ff565b60175460ff1680610f3f57506001600160a01b03861660009081526004602052604090205460ff165b80610f6257506001600160a01b03851660009081526004602052604090205460ff165b15610f7b57610f7386868684611208565b5050506106b9565b601154600160a01b900460ff1615156001148015610fb257506001600160a01b03861660009081526003602052604090205460ff16155b610fce5760405162461bcd60e51b815260040161064e90611adc565b6001600160a01b0386166000908152600f602052604090205460ff161515600114156110a357601454600101601254840310156110a357600b546040516370a0823160e01b81526000916001600160a01b0316906370a08231906110369089906004016117e0565b60206040518083038186803b15801561104e57600080fd5b505afa158015611062573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061108691908101906117c8565b116110a35760405162461bcd60e51b815260040161064e90611a6c565b6001600160a01b0386166000908152600f602052604090205460ff161515600114806110ec57506001600160a01b0385166000908152600f602052604090205460ff1615156001145b1561112057600191506110fe856112fc565b1561110b5761110b611350565b811580158252611120576111208482856114bd565b61112c86868684611208565b505050505050565b600081848411156111585760405162461bcd60e51b815260040161064e91906117ff565b505050900390565b6000828201838110156111855760405162461bcd60e51b815260040161064e906118da565b9392505050565b60008261119b57506000610613565b828202828482816111a857fe5b04146111855760405162461bcd60e51b815260040161064e90611961565b600061118583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f1565b6001600160a01b038416600090815260016020526040902054611231908363ffffffff61152816565b6001600160a01b038086166000908152600160209081526040808320949094558401519186168152919091205461126d9163ffffffff61116016565b60016000856001600160a01b03166001600160a01b0316815260200190815260200160002081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83602001516040516112dd9190611aff565b60405180910390a38051156112f6576112f6818561156a565b50505050565b6001600160a01b0381166000908152600f602052604081205460ff168015611327575060175460ff16155b8015611335575060155460ff165b80156106135750601654611348306107e4565b101592915050565b6017805460ff19166001179055601654306000908152600260208181526040808420600e546001600160a01b0316855282529283902093909355815181815260608082018452939092908301908038833901905050905030816000815181106113b557fe5b6001600160a01b0392831660209182029290920101526011548251911690829060019081106113e057fe5b6001600160a01b039283166020918202929092010152600e5460165460405163791ac94760e01b81524793929092169163791ac9479161142b91600090879030904290600401611b08565b600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506000611472824761152890919063ffffffff16565b600a546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156114ad573d6000803e3d6000fd5b50506017805460ff191690555050565b6064600d548402816114cb57fe5b04604083018190526114e490849063ffffffff61152816565b6020909201919091525050565b600081836115125760405162461bcd60e51b815260040161064e91906117ff565b50600083858161151e57fe5b0495945050505050565b600061118583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611134565b6040820151156115835761158382604001518230611587565b5050565b6001600160a01b0381166000908152600160205260409020546115b0908463ffffffff61116016565b6001600160a01b0380831660008181526001602052604090819020939093559151908416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d15908790611aff565b6040518060800160405280600015158152602001600081526020016000815260200160006001600160a01b031681525090565b80356001600160a01b038116811461061357600080fd5b8035801515811461061357600080fd5b60006020828403121561166d578081fd5b6111858383611635565b60008060408385031215611689578081fd5b6116938484611635565b91506116a28460208501611635565b90509250929050565b6000806000606084860312156116bf578081fd5b83356116ca81611b86565b925060208401356116da81611b86565b929592945050506040919091013590565b600080604083850312156116fd578182fd5b6117078484611635565b91506116a2846020850161164c565b60008060408385031215611728578182fd5b6117328484611635565b946020939093013593505050565b60008060208385031215611752578182fd5b823567ffffffffffffffff80821115611769578384fd5b81850186601f82011261177a578485fd5b803592508183111561178a578485fd5b866020808502830101111561179d578485fd5b60200196919550909350505050565b600080604083850312156117be578182fd5b611732848461164c565b6000602082840312156117d9578081fd5b5051919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b8181101561182b5785810183015185820160400152820161180f565b8181111561183c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526030908201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760408201526f726561746572207468616e207a65726f60801b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600e908201526d105b1c9958591e481bdc195b995960921b604082015260600190565b6020808252600e908201526d139bdd08185b1b1bddc81a5b9a5d60921b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b602080825260129082015271151c985b9cd858dd1a5bdb8819985a5b195960721b604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252600990820152684e6f7420616c6c6f7760b81b604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611b575784516001600160a01b031683529383019391830191600101611b32565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6001600160a01b0381168114611b9b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220282bc7408349f0f0a70ee6be929ef919a53849995c4024768a104fee32b0099464736f6c63430006020033
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c806384d6ff2f11610102578063a72905a211610095578063b428677711610064578063b4286777146104d9578063dd62ed3e146104f9578063df20fd4914610519578063f2fde38b14610539576101e3565b8063a72905a214610459578063a9059cbb14610479578063af9549e014610499578063b36d6919146104b9576101e3565b806395623641116100d157806395623641146103fa57806395d89b411461040f578063a457c2d714610424578063a4b3cf9814610444576101e3565b806384d6ff2f146103a6578063876ab8d8146103bb578063891b70d2146103d05780638da5cb5b146103e5576101e3565b806323b872dd1161017a57806349bd5a5e1161014957806349bd5a5e146103475780636ddd17131461035c57806370a0823114610371578063715018a614610391576101e3565b806323b872dd146102d0578063313ce567146102f057806339509351146103125780633fc8cef314610332576101e3565b8063095ea7b3116101b6578063095ea7b31461024a57806310b81b78146102775780631694505e1461029957806318160ddd146102bb576101e3565b80630445b667146101e8578063047fc9aa1461021357806306fdde0314610228576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610559565b60405161020a9190611aff565b60405180910390f35b34801561021f57600080fd5b506101fd61055f565b34801561023457600080fd5b5061023d610565565b60405161020a91906117ff565b34801561025657600080fd5b5061026a610265366004611716565b6105fb565b60405161020a91906117f4565b34801561028357600080fd5b50610297610292366004611740565b610619565b005b3480156102a557600080fd5b506102ae6106be565b60405161020a91906117e0565b3480156102c757600080fd5b506101fd6106cd565b3480156102dc57600080fd5b5061026a6102eb3660046116ab565b6106d3565b3480156102fc57600080fd5b50610305610760565b60405161020a9190611b78565b34801561031e57600080fd5b5061026a61032d366004611716565b610769565b34801561033e57600080fd5b506102ae6107bd565b34801561035357600080fd5b506102ae6107cc565b34801561036857600080fd5b5061026a6107db565b34801561037d57600080fd5b506101fd61038c36600461165c565b6107e4565b34801561039d57600080fd5b506102976107ff565b3480156103b257600080fd5b506101fd61087e565b3480156103c757600080fd5b506102ae610884565b3480156103dc57600080fd5b5061026a610893565b3480156103f157600080fd5b506102ae6108a3565b34801561040657600080fd5b506102ae6108b2565b34801561041b57600080fd5b5061023d6108c1565b34801561043057600080fd5b5061026a61043f366004611716565b610922565b34801561045057600080fd5b50610297610990565b34801561046557600080fd5b5061026a61047436600461165c565b610a08565b34801561048557600080fd5b5061026a610494366004611716565b610a1d565b3480156104a557600080fd5b506102976104b43660046116eb565b610a31565b3480156104c557600080fd5b5061026a6104d436600461165c565b610a91565b3480156104e557600080fd5b506102976104f4366004611740565b610aa6565b34801561050557600080fd5b506101fd610514366004611677565b610b3d565b34801561052557600080fd5b506102976105343660046117ac565b610b68565b34801561054557600080fd5b5061029761055436600461165c565b610bb4565b60165481565b60075481565b60088054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105f15780601f106105c6576101008083540402835291602001916105f1565b820191906000526020600020905b8154815290600101906020018083116105d457829003601f168201915b5050505050905090565b600061060f610608610c6a565b8484610c6e565b5060015b92915050565b610621610c6a565b6000546001600160a01b039081169116146106575760405162461bcd60e51b815260040161064e906119a2565b60405180910390fd5b60005b818110156106b95760016003600085858581811061067457fe5b9050602002016020610689919081019061165c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905560010161065a565b505050565b600e546001600160a01b031681565b60065490565b60006106e0848484610d22565b610756846106ec610c6a565b61075185604051806060016040528060288152602001611b9f602891396001600160a01b038a1660009081526002602052604081209061072a610c6a565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61113416565b610c6e565b5060019392505050565b60055460ff1690565b600061060f610776610c6a565b846107518560026000610787610c6a565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61116016565b6011546001600160a01b031681565b6010546001600160a01b031681565b60155460ff1681565b6001600160a01b031660009081526001602052604090205490565b610807610c6a565b6000546001600160a01b039081169116146108345760405162461bcd60e51b815260040161064e906119a2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600d5481565b600c546001600160a01b031681565b601154600160a01b900460ff1681565b6000546001600160a01b031690565b600a546001600160a01b031681565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105f15780601f106105c6576101008083540402835291602001916105f1565b600061060f61092f610c6a565b8461075185604051806060016040528060258152602001611bc76025913960026000610959610c6a565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61113416565b610998610c6a565b6000546001600160a01b039081169116146109c55760405162461bcd60e51b815260040161064e906119a2565b601154600160a01b900460ff16156109ef5760405162461bcd60e51b815260040161064e906119d7565b6011805460ff60a01b1916600160a01b17905543601255565b600f6020526000908152604090205460ff1681565b600061060f610a2a610c6a565b8484610d22565b610a39610c6a565b6000546001600160a01b03908116911614610a665760405162461bcd60e51b815260040161064e906119a2565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b60036020526000908152604090205460ff1681565b610aae610c6a565b6000546001600160a01b03908116911614610adb5760405162461bcd60e51b815260040161064e906119a2565b60005b818110156106b957600060036000858585818110610af857fe5b9050602002016020610b0d919081019061165c565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610ade565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610b70610c6a565b6000546001600160a01b03908116911614610b9d5760405162461bcd60e51b815260040161064e906119a2565b6015805460ff191692151592909217909155601655565b610bbc610c6a565b6000546001600160a01b03908116911614610be95760405162461bcd60e51b815260040161064e906119a2565b6001600160a01b038116610c0f5760405162461bcd60e51b815260040161064e90611852565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b038316610c945760405162461bcd60e51b815260040161064e90611a98565b6001600160a01b038216610cba5760405162461bcd60e51b815260040161064e90611898565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d15908590611aff565b60405180910390a3505050565b6001600160a01b038316610d485760405162461bcd60e51b815260040161064e90611a27565b60008111610d685760405162461bcd60e51b815260040161064e90611911565b6001600160a01b03831660009081526004602052604090205460ff16158015610da957506001600160a01b0382166000908152600f602052604090205460ff165b8015610db8575060175460ff16155b15610dfa576000610dea6064610dde6063610dd2886107e4565b9063ffffffff61118c16565b9063ffffffff6111c616565b905081811015610df8578091505b505b436000610e05611602565b811515815260208082018590526001600160a01b0387166000908152600f909152604090205460ff1615610e47576001600160a01b0385166060820152610e4e565b3060608201525b6001600160a01b0385166000908152600f602052604090205460ff168015610ee45750846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610eaa57600080fd5b505afa158015610ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ee291908101906117c8565b155b15610f1657600c546001600160a01b03878116911614610f165760405162461bcd60e51b815260040161064e906119ff565b60175460ff1680610f3f57506001600160a01b03861660009081526004602052604090205460ff165b80610f6257506001600160a01b03851660009081526004602052604090205460ff165b15610f7b57610f7386868684611208565b5050506106b9565b601154600160a01b900460ff1615156001148015610fb257506001600160a01b03861660009081526003602052604090205460ff16155b610fce5760405162461bcd60e51b815260040161064e90611adc565b6001600160a01b0386166000908152600f602052604090205460ff161515600114156110a357601454600101601254840310156110a357600b546040516370a0823160e01b81526000916001600160a01b0316906370a08231906110369089906004016117e0565b60206040518083038186803b15801561104e57600080fd5b505afa158015611062573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061108691908101906117c8565b116110a35760405162461bcd60e51b815260040161064e90611a6c565b6001600160a01b0386166000908152600f602052604090205460ff161515600114806110ec57506001600160a01b0385166000908152600f602052604090205460ff1615156001145b1561112057600191506110fe856112fc565b1561110b5761110b611350565b811580158252611120576111208482856114bd565b61112c86868684611208565b505050505050565b600081848411156111585760405162461bcd60e51b815260040161064e91906117ff565b505050900390565b6000828201838110156111855760405162461bcd60e51b815260040161064e906118da565b9392505050565b60008261119b57506000610613565b828202828482816111a857fe5b04146111855760405162461bcd60e51b815260040161064e90611961565b600061118583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f1565b6001600160a01b038416600090815260016020526040902054611231908363ffffffff61152816565b6001600160a01b038086166000908152600160209081526040808320949094558401519186168152919091205461126d9163ffffffff61116016565b60016000856001600160a01b03166001600160a01b0316815260200190815260200160002081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83602001516040516112dd9190611aff565b60405180910390a38051156112f6576112f6818561156a565b50505050565b6001600160a01b0381166000908152600f602052604081205460ff168015611327575060175460ff16155b8015611335575060155460ff165b80156106135750601654611348306107e4565b101592915050565b6017805460ff19166001179055601654306000908152600260208181526040808420600e546001600160a01b0316855282529283902093909355815181815260608082018452939092908301908038833901905050905030816000815181106113b557fe5b6001600160a01b0392831660209182029290920101526011548251911690829060019081106113e057fe5b6001600160a01b039283166020918202929092010152600e5460165460405163791ac94760e01b81524793929092169163791ac9479161142b91600090879030904290600401611b08565b600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050506000611472824761152890919063ffffffff16565b600a546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156114ad573d6000803e3d6000fd5b50506017805460ff191690555050565b6064600d548402816114cb57fe5b04604083018190526114e490849063ffffffff61152816565b6020909201919091525050565b600081836115125760405162461bcd60e51b815260040161064e91906117ff565b50600083858161151e57fe5b0495945050505050565b600061118583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611134565b6040820151156115835761158382604001518230611587565b5050565b6001600160a01b0381166000908152600160205260409020546115b0908463ffffffff61116016565b6001600160a01b0380831660008181526001602052604090819020939093559151908416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d15908790611aff565b6040518060800160405280600015158152602001600081526020016000815260200160006001600160a01b031681525090565b80356001600160a01b038116811461061357600080fd5b8035801515811461061357600080fd5b60006020828403121561166d578081fd5b6111858383611635565b60008060408385031215611689578081fd5b6116938484611635565b91506116a28460208501611635565b90509250929050565b6000806000606084860312156116bf578081fd5b83356116ca81611b86565b925060208401356116da81611b86565b929592945050506040919091013590565b600080604083850312156116fd578182fd5b6117078484611635565b91506116a2846020850161164c565b60008060408385031215611728578182fd5b6117328484611635565b946020939093013593505050565b60008060208385031215611752578182fd5b823567ffffffffffffffff80821115611769578384fd5b81850186601f82011261177a578485fd5b803592508183111561178a578485fd5b866020808502830101111561179d578485fd5b60200196919550909350505050565b600080604083850312156117be578182fd5b611732848461164c565b6000602082840312156117d9578081fd5b5051919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b8181101561182b5785810183015185820160400152820161180f565b8181111561183c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526030908201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760408201526f726561746572207468616e207a65726f60801b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600e908201526d105b1c9958591e481bdc195b995960921b604082015260600190565b6020808252600e908201526d139bdd08185b1b1bddc81a5b9a5d60921b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b602080825260129082015271151c985b9cd858dd1a5bdb8819985a5b195960721b604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252600990820152684e6f7420616c6c6f7760b81b604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611b575784516001600160a01b031683529383019391830191600101611b32565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6001600160a01b0381168114611b9b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220282bc7408349f0f0a70ee6be929ef919a53849995c4024768a104fee32b0099464736f6c63430006020033
Deployed Bytecode Sourcemap
15183:9299:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16468:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16468:45:0;;;:::i;:::-;;;;;;;;;;;;;;;;15604:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15604:50:0;;;:::i;17456:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17456:83:0;;;:::i;:::-;;;;;;;;18287:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18287:161:0;;;;;;;;:::i;:::-;;;;;;;;19628:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19628:186:0;;;;;;;;:::i;:::-;;16131:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16131:41:0;;;:::i;:::-;;;;;;;;17733:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17733:95:0;;;:::i;18456:313::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18456:313:0;;;;;;;;:::i;17642:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17642:83:0;;;:::i;:::-;;;;;;;;18777:218;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18777:218:0;;;;;;;;:::i;16264:19::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16264:19:0;;;:::i;16230:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16230:27:0;;;:::i;16431:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16431:30:0;;;:::i;17836:117::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17836:117:0;;;;;;;;:::i;5926:148::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5926:148:0;;;:::i;16093:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16093:29:0;;;:::i;16054:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16054:30:0;;;:::i;16292:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16292:27:0;;;:::i;5284:79::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5284:79:0;;;:::i;15744:73::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15744:73:0;;;:::i;17547:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17547:87:0;;;:::i;19003:269::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19003:269:0;;;;;;;;:::i;19429:191::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19429:191:0;;;:::i;16181:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16181:40:0;;;;;;;;:::i;17961:167::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17961:167:0;;;;;;;;:::i;19284:137::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19284:137:0;;;;;;;;:::i;15425:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15425:43:0;;;;;;;;:::i;19822:192::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19822:192:0;;;;;;;;:::i;18136:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18136:143:0;;;;;;;;:::i;20022:154::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20022:154:0;;;;;;;;:::i;6229:244::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6229:244:0;;;;;;;;:::i;16468:45::-;;;;:::o;15604:50::-;;;;:::o;17456:83::-;17526:5;17519:12;;;;;;;;-1:-1:-1;;17519:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17493:13;;17519:12;;17526:5;;17519:12;;17526:5;17519:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17456:83;:::o;18287:161::-;18362:4;18379:39;18388:12;:10;:12::i;:::-;18402:7;18411:6;18379:8;:39::i;:::-;-1:-1:-1;18436:4:0;18287:161;;;;;:::o;19628:186::-;5506:12;:10;:12::i;:::-;5496:6;;-1:-1:-1;;;;;5496:6:0;;;:22;;;5488:67;;;;-1:-1:-1;;;5488:67:0;;;;;;;;;;;;;;;;;19717:6:::1;19712:95;19729:16:::0;;::::1;19712:95;;;19791:4;19767:11;:21;19779:5;;19785:1;19779:8;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;19767:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19767:21:0;:28;;-1:-1:-1;;19767:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;19747:3:0::1;19712:95;;;;19628:186:::0;;:::o;16131:41::-;;;-1:-1:-1;;;;;16131:41:0;;:::o;17733:95::-;17813:7;;17733:95;:::o;18456:313::-;18554:4;18571:36;18581:6;18589:9;18600:6;18571:9;:36::i;:::-;18618:121;18627:6;18635:12;:10;:12::i;:::-;18649:89;18687:6;18649:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18649:19:0;;;;;;:11;:19;;;;;;18669:12;:10;:12::i;:::-;-1:-1:-1;;;;;18649:33:0;;;;;;;;;;;;-1:-1:-1;18649:33:0;;;:89;;:37;:89;:::i;:::-;18618:8;:121::i;:::-;-1:-1:-1;18757:4:0;18456:313;;;;;:::o;17642:83::-;17708:9;;;;17642:83;:::o;18777:218::-;18865:4;18882:83;18891:12;:10;:12::i;:::-;18905:7;18914:50;18953:10;18914:11;:25;18926:12;:10;:12::i;:::-;-1:-1:-1;;;;;18914:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;18914:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;16264:19::-;;;-1:-1:-1;;;;;16264:19:0;;:::o;16230:27::-;;;-1:-1:-1;;;;;16230:27:0;;:::o;16431:30::-;;;;;;:::o;17836:117::-;-1:-1:-1;;;;;17929:16:0;17902:7;17929:16;;;:7;:16;;;;;;;17836:117::o;5926:148::-;5506:12;:10;:12::i;:::-;5496:6;;-1:-1:-1;;;;;5496:6:0;;;:22;;;5488:67;;;;-1:-1:-1;;;5488:67:0;;;;;;;;;6033:1:::1;6017:6:::0;;5996:40:::1;::::0;-1:-1:-1;;;;;6017:6:0;;::::1;::::0;5996:40:::1;::::0;6033:1;;5996:40:::1;6064:1;6047:19:::0;;-1:-1:-1;;;;;;6047:19:0::1;::::0;;5926:148::o;16093:29::-;;;;:::o;16054:30::-;;;-1:-1:-1;;;;;16054:30:0;;:::o;16292:27::-;;;-1:-1:-1;;;16292:27:0;;;;;:::o;5284:79::-;5322:7;5349:6;-1:-1:-1;;;;;5349:6:0;5284:79;:::o;15744:73::-;;;-1:-1:-1;;;;;15744:73:0;;:::o;17547:87::-;17619:7;17612:14;;;;;;;;-1:-1:-1;;17612:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17586:13;;17612:14;;17619:7;;17612:14;;17619:7;17612:14;;;;;;;;;;;;;;;;;;;;;;;;19003:269;19096:4;19113:129;19122:12;:10;:12::i;:::-;19136:7;19145:96;19184:15;19145:96;;;;;;;;;;;;;;;;;:11;:25;19157:12;:10;:12::i;:::-;-1:-1:-1;;;;;19145:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;19145:25:0;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;19429:191::-;5506:12;:10;:12::i;:::-;5496:6;;-1:-1:-1;;;;;5496:6:0;;;:22;;;5488:67;;;;-1:-1:-1;;;5488:67:0;;;;;;;;;19497:15:::1;::::0;-1:-1:-1;;;19497:15:0;::::1;;;:24;19489:51;;;;-1:-1:-1::0;;;19489:51:0::1;;;;;;;;;19551:15;:22:::0;;-1:-1:-1;;;;19551:22:0::1;-1:-1:-1::0;;;19551:22:0::1;::::0;;19600:12:::1;19584:13;:28:::0;19429:191::o;16181:40::-;;;;;;;;;;;;;;;:::o;17961:167::-;18039:4;18056:42;18066:12;:10;:12::i;:::-;18080:9;18091:6;18056:9;:42::i;19284:137::-;5506:12;:10;:12::i;:::-;5496:6;;-1:-1:-1;;;;;5496:6:0;;;:22;;;5488:67;;;;-1:-1:-1;;;5488:67:0;;;;;;;;;-1:-1:-1;;;;;19373:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:40;;-1:-1:-1;;19373:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19284:137::o;15425:43::-;;;;;;;;;;;;;;;:::o;19822:192::-;5506:12;:10;:12::i;:::-;5496:6;;-1:-1:-1;;;;;5496:6:0;;;:22;;;5488:67;;;;-1:-1:-1;;;5488:67:0;;;;;;;;;19916:6:::1;19911:96;19928:16:::0;;::::1;19911:96;;;19990:5;19966:11;:21;19978:5;;19984:1;19978:8;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;19966:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19966:21:0;:29;;-1:-1:-1;;19966:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;19946:3:0::1;19911:96;;18136:143:::0;-1:-1:-1;;;;;18244:18:0;;;18217:7;18244:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18136:143::o;20022:154::-;5506:12;:10;:12::i;:::-;5496:6;;-1:-1:-1;;;;;5496:6:0;;;:22;;;5488:67;;;;-1:-1:-1;;;5488:67:0;;;;;;;;;20112:11:::1;:22:::0;;-1:-1:-1;;20112:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;20145:13:::1;:23:::0;20022:154::o;6229:244::-;5506:12;:10;:12::i;:::-;5496:6;;-1:-1:-1;;;;;5496:6:0;;;:22;;;5488:67;;;;-1:-1:-1;;;5488:67:0;;;;;;;;;-1:-1:-1;;;;;6318:22:0;::::1;6310:73;;;;-1:-1:-1::0;;;6310:73:0::1;;;;;;;;;6420:6;::::0;;6399:38:::1;::::0;-1:-1:-1;;;;;6399:38:0;;::::1;::::0;6420:6;::::1;::::0;6399:38:::1;::::0;::::1;6448:6;:17:::0;;-1:-1:-1;;;;;;6448:17:0::1;-1:-1:-1::0;;;;;6448:17:0;;;::::1;::::0;;;::::1;::::0;;6229:244::o;3895:106::-;3983:10;3895:106;:::o;20394:337::-;-1:-1:-1;;;;;20487:19:0;;20479:68;;;;-1:-1:-1;;;20479:68:0;;;;;;;;;-1:-1:-1;;;;;20566:21:0;;20558:68;;;;-1:-1:-1;;;20558:68:0;;;;;;;;;-1:-1:-1;;;;;20639:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;20691:32;;;;;20669:6;;20691:32;;;;;;;;;;20394:337;;;:::o;22331:1753::-;-1:-1:-1;;;;;22453:18:0;;22445:68;;;;-1:-1:-1;;;22445:68:0;;;;;;;;;22541:1;22532:6;:10;22524:71;;;;-1:-1:-1;;;22524:71:0;;;;;;;;;-1:-1:-1;;;;;22613:24:0;;;;;;:18;:24;;;;;;;;22612:25;:41;;;;-1:-1:-1;;;;;;22641:12:0;;;;;;:8;:12;;;;;;;;22612:41;:52;;;;-1:-1:-1;22658:6:0;;;;22657:7;22612:52;22608:234;;;22681:19;22703:32;22731:3;22703:23;22723:2;22703:15;22713:4;22703:9;:15::i;:::-;:19;:23;:19;:23;:::i;:::-;:27;:32;:27;:32;:::i;:::-;22681:54;;22768:6;22754:11;:20;22750:81;;;22804:11;22795:20;;22750:81;22608:234;;22877:12;22854:20;22923:18;;:::i;:::-;22952:23;;;;;22986:21;;;;:30;;;-1:-1:-1;;;;;23032:14:0;;22952:13;23032:14;;;:8;:14;;;;;;;;;23029:119;;;-1:-1:-1;;;;;23062:15:0;;:10;;;:15;23029:119;;;23131:4;23110:10;;;:26;23029:119;-1:-1:-1;;;;;23163:12:0;;;;;;:8;:12;;;;;;;;:45;;;;;23186:2;-1:-1:-1;;;;;23179:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23179:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23179:24:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;23179:24:0;;;;;;;;;:29;23163:45;23160:125;;;23240:15;;-1:-1:-1;;;;;23232:23:0;;;23240:15;;23232:23;23224:49;;;;-1:-1:-1;;;23224:49:0;;;;;;;;;23300:6;;;;;:34;;-1:-1:-1;;;;;;23310:24:0;;;;;;:18;:24;;;;;;;;23300:34;:60;;;-1:-1:-1;;;;;;23338:22:0;;;;;;:18;:22;;;;;;;;23300:60;23297:135;;;23383:36;23398:4;23403:2;23406:6;23413:5;23383:14;:36::i;:::-;23376:43;;;;;23297:135;23452:15;;-1:-1:-1;;;23452:15:0;;;;:23;;23471:4;23452:23;:45;;;;-1:-1:-1;;;;;;23480:17:0;;;;;;:11;:17;;;;;;;;23479:18;23452:45;23444:66;;;;-1:-1:-1;;;23444:66:0;;;;;;;;;-1:-1:-1;;;;;23527:14:0;;;;;;:8;:14;;;;;;;;:22;;:14;:22;23523:203;;;23601:11;;23615:1;23601:15;23585:13;;23570:12;:28;:46;23566:149;;;23652:4;;23645:26;;-1:-1:-1;;;23645:26:0;;23674:1;;-1:-1:-1;;;;;23652:4:0;;23645:22;;:26;;23668:2;;23645:26;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23645:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23645:26:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;23645:26:0;;;;;;;;;:30;23637:62;;;;-1:-1:-1;;;23637:62:0;;;;;;;;;-1:-1:-1;;;;;23742:14:0;;;;;;:8;:14;;;;;;;;:22;;:14;:22;;:46;;-1:-1:-1;;;;;;23768:12:0;;;;;;:8;:12;;;;;;;;:20;;:12;:20;23742:46;23738:282;;;23815:4;23805:14;;23839:18;23854:2;23839:14;:18::i;:::-;23836:36;;;23860:10;:8;:10::i;:::-;23888:23;;;;;;23926:83;;23956:37;23967:6;23974:5;23980:12;23956:10;:37::i;:::-;24040:36;24055:4;24060:2;24063:6;24070:5;24040:14;:36::i;:::-;22331:1753;;;;;;:::o;8226:192::-;8312:7;8348:12;8340:6;;;;8332:29;;;;-1:-1:-1;;;8332:29:0;;;;;;;;;;-1:-1:-1;;;8384:5:0;;;8226:192::o;7339:181::-;7397:7;7429:5;;;7453:6;;;;7445:46;;;;-1:-1:-1;;;7445:46:0;;;;;;;;;7511:1;7339:181;-1:-1:-1;;;7339:181:0:o;8669:471::-;8727:7;8972:6;8968:47;;-1:-1:-1;9002:1:0;8995:8;;8968:47;9039:5;;;9043:1;9039;:5;:1;9063:5;;;;;:10;9055:56;;;;-1:-1:-1;;;9055:56:0;;;;;;;;9608:132;9666:7;9693:39;9697:1;9700;9693:39;;;;;;;;;;;;;;;;;:3;:39::i;24092:387::-;-1:-1:-1;;;;;24224:15:0;;;;;;:7;:15;;;;;;:28;;24244:7;24224:28;:19;:28;:::i;:::-;-1:-1:-1;;;;;24206:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;24307:21;;;24284:18;;;;;;;;;;:45;;;:22;:45;:::i;:::-;24263:7;:18;24271:9;-1:-1:-1;;;;;24263:18:0;-1:-1:-1;;;;;24263:18:0;;;;;;;;;;;;:66;;;;24362:9;-1:-1:-1;;;;;24345:50:0;24354:6;-1:-1:-1;;;;;24345:50:0;;24373:5;:21;;;24345:50;;;;;;;;;;;;;;;24409:13;;24406:66;;;24438:22;24447:5;24453:6;24438:8;:22::i;:::-;24092:387;;;;:::o;21476:201::-;-1:-1:-1;;;;;21559:12:0;;21535:4;21559:12;;;:8;:12;;;;;;;;:32;;;;-1:-1:-1;21585:6:0;;;;21584:7;21559:32;:56;;;;-1:-1:-1;21604:11:0;;;;21559:56;:110;;;;;21656:13;;21628:24;21646:4;21628:9;:24::i;:::-;:41;;21552:117;21476:201;-1:-1:-1;;21476:201:0:o;21685:638::-;16559:6;:13;;-1:-1:-1;;16559:13:0;16568:4;16559:13;;;21789::::1;::::0;21754:4:::1;-1:-1:-1::0;21734:26:0;;;:11:::1;:26;::::0;;;;;;;21769:15:::1;::::0;-1:-1:-1;;;;;21769:15:0::1;21734:52:::0;;;;;;;;:68;;;;21847:16;;;;;21823:21:::1;21847:16:::0;;::::1;::::0;;21823:21;21847:16;;;;::::1;::::0;21734:26;105:10:-1::1;21847:16:0::0;88:34:-1::1;136:17;::::0;-1:-1;21847:16:0::1;21823:40;;21892:4;21874;21879:1;21874:7;;;;;;;;-1:-1:-1::0;;;;;21874:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;21918:4:::1;::::0;21908:7;;21918:4;::::1;::::0;21908;;21918;;21908:7;::::1;;;;;-1:-1:-1::0;;;;;21908:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;21991:15:::1;::::0;22072:13:::1;::::0;21991:198:::1;::::0;-1:-1:-1;;;21991:198:0;;21957:21:::1;::::0;21991:15;;;::::1;::::0;:66:::1;::::0;:198:::1;::::0;21933:21:::1;::::0;22116:4;;22143::::1;::::0;22163:15:::1;::::0;21991:198:::1;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;21991:198:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;21991:198:0;;;;22202:17;22222:40;22248:13;22222:21;:25;;:40;;;;:::i;:::-;22281:13;::::0;22273:42:::1;::::0;22202:60;;-1:-1:-1;;;;;;22281:13:0::1;::::0;22273:42;::::1;;;::::0;22202:60;;22281:13:::1;22273:42:::0;22281:13;22273:42;22202:60;22281:13;22273:42;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;16577:6:0;:14;;-1:-1:-1;;16577:14:0;;;-1:-1:-1;;21685:638:0:o;20870:214::-;21011:3;20998:10;;20989:6;:19;:25;;;;;;20971:15;;;:43;;;21049:27;;:6;;:27;:10;:27;:::i;:::-;21025:21;;;;:51;;;;-1:-1:-1;;20870:214:0:o;10228:345::-;10314:7;10416:12;10409:5;10401:28;;;;-1:-1:-1;;;10401:28:0;;;;;;;;;;;10440:9;10456:1;10452;:5;;;;;;;10228:345;-1:-1:-1;;;;;10228:345:0:o;7795:136::-;7853:7;7880:43;7884:1;7887;7880:43;;;;;;;;;;;;;;;;;:3;:43::i;21092:172::-;21166:15;;;;:19;21162:95;;21202:43;21208:5;:15;;;21225:4;21239;21202:5;:43::i;:::-;21092:172;;:::o;20225:161::-;-1:-1:-1;;;;;20313:11:0;;;;;;:7;:11;;;;;;:23;;20329:6;20313:23;:15;:23;:::i;:::-;-1:-1:-1;;;;;20299:11:0;;;;;;;:7;:11;;;;;;;:37;;;;20352:26;;;;;;;;;;20371:6;;20352:26;;15183:9299;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15183:9299:0;;;;;:::o;5:130:-1:-;72:20;;-1:-1;;;;;19237:54;;21016:35;;21006:2;;21065:1;;21055:12;520:124;584:20;;19149:13;;19142:21;21137:32;;21127:2;;21183:1;;21173:12;929:241;;1033:2;1021:9;1012:7;1008:23;1004:32;1001:2;;;-1:-1;;1039:12;1001:2;1101:53;1146:7;1122:22;1101:53;;1177:366;;;1298:2;1286:9;1277:7;1273:23;1269:32;1266:2;;;-1:-1;;1304:12;1266:2;1366:53;1411:7;1387:22;1366:53;;;1356:63;;1474:53;1519:7;1456:2;1499:9;1495:22;1474:53;;;1464:63;;1260:283;;;;;;1550:491;;;;1688:2;1676:9;1667:7;1663:23;1659:32;1656:2;;;-1:-1;;1694:12;1656:2;85:6;72:20;97:33;124:5;97:33;;;1746:63;-1:-1;1846:2;1885:22;;72:20;97:33;72:20;97:33;;;1650:391;;1854:63;;-1:-1;;;1954:2;1993:22;;;;718:20;;1650:391;2048:360;;;2166:2;2154:9;2145:7;2141:23;2137:32;2134:2;;;-1:-1;;2172:12;2134:2;2234:53;2279:7;2255:22;2234:53;;;2224:63;;2342:50;2384:7;2324:2;2364:9;2360:22;2342:50;;2415:366;;;2536:2;2524:9;2515:7;2511:23;2507:32;2504:2;;;-1:-1;;2542:12;2504:2;2604:53;2649:7;2625:22;2604:53;;;2594:63;2694:2;2733:22;;;;718:20;;-1:-1;;;2498:283;2788:397;;;2927:2;2915:9;2906:7;2902:23;2898:32;2895:2;;;-1:-1;;2933:12;2895:2;2991:17;2978:31;3029:18;;3021:6;3018:30;3015:2;;;-1:-1;;3051:12;3015:2;3152:6;3141:9;3137:22;290:3;283:4;275:6;271:17;267:27;257:2;;-1:-1;;298:12;257:2;341:6;328:20;318:30;;3029:18;360:6;357:30;354:2;;;-1:-1;;390:12;354:2;485:3;2927:2;;469:6;465:17;426:6;451:32;;448:41;445:2;;;-1:-1;;492:12;445:2;2927;422:17;;3079:90;;-1:-1;2889:296;;-1:-1;;;;2889:296;3192:360;;;3310:2;3298:9;3289:7;3285:23;3281:32;3278:2;;;-1:-1;;3316:12;3278:2;3378:50;3420:7;3396:22;3378:50;;3559:263;;3674:2;3662:9;3653:7;3649:23;3645:32;3642:2;;;-1:-1;;3680:12;3642:2;-1:-1;866:13;;3636:186;-1:-1;3636:186;10580:213;-1:-1;;;;;19237:54;;;;4221:37;;10698:2;10683:18;;10669:124;10800:201;19149:13;;19142:21;5184:34;;10912:2;10897:18;;10883:118;11526:301;;11664:2;;11685:17;11678:47;5868:5;18341:12;18757:6;11664:2;11653:9;11649:18;18745:19;-1:-1;20648:101;20662:6;20659:1;20656:13;20648:101;;;20729:11;;;;;20723:18;20710:11;;;18785:14;20710:11;20703:39;20677:10;;20648:101;;;20764:6;20761:1;20758:13;20755:2;;;-1:-1;18785:14;20820:6;11653:9;20811:16;;20804:27;20755:2;-1:-1;20936:7;20920:14;-1:-1;;20916:28;6026:39;;;;18785:14;6026:39;;11635:192;-1:-1;;;11635:192;11834:407;12025:2;12039:47;;;6302:2;12010:18;;;18745:19;6338:34;18785:14;;;6318:55;-1:-1;;;6393:12;;;6386:30;6435:12;;;11996:245;12248:407;12439:2;12453:47;;;6686:2;12424:18;;;18745:19;6722:34;18785:14;;;6702:55;-1:-1;;;6777:12;;;6770:26;6815:12;;;12410:245;12662:407;12853:2;12867:47;;;7066:2;12838:18;;;18745:19;7102:29;18785:14;;;7082:50;7151:12;;;12824:245;13076:407;13267:2;13281:47;;;7402:2;13252:18;;;18745:19;7438:34;18785:14;;;7418:55;-1:-1;;;7493:12;;;7486:40;7545:12;;;13238:245;13490:407;13681:2;13695:47;;;7796:2;13666:18;;;18745:19;7832:34;18785:14;;;7812:55;-1:-1;;;7887:12;;;7880:25;7924:12;;;13652:245;13904:407;14095:2;14109:47;;;14080:18;;;18745:19;8211:34;18785:14;;;8191:55;8265:12;;;14066:245;14318:407;14509:2;14523:47;;;8516:2;14494:18;;;18745:19;-1:-1;;;18785:14;;;8532:37;8588:12;;;14480:245;14732:407;14923:2;14937:47;;;8839:2;14908:18;;;18745:19;-1:-1;;;18785:14;;;8855:37;8911:12;;;14894:245;15146:407;15337:2;15351:47;;;9162:2;15322:18;;;18745:19;9198:34;18785:14;;;9178:55;-1:-1;;;9253:12;;;9246:29;9294:12;;;15308:245;15560:407;15751:2;15765:47;;;9545:2;15736:18;;;18745:19;-1:-1;;;18785:14;;;9561:41;9621:12;;;15722:245;15974:407;16165:2;16179:47;;;9872:2;16150:18;;;18745:19;9908:34;18785:14;;;9888:55;-1:-1;;;9963:12;;;9956:28;10003:12;;;16136:245;16388:407;16579:2;16593:47;;;10254:1;16564:18;;;18745:19;-1:-1;;;18785:14;;;10269:32;10320:12;;;16550:245;16802:213;10417:37;;;16920:2;16905:18;;16891:124;17022:839;;17318:3;17307:9;17303:19;10447:5;10424:3;10417:37;17491:2;20296:24;17491:2;17480:9;17476:18;5653:58;17318:3;17528:2;17517:9;17513:18;17506:48;17568:108;4614:5;18341:12;18757:6;18752:3;18745:19;18785:14;17307:9;18785:14;4626:93;;17491:2;4790:5;18195:14;4802:21;;-1:-1;4829:260;4854:6;4851:1;4848:13;4829:260;;;4915:13;;-1:-1;;;;;19237:54;4090:58;;18600:14;;;;3983;;;;19248:42;4869:9;4829:260;;;-1:-1;;;;;;;19237:54;;;;17763:2;17748:18;;4090:58;-1:-1;;;17846:3;17831:19;10417:37;17560:116;17289:572;-1:-1;;;17289:572;17868:205;19453:4;19442:16;;;;10533:35;;17982:2;17967:18;;17953:120;20957:117;-1:-1;;;;;19237:54;;21016:35;;21006:2;;21065:1;;21055:12;21006:2;21000:74;
Swarm Source
ipfs://282bc7408349f0f0a70ee6be929ef919a53849995c4024768a104fee32b00994
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.