ERC-20
Overview
Max Total Supply
100,000,000 SALVA
Holders
53
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,047,596.009428323 SALVAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SALVA
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-18 */ // SPDX-License-Identifier: MIT /* Website: https://www.salvagereth.vip Twitter: https://twitter.com/salva_erc Telegram: https://t.me/salva_erc **/ pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; address private creator; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual 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 { _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); } } 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); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @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 ); } 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); } 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; 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; } function decimals() public view virtual override returns (uint8) { return 9; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } 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; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } 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; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } 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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { // 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 (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } ////// src/IUniswapV2Factory.sol /* pragma solidity 0.8.10; */ /* pragma experimental ABIEncoderV2; */ interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } ////// src/IUniswapV2Pair.sol /* pragma solidity 0.8.10; */ /* pragma experimental ABIEncoderV2; */ interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn( address to ) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } library Address { function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } } contract SALVA is IERC20, Ownable { using SafeMath for uint256; using Address for address payable; string private constant _name = "Salvager"; string private constant _symbol = "SALVA"; uint8 private constant _decimals = 9; address private taxWallet = 0x5116C2261B70F33256C3F12B44bEaa0EdE80B9A7; uint256 private _totalSupply = 100_000_000 * 10 ** _decimals; uint256 private _maxWallet = _totalSupply * 20 / 1000; uint256 private _maxBuyAmount = _totalSupply * 20 / 1000; uint256 private _maxSellAmount = _totalSupply * 20 / 1000; uint256 private _autoSwap = 20_000 * 10 ** _decimals; uint256 private _totalBurned; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isBurn; mapping(address => bool) private automatedMarketMakerPairs; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; address private _owner; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; event Burn(address indexed burner, uint256 amount); bool private _enableSwap = false; bool private _launch = false; bool private _swapping = false; uint256 private amountBuyRate = 5; uint256 private amountSellRate = 5; constructor() { _owner = msg.sender; uint256 tsupply = _totalSupply; _mint(msg.sender, tsupply); setExcludedFromFee(_owner, true); setExcludedFromFee(address(this), true); setExcludedFromFee(taxWallet, true); } function addLiquidityETH() external payable onlyOwner { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); // kovan uni // Create a uniswap pair for this new token uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), ~uint256(0)); _setAutomatedMarketMakerPair(uniswapV2Pair, true); uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); } function getOwner() public view returns (address) { return owner(); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function totalBurned() public view returns (uint256) { return _totalBurned; } function isExcludedFromFee(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function isBurnAcess(address account) public view returns (bool) { return _isBurn[account]; } function _mint(address account, uint256 amount) private { _balances[account] = amount; emit Transfer(address(0), account, amount); } function getBuyAndSellRates() public view returns ( uint256 totalBuyRate, uint256 maxWallet, uint256 maxBuyAmount, uint256 totalSellRate, uint256 maxSellAmount ) { totalBuyRate = amountBuyRate; maxWallet = _maxWallet; maxBuyAmount = _maxBuyAmount; totalSellRate = amountSellRate; maxSellAmount = _maxSellAmount; } function transfer( address recipient, uint256 amount ) public override returns (bool) { if ( recipient != uniswapV2Pair && recipient != owner() && !_isExcludedFromFee[recipient] ) { require( _balances[recipient] + amount <= _maxWallet, "recipient wallet balance exceeds the maximum limit" ); } _transfer(msg.sender, 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(msg.sender, spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount); _transfer(sender, recipient, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "MyToken: approve from the zero address"); require(spender != address(0), "MyToken: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address sender, address recipient, uint256 amount ) private { require(sender != address(0), "transfer from the zero address"); require(recipient != address(0), "transfer to the zero address"); require(amount > 0, "transfer amount must be greater than zero"); if ( !automatedMarketMakerPairs[recipient] && recipient != owner() && !_isExcludedFromFee[recipient] ) { require( _balances[recipient] + amount <= _maxWallet, "recipient wallet balance exceeds the maximum limit" ); } if (!_launch) { require( _isExcludedFromFee[sender] || _isExcludedFromFee[recipient], "we not launch yet" ); } if (_swapping || !_launch) { _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } else { bool _autoTaxes = true; uint256 totalTaxAmount = 0; uint256 transferAmount = amount; //sell if ( automatedMarketMakerPairs[recipient] && !_isExcludedFromFee[sender] && sender != owner() ) { require( amount <= _maxSellAmount, "Sell amount exceeds max limit" ); if (_enableSwap && balanceOf(address(this)) > 0) { autoSwap(); } } //buy if ( automatedMarketMakerPairs[sender] && !_isExcludedFromFee[recipient] && recipient != owner() ) { require( amount <= _maxBuyAmount, "Buy amount exceeds max limit" ); } if (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) { _autoTaxes = false; if ( _isExcludedFromFee[sender] && !automatedMarketMakerPairs[recipient] ) { transferAmount = amount - transferAmount; } } if (_autoTaxes) { if (automatedMarketMakerPairs[sender]) { totalTaxAmount = (amount * amountBuyRate) / 100; transferAmount = amount - totalTaxAmount; } else if (automatedMarketMakerPairs[recipient]) { totalTaxAmount = (amount * amountSellRate) / 100; transferAmount = amount - totalTaxAmount; } if (totalTaxAmount > 0) { _balances[address(this)] = _balances[address(this)].add( totalTaxAmount ); } _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(transferAmount); emit Transfer(sender, recipient, transferAmount); emit Transfer(sender, address(this), totalTaxAmount); } else { _balances[sender] = _balances[sender].sub(transferAmount); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } } } function swapTokensForEth(uint256 tokenAmount) private { // Set up the contract address and the token to be swapped address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); // Approve the transfer of tokens to the contract address _approve(address(this), address(uniswapV2Router), tokenAmount); // Make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function autoSwap() private { _swapping = true; uint256 caBalance = balanceOf(address(this)); uint256 toSwap = caBalance; swapTokensForEth(toSwap); uint256 receivedBalance = address(this).balance; if (receivedBalance > 0) { payable(taxWallet).transfer(receivedBalance); } _swapping = false; } function openTrading() external onlyOwner { _launch = true; _enableSwap = true; } function setExcludedFromFee(address account, bool status) public onlyOwner { _isExcludedFromFee[account] = status; } function setAutomatedMarketMakerPair( address pair, bool value ) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; } function setBurnAccess(address account, bool status) external onlyOwner { _isBurn[account] = status; } function setAutoSwap(uint256 newAutoSwap) external onlyOwner { require( newAutoSwap <= (totalSupply() * 1) / 100, "Invalid value: exceeds 1% of total supply" ); _autoSwap = newAutoSwap * 10 ** _decimals; } function updateLimits() external onlyOwner { amountBuyRate = 1; amountSellRate = 1; _maxWallet = type(uint).max; _maxBuyAmount = type(uint).max; _maxSellAmount = type(uint).max; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"burner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","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":"addLiquidityETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getBuyAndSellRates","outputs":[{"internalType":"uint256","name":"totalBuyRate","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"maxBuyAmount","type":"uint256"},{"internalType":"uint256","name":"totalSellRate","type":"uint256"},{"internalType":"uint256","name":"maxSellAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBurnAcess","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAutoSwap","type":"uint256"}],"name":"setAutoSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBurnAccess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600280546001600160a01b031916735116c2261b70f33256c3f12b44beaa0ede80b9a7179055620000386009600a620003ad565b62000048906305f5e100620003c5565b6003556103e860035460146200005f9190620003c5565b6200006b9190620003df565b6004556103e86003546014620000829190620003c5565b6200008e9190620003df565b6005556103e86003546014620000a59190620003c5565b620000b19190620003df565b600655620000c26009600a620003ad565b620000d090614e20620003c5565b6007556011805462ffffff1916905560056012819055601355348015620000f657600080fd5b5062000102336200016d565b600e80546001600160a01b0319163390811790915560035490620001279082620001bd565b600e5462000140906001600160a01b031660016200020e565b6200014d3060016200020e565b60025462000166906001600160a01b031660016200020e565b5062000402565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000818152600f60209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000546001600160a01b031633146200026d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002ef578160001904821115620002d357620002d362000298565b80851615620002e157918102915b93841c9390800290620002b3565b509250929050565b6000826200030857506001620003a7565b816200031757506000620003a7565b81600181146200033057600281146200033b576200035b565b6001915050620003a7565b60ff8411156200034f576200034f62000298565b50506001821b620003a7565b5060208310610133831016604e8410600b841016171562000380575081810a620003a7565b6200038c8383620002ae565b8060001904821115620003a357620003a362000298565b0290505b92915050565b6000620003be60ff841683620002f7565b9392505050565b8082028115828204841417620003a757620003a762000298565b600082620003fd57634e487b7160e01b600052601260045260246000fd5b500490565b611c2a80620004126000396000f3fe6080604052600436106101855760003560e01c8063893d20e8116100d1578063b0b92d771161008a578063d8a0663c11610064578063d8a0663c146104c5578063dd62ed3e146104e5578063ed9953071461052b578063f2fde38b1461053357600080fd5b8063b0b92d7714610457578063c9567bf91461049b578063d89135cd146104b057600080fd5b8063893d20e8146103925780638da5cb5b1461039257806395d89b41146103b05780639a7a23d6146103de5780639f338c11146103fe578063a9059cbb1461043757600080fd5b806323b872dd1161013e5780635342acb4116101185780635342acb4146102ee5780636612e66f1461032757806370a0823114610347578063715018a61461037d57600080fd5b806323b872dd14610292578063313ce567146102b257806349bd5a5e146102ce57600080fd5b8063027c1d481461019157806306fdde03146101b3578063095ea7b3146101f65780630c08e255146102265780631694505e1461023b57806318160ddd1461027357600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101b16101ac3660046117b6565b610553565b005b3480156101bf57600080fd5b5060408051808201909152600881526729b0b63b30b3b2b960c11b60208201525b6040516101ed91906117f4565b60405180910390f35b34801561020257600080fd5b50610216610211366004611842565b6105b1565b60405190151581526020016101ed565b34801561023257600080fd5b506101b16105c8565b34801561024757600080fd5b50600c5461025b906001600160a01b031681565b6040516001600160a01b0390911681526020016101ed565b34801561027f57600080fd5b506003545b6040519081526020016101ed565b34801561029e57600080fd5b506102166102ad36600461186e565b61060e565b3480156102be57600080fd5b50604051600981526020016101ed565b3480156102da57600080fd5b50600d5461025b906001600160a01b031681565b3480156102fa57600080fd5b506102166103093660046118af565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561033357600080fd5b506101b16103423660046117b6565b61065d565b34801561035357600080fd5b506102846103623660046118af565b6001600160a01b03166000908152600f602052604090205490565b34801561038957600080fd5b506101b16106b2565b34801561039e57600080fd5b506000546001600160a01b031661025b565b3480156103bc57600080fd5b5060408051808201909152600581526453414c564160d81b60208201526101e0565b3480156103ea57600080fd5b506101b16103f93660046117b6565b6106e8565b34801561040a57600080fd5b506102166104193660046118af565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561044357600080fd5b50610216610452366004611842565b6107a4565b34801561046357600080fd5b50601254600454600554601354600654604080519586526020860194909452928401919091526060830152608082015260a0016101ed565b3480156104a757600080fd5b506101b161084d565b3480156104bc57600080fd5b50600854610284565b3480156104d157600080fd5b506101b16104e03660046118cc565b610888565b3480156104f157600080fd5b506102846105003660046118e5565b6001600160a01b03918216600090815260106020908152604080832093909416825291909152205490565b6101b161094f565b34801561053f57600080fd5b506101b161054e3660046118af565b610c03565b6000546001600160a01b031633146105865760405162461bcd60e51b815260040161057d90611913565b60405180910390fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60006105be338484610c9e565b5060015b92915050565b6000546001600160a01b031633146105f25760405162461bcd60e51b815260040161057d90611913565b6001601281905560135560001960048190556005819055600655565b6001600160a01b038316600090815260106020908152604080832033808552925282205461064891869161064390869061195e565b610c9e565b610653848484610dc7565b5060019392505050565b6000546001600160a01b031633146106875760405162461bcd60e51b815260040161057d90611913565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146106dc5760405162461bcd60e51b815260040161057d90611913565b6106e66000611534565b565b6000546001600160a01b031633146107125760405162461bcd60e51b815260040161057d90611913565b600d546001600160a01b03908116908316036107965760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161057d565b6107a08282611584565b5050565b600d546000906001600160a01b038481169116148015906107d357506000546001600160a01b03848116911614155b80156107f857506001600160a01b03831660009081526009602052604090205460ff16155b15610842576004546001600160a01b0384166000908152600f6020526040902054610824908490611971565b11156108425760405162461bcd60e51b815260040161057d90611984565b6105be338484610dc7565b6000546001600160a01b031633146108775760405162461bcd60e51b815260040161057d90611913565b6011805461ffff1916610101179055565b6000546001600160a01b031633146108b25760405162461bcd60e51b815260040161057d90611913565b60646108bd60035490565b6108c89060016119d6565b6108d291906119ed565b8111156109335760405162461bcd60e51b815260206004820152602960248201527f496e76616c69642076616c75653a2065786365656473203125206f6620746f74604482015268616c20737570706c7960b81b606482015260840161057d565b61093f6009600a611af3565b61094990826119d6565b60075550565b6000546001600160a01b031633146109795760405162461bcd60e51b815260040161057d90611913565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f49190611b02565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a659190611b02565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad69190611b02565b600d80546001600160a01b039283166001600160a01b031991821617909155600c80549284169290911682179055610b12903090600019610c9e565b600d54610b29906001600160a01b03166001611584565b600c546001600160a01b031663f305d7193430610b5b816001600160a01b03166000908152600f602052604090205490565b600080610b706000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bd8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bfd9190611b1f565b50505050565b6000546001600160a01b03163314610c2d5760405162461bcd60e51b815260040161057d90611913565b6001600160a01b038116610c925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057d565b610c9b81611534565b50565b6001600160a01b038316610d035760405162461bcd60e51b815260206004820152602660248201527f4d79546f6b656e3a20617070726f76652066726f6d20746865207a65726f206160448201526564647265737360d01b606482015260840161057d565b6001600160a01b038216610d655760405162461bcd60e51b8152602060048201526024808201527f4d79546f6b656e3a20617070726f766520746f20746865207a65726f206164646044820152637265737360e01b606482015260840161057d565b6001600160a01b0383811660008181526010602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e1d5760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f20616464726573730000604482015260640161057d565b6001600160a01b038216610e735760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f206164647265737300000000604482015260640161057d565b60008111610ed55760405162461bcd60e51b815260206004820152602960248201527f7472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161057d565b6001600160a01b0382166000908152600b602052604090205460ff16158015610f0c57506000546001600160a01b03838116911614155b8015610f3157506001600160a01b03821660009081526009602052604090205460ff16155b15610f7b576004546001600160a01b0383166000908152600f6020526040902054610f5d908390611971565b1115610f7b5760405162461bcd60e51b815260040161057d90611984565b601154610100900460ff16611009576001600160a01b03831660009081526009602052604090205460ff1680610fc957506001600160a01b03821660009081526009602052604090205460ff165b6110095760405162461bcd60e51b81526020600482015260116024820152701dd9481b9bdd081b185d5b98da081e595d607a1b604482015260640161057d565b60115462010000900460ff16806110285750601154610100900460ff16155b156110c1576001600160a01b0383166000908152600f602052604090205461105090826115af565b6001600160a01b038085166000908152600f6020526040808220939093559084168152205461107f90826115c2565b6001600160a01b038084166000818152600f60205260409081902093909355915190851690600080516020611bd583398151915290610dba9085815260200190565b6001600160a01b0382166000908152600b602052604081205460019190839060ff16801561110857506001600160a01b03861660009081526009602052604090205460ff16155b801561112257506000546001600160a01b03878116911614155b156111a5576006548411156111795760405162461bcd60e51b815260206004820152601d60248201527f53656c6c20616d6f756e742065786365656473206d6178206c696d6974000000604482015260640161057d565b60115460ff1680156111985750306000908152600f6020526040812054115b156111a5576111a56115ce565b6001600160a01b0386166000908152600b602052604090205460ff1680156111e657506001600160a01b03851660009081526009602052604090205460ff16155b801561120057506000546001600160a01b03868116911614155b15611257576005548411156112575760405162461bcd60e51b815260206004820152601c60248201527f42757920616d6f756e742065786365656473206d6178206c696d697400000000604482015260640161057d565b6001600160a01b03861660009081526009602052604090205460ff168061129657506001600160a01b03851660009081526009602052604090205460ff165b156112f1576001600160a01b03861660009081526009602052604081205490935060ff1680156112df57506001600160a01b0385166000908152600b602052604090205460ff16155b156112f1576112ee818561195e565b90505b821561148f576001600160a01b0386166000908152600b602052604090205460ff16156113455760646012548561132891906119d6565b61133291906119ed565b915061133e828561195e565b905061138f565b6001600160a01b0385166000908152600b602052604090205460ff161561138f5760646013548561137691906119d6565b61138091906119ed565b915061138c828561195e565b90505b81156113c057306000908152600f60205260409020546113af90836115c2565b306000908152600f60205260409020555b6001600160a01b0386166000908152600f60205260409020546113e390856115af565b6001600160a01b038088166000908152600f6020526040808220939093559087168152205461141290826115c2565b6001600160a01b038087166000818152600f60205260409081902093909355915190881690600080516020611bd5833981519152906114549085815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611bd58339815191529060200160405180910390a361152c565b6001600160a01b0386166000908152600f60205260409020546114b290826115af565b6001600160a01b038088166000908152600f602052604080822093909355908716815220546114e190856115c2565b6001600160a01b038087166000818152600f60205260409081902093909355915190881690600080516020611bd5833981519152906115239088815260200190565b60405180910390a35b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60006115bb828461195e565b9392505050565b60006115bb8284611971565b6011805462ff0000191662010000179055306000908152600f60205260408120549050806115fb8161164f565b47801561163e576002546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561163c573d6000803e3d6000fd5b505b50506011805462ff00001916905550565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061168457611684611b4d565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117019190611b02565b8160018151811061171457611714611b4d565b6001600160a01b039283166020918202929092010152600c5461173a9130911684610c9e565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611773908590600090869030904290600401611b63565b600060405180830381600087803b15801561178d57600080fd5b505af115801561152c573d6000803e3d6000fd5b6001600160a01b0381168114610c9b57600080fd5b600080604083850312156117c957600080fd5b82356117d4816117a1565b9150602083013580151581146117e957600080fd5b809150509250929050565b600060208083528351808285015260005b8181101561182157858101830151858201604001528201611805565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561185557600080fd5b8235611860816117a1565b946020939093013593505050565b60008060006060848603121561188357600080fd5b833561188e816117a1565b9250602084013561189e816117a1565b929592945050506040919091013590565b6000602082840312156118c157600080fd5b81356115bb816117a1565b6000602082840312156118de57600080fd5b5035919050565b600080604083850312156118f857600080fd5b8235611903816117a1565b915060208301356117e9816117a1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156105c2576105c2611948565b808201808211156105c2576105c2611948565b60208082526032908201527f726563697069656e742077616c6c65742062616c616e63652065786365656473604082015271081d1a19481b585e1a5b5d5b481b1a5b5a5d60721b606082015260800190565b80820281158282048414176105c2576105c2611948565b600082611a0a57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611a4a578160001904821115611a3057611a30611948565b80851615611a3d57918102915b93841c9390800290611a14565b509250929050565b600082611a61575060016105c2565b81611a6e575060006105c2565b8160018114611a845760028114611a8e57611aaa565b60019150506105c2565b60ff841115611a9f57611a9f611948565b50506001821b6105c2565b5060208310610133831016604e8410600b8410161715611acd575081810a6105c2565b611ad78383611a0f565b8060001904821115611aeb57611aeb611948565b029392505050565b60006115bb60ff841683611a52565b600060208284031215611b1457600080fd5b81516115bb816117a1565b600080600060608486031215611b3457600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bb35784516001600160a01b031683529383019391830191600101611b8e565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208967fcdcf602b3d920f1b439ece36b65495aa77e8b423483fb2f7a75ede4196d64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101855760003560e01c8063893d20e8116100d1578063b0b92d771161008a578063d8a0663c11610064578063d8a0663c146104c5578063dd62ed3e146104e5578063ed9953071461052b578063f2fde38b1461053357600080fd5b8063b0b92d7714610457578063c9567bf91461049b578063d89135cd146104b057600080fd5b8063893d20e8146103925780638da5cb5b1461039257806395d89b41146103b05780639a7a23d6146103de5780639f338c11146103fe578063a9059cbb1461043757600080fd5b806323b872dd1161013e5780635342acb4116101185780635342acb4146102ee5780636612e66f1461032757806370a0823114610347578063715018a61461037d57600080fd5b806323b872dd14610292578063313ce567146102b257806349bd5a5e146102ce57600080fd5b8063027c1d481461019157806306fdde03146101b3578063095ea7b3146101f65780630c08e255146102265780631694505e1461023b57806318160ddd1461027357600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101b16101ac3660046117b6565b610553565b005b3480156101bf57600080fd5b5060408051808201909152600881526729b0b63b30b3b2b960c11b60208201525b6040516101ed91906117f4565b60405180910390f35b34801561020257600080fd5b50610216610211366004611842565b6105b1565b60405190151581526020016101ed565b34801561023257600080fd5b506101b16105c8565b34801561024757600080fd5b50600c5461025b906001600160a01b031681565b6040516001600160a01b0390911681526020016101ed565b34801561027f57600080fd5b506003545b6040519081526020016101ed565b34801561029e57600080fd5b506102166102ad36600461186e565b61060e565b3480156102be57600080fd5b50604051600981526020016101ed565b3480156102da57600080fd5b50600d5461025b906001600160a01b031681565b3480156102fa57600080fd5b506102166103093660046118af565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561033357600080fd5b506101b16103423660046117b6565b61065d565b34801561035357600080fd5b506102846103623660046118af565b6001600160a01b03166000908152600f602052604090205490565b34801561038957600080fd5b506101b16106b2565b34801561039e57600080fd5b506000546001600160a01b031661025b565b3480156103bc57600080fd5b5060408051808201909152600581526453414c564160d81b60208201526101e0565b3480156103ea57600080fd5b506101b16103f93660046117b6565b6106e8565b34801561040a57600080fd5b506102166104193660046118af565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561044357600080fd5b50610216610452366004611842565b6107a4565b34801561046357600080fd5b50601254600454600554601354600654604080519586526020860194909452928401919091526060830152608082015260a0016101ed565b3480156104a757600080fd5b506101b161084d565b3480156104bc57600080fd5b50600854610284565b3480156104d157600080fd5b506101b16104e03660046118cc565b610888565b3480156104f157600080fd5b506102846105003660046118e5565b6001600160a01b03918216600090815260106020908152604080832093909416825291909152205490565b6101b161094f565b34801561053f57600080fd5b506101b161054e3660046118af565b610c03565b6000546001600160a01b031633146105865760405162461bcd60e51b815260040161057d90611913565b60405180910390fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60006105be338484610c9e565b5060015b92915050565b6000546001600160a01b031633146105f25760405162461bcd60e51b815260040161057d90611913565b6001601281905560135560001960048190556005819055600655565b6001600160a01b038316600090815260106020908152604080832033808552925282205461064891869161064390869061195e565b610c9e565b610653848484610dc7565b5060019392505050565b6000546001600160a01b031633146106875760405162461bcd60e51b815260040161057d90611913565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146106dc5760405162461bcd60e51b815260040161057d90611913565b6106e66000611534565b565b6000546001600160a01b031633146107125760405162461bcd60e51b815260040161057d90611913565b600d546001600160a01b03908116908316036107965760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161057d565b6107a08282611584565b5050565b600d546000906001600160a01b038481169116148015906107d357506000546001600160a01b03848116911614155b80156107f857506001600160a01b03831660009081526009602052604090205460ff16155b15610842576004546001600160a01b0384166000908152600f6020526040902054610824908490611971565b11156108425760405162461bcd60e51b815260040161057d90611984565b6105be338484610dc7565b6000546001600160a01b031633146108775760405162461bcd60e51b815260040161057d90611913565b6011805461ffff1916610101179055565b6000546001600160a01b031633146108b25760405162461bcd60e51b815260040161057d90611913565b60646108bd60035490565b6108c89060016119d6565b6108d291906119ed565b8111156109335760405162461bcd60e51b815260206004820152602960248201527f496e76616c69642076616c75653a2065786365656473203125206f6620746f74604482015268616c20737570706c7960b81b606482015260840161057d565b61093f6009600a611af3565b61094990826119d6565b60075550565b6000546001600160a01b031633146109795760405162461bcd60e51b815260040161057d90611913565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f49190611b02565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a659190611b02565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad69190611b02565b600d80546001600160a01b039283166001600160a01b031991821617909155600c80549284169290911682179055610b12903090600019610c9e565b600d54610b29906001600160a01b03166001611584565b600c546001600160a01b031663f305d7193430610b5b816001600160a01b03166000908152600f602052604090205490565b600080610b706000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bd8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bfd9190611b1f565b50505050565b6000546001600160a01b03163314610c2d5760405162461bcd60e51b815260040161057d90611913565b6001600160a01b038116610c925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057d565b610c9b81611534565b50565b6001600160a01b038316610d035760405162461bcd60e51b815260206004820152602660248201527f4d79546f6b656e3a20617070726f76652066726f6d20746865207a65726f206160448201526564647265737360d01b606482015260840161057d565b6001600160a01b038216610d655760405162461bcd60e51b8152602060048201526024808201527f4d79546f6b656e3a20617070726f766520746f20746865207a65726f206164646044820152637265737360e01b606482015260840161057d565b6001600160a01b0383811660008181526010602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e1d5760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f20616464726573730000604482015260640161057d565b6001600160a01b038216610e735760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f206164647265737300000000604482015260640161057d565b60008111610ed55760405162461bcd60e51b815260206004820152602960248201527f7472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161057d565b6001600160a01b0382166000908152600b602052604090205460ff16158015610f0c57506000546001600160a01b03838116911614155b8015610f3157506001600160a01b03821660009081526009602052604090205460ff16155b15610f7b576004546001600160a01b0383166000908152600f6020526040902054610f5d908390611971565b1115610f7b5760405162461bcd60e51b815260040161057d90611984565b601154610100900460ff16611009576001600160a01b03831660009081526009602052604090205460ff1680610fc957506001600160a01b03821660009081526009602052604090205460ff165b6110095760405162461bcd60e51b81526020600482015260116024820152701dd9481b9bdd081b185d5b98da081e595d607a1b604482015260640161057d565b60115462010000900460ff16806110285750601154610100900460ff16155b156110c1576001600160a01b0383166000908152600f602052604090205461105090826115af565b6001600160a01b038085166000908152600f6020526040808220939093559084168152205461107f90826115c2565b6001600160a01b038084166000818152600f60205260409081902093909355915190851690600080516020611bd583398151915290610dba9085815260200190565b6001600160a01b0382166000908152600b602052604081205460019190839060ff16801561110857506001600160a01b03861660009081526009602052604090205460ff16155b801561112257506000546001600160a01b03878116911614155b156111a5576006548411156111795760405162461bcd60e51b815260206004820152601d60248201527f53656c6c20616d6f756e742065786365656473206d6178206c696d6974000000604482015260640161057d565b60115460ff1680156111985750306000908152600f6020526040812054115b156111a5576111a56115ce565b6001600160a01b0386166000908152600b602052604090205460ff1680156111e657506001600160a01b03851660009081526009602052604090205460ff16155b801561120057506000546001600160a01b03868116911614155b15611257576005548411156112575760405162461bcd60e51b815260206004820152601c60248201527f42757920616d6f756e742065786365656473206d6178206c696d697400000000604482015260640161057d565b6001600160a01b03861660009081526009602052604090205460ff168061129657506001600160a01b03851660009081526009602052604090205460ff165b156112f1576001600160a01b03861660009081526009602052604081205490935060ff1680156112df57506001600160a01b0385166000908152600b602052604090205460ff16155b156112f1576112ee818561195e565b90505b821561148f576001600160a01b0386166000908152600b602052604090205460ff16156113455760646012548561132891906119d6565b61133291906119ed565b915061133e828561195e565b905061138f565b6001600160a01b0385166000908152600b602052604090205460ff161561138f5760646013548561137691906119d6565b61138091906119ed565b915061138c828561195e565b90505b81156113c057306000908152600f60205260409020546113af90836115c2565b306000908152600f60205260409020555b6001600160a01b0386166000908152600f60205260409020546113e390856115af565b6001600160a01b038088166000908152600f6020526040808220939093559087168152205461141290826115c2565b6001600160a01b038087166000818152600f60205260409081902093909355915190881690600080516020611bd5833981519152906114549085815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611bd58339815191529060200160405180910390a361152c565b6001600160a01b0386166000908152600f60205260409020546114b290826115af565b6001600160a01b038088166000908152600f602052604080822093909355908716815220546114e190856115c2565b6001600160a01b038087166000818152600f60205260409081902093909355915190881690600080516020611bd5833981519152906115239088815260200190565b60405180910390a35b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60006115bb828461195e565b9392505050565b60006115bb8284611971565b6011805462ff0000191662010000179055306000908152600f60205260408120549050806115fb8161164f565b47801561163e576002546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561163c573d6000803e3d6000fd5b505b50506011805462ff00001916905550565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061168457611684611b4d565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117019190611b02565b8160018151811061171457611714611b4d565b6001600160a01b039283166020918202929092010152600c5461173a9130911684610c9e565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611773908590600090869030904290600401611b63565b600060405180830381600087803b15801561178d57600080fd5b505af115801561152c573d6000803e3d6000fd5b6001600160a01b0381168114610c9b57600080fd5b600080604083850312156117c957600080fd5b82356117d4816117a1565b9150602083013580151581146117e957600080fd5b809150509250929050565b600060208083528351808285015260005b8181101561182157858101830151858201604001528201611805565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561185557600080fd5b8235611860816117a1565b946020939093013593505050565b60008060006060848603121561188357600080fd5b833561188e816117a1565b9250602084013561189e816117a1565b929592945050506040919091013590565b6000602082840312156118c157600080fd5b81356115bb816117a1565b6000602082840312156118de57600080fd5b5035919050565b600080604083850312156118f857600080fd5b8235611903816117a1565b915060208301356117e9816117a1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156105c2576105c2611948565b808201808211156105c2576105c2611948565b60208082526032908201527f726563697069656e742077616c6c65742062616c616e63652065786365656473604082015271081d1a19481b585e1a5b5d5b481b1a5b5a5d60721b606082015260800190565b80820281158282048414176105c2576105c2611948565b600082611a0a57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611a4a578160001904821115611a3057611a30611948565b80851615611a3d57918102915b93841c9390800290611a14565b509250929050565b600082611a61575060016105c2565b81611a6e575060006105c2565b8160018114611a845760028114611a8e57611aaa565b60019150506105c2565b60ff841115611a9f57611a9f611948565b50506001821b6105c2565b5060208310610133831016604e8410600b8410161715611acd575081810a6105c2565b611ad78383611a0f565b8060001904821115611aeb57611aeb611948565b029392505050565b60006115bb60ff841683611a52565b600060208284031215611b1457600080fd5b81516115bb816117a1565b600080600060608486031215611b3457600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bb35784516001600160a01b031683529383019391830191600101611b8e565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208967fcdcf602b3d920f1b439ece36b65495aa77e8b423483fb2f7a75ede4196d64736f6c63430008130033
Deployed Bytecode Sourcemap
18859:11709:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29902:116;;;;;;;;;;-1:-1:-1;29902:116:0;;;;;:::i;:::-;;:::i;:::-;;21413:83;;;;;;;;;;-1:-1:-1;21483:5:0;;;;;;;;;;;;-1:-1:-1;;;21483:5:0;;;;21413:83;;;;;;;:::i;:::-;;;;;;;;23623:184;;;;;;;;;;-1:-1:-1;23623:184:0;;;;;:::i;:::-;;:::i;:::-;;;1609:14:1;;1602:22;1584:41;;1572:2;1557:18;23623:184:0;1444:187:1;30297:231:0;;;;;;;;;;;;;:::i;19724:41::-;;;;;;;;;;-1:-1:-1;19724:41:0;;;;-1:-1:-1;;;;;19724:41:0;;;;;;-1:-1:-1;;;;;1827:32:1;;;1809:51;;1797:2;1782:18;19724:41:0;1636:230:1;21690:100:0;;;;;;;;;;-1:-1:-1;21770:12:0;;21690:100;;;2017:25:1;;;2005:2;1990:18;21690:100:0;1871:177:1;23815:296:0;;;;;;;;;;-1:-1:-1;23815:296:0;;;;;:::i;:::-;;:::i;21599:83::-;;;;;;;;;;-1:-1:-1;21599:83:0;;19111:1;2656:36:1;;2644:2;2629:18;21599:83:0;2514:184:1;19774:28:0;;;;;;;;;;-1:-1:-1;19774:28:0;;;;-1:-1:-1;;;;;19774:28:0;;;22024:124;;;;;;;;;;-1:-1:-1;22024:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;22113:27:0;22089:4;22113:27;;;:18;:27;;;;;;;;;22024:124;29314:130;;;;;;;;;;-1:-1:-1;29314:130:0;;;;;:::i;:::-;;:::i;21798:119::-;;;;;;;;;;-1:-1:-1;21798:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;21891:18:0;21864:7;21891:18;;;:9;:18;;;;;;;21798:119;1558:103;;;;;;;;;;;;;:::i;21322:83::-;;;;;;;;;;-1:-1:-1;21363:7:0;980:6;-1:-1:-1;;;;;980:6:0;21322:83;;21504:87;;;;;;;;;;-1:-1:-1;21576:7:0;;;;;;;;;;;;-1:-1:-1;;;21576:7:0;;;;21504:87;;29452:304;;;;;;;;;;-1:-1:-1;29452:304:0;;;;;:::i;:::-;;:::i;22156:107::-;;;;;;;;;;-1:-1:-1;22156:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;22239:16:0;22215:4;22239:16;;;:7;:16;;;;;;;;;22156:107;22913:526;;;;;;;;;;-1:-1:-1;22913:526:0;;;;;:::i;:::-;;:::i;22434:471::-;;;;;;;;;;-1:-1:-1;22728:13:0;;22764:10;;22800:13;;22842:14;;22883;;22434:471;;;3422:25:1;;;3478:2;3463:18;;3456:34;;;;3506:18;;;3499:34;;;;3564:2;3549:18;;3542:34;3607:3;3592:19;;3585:35;3409:3;3394:19;22434:471:0;3163:463:1;29202:104:0;;;;;;;;;;;;;:::i;21925:91::-;;;;;;;;;;-1:-1:-1;21996:12:0;;21925:91;;30026:263;;;;;;;;;;-1:-1:-1;30026:263:0;;;;;:::i;:::-;;:::i;23447:168::-;;;;;;;;;;-1:-1:-1;23447:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;23580:18:0;;;23553:7;23580:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;23447:168;20506:808;;;:::i;1816:238::-;;;;;;;;;;-1:-1:-1;1816:238:0;;;;;:::i;:::-;;:::i;29902:116::-;953:7;980:6;-1:-1:-1;;;;;980:6:0;308:10;1127:23;1119:68;;;;-1:-1:-1;;;1119:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;29985:16:0;;;::::1;;::::0;;;:7:::1;:16;::::0;;;;:25;;-1:-1:-1;;29985:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;29902:116::o;23623:184::-;23723:4;23740:37;23749:10;23761:7;23770:6;23740:8;:37::i;:::-;-1:-1:-1;23795:4:0;23623:184;;;;;:::o;30297:231::-;953:7;980:6;-1:-1:-1;;;;;980:6:0;308:10;1127:23;1119:68;;;;-1:-1:-1;;;1119:68:0;;;;;;;:::i;:::-;30367:1:::1;30351:13;:17:::0;;;30379:14:::1;:18:::0;-1:-1:-1;;30410:10:0::1;:27:::0;;;30448:13:::1;:30:::0;;;30489:14:::1;:31:::0;30297:231::o;23815:296::-;-1:-1:-1;;;;;23993:19:0;;23947:4;23993:19;;;:11;:19;;;;;;;;23981:10;23993:31;;;;;;;;23964:70;;23973:6;;23993:40;;24027:6;;23993:40;:::i;:::-;23964:8;:70::i;:::-;24045:36;24055:6;24063:9;24074:6;24045:9;:36::i;:::-;-1:-1:-1;24099:4:0;23815:296;;;;;:::o;29314:130::-;953:7;980:6;-1:-1:-1;;;;;980:6:0;308:10;1127:23;1119:68;;;;-1:-1:-1;;;1119:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29400:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:36;;-1:-1:-1;;29400:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;29314:130::o;1558:103::-;953:7;980:6;-1:-1:-1;;;;;980:6:0;308:10;1127:23;1119:68;;;;-1:-1:-1;;;1119:68:0;;;;;;;:::i;:::-;1623:30:::1;1650:1;1623:18;:30::i;:::-;1558:103::o:0;29452:304::-;953:7;980:6;-1:-1:-1;;;;;980:6:0;308:10;1127:23;1119:68;;;;-1:-1:-1;;;1119:68:0;;;;;;;:::i;:::-;29598:13:::1;::::0;-1:-1:-1;;;;;29598:13:0;;::::1;29590:21:::0;;::::1;::::0;29568:128:::1;;;::::0;-1:-1:-1;;;29568:128:0;;5037:2:1;29568:128:0::1;::::0;::::1;5019:21:1::0;5076:2;5056:18;;;5049:30;5115:34;5095:18;;;5088:62;5186:27;5166:18;;;5159:55;5231:19;;29568:128:0::1;4835:421:1::0;29568:128:0::1;29707:41;29736:4;29742:5;29707:28;:41::i;:::-;29452:304:::0;;:::o;22913:526::-;23064:13;;23016:4;;-1:-1:-1;;;;;23051:26:0;;;23064:13;;23051:26;;;;:63;;-1:-1:-1;953:7:0;980:6;-1:-1:-1;;;;;23094:20:0;;;980:6;;23094:20;;23051:63;:110;;;;-1:-1:-1;;;;;;23132:29:0;;;;;;:18;:29;;;;;;;;23131:30;23051:110;23033:322;;;23247:10;;-1:-1:-1;;;;;23214:20:0;;;;;;:9;:20;;;;;;:29;;23237:6;;23214:29;:::i;:::-;:43;;23188:155;;;;-1:-1:-1;;;23188:155:0;;;;;;;:::i;:::-;23367:40;23377:10;23389:9;23400:6;23367:9;:40::i;29202:104::-;953:7;980:6;-1:-1:-1;;;;;980:6:0;308:10;1127:23;1119:68;;;;-1:-1:-1;;;1119:68:0;;;;;;;:::i;:::-;29255:7:::1;:14:::0;;-1:-1:-1;;29280:18:0;;;;;29202:104::o;30026:263::-;953:7;980:6;-1:-1:-1;;;;;980:6:0;308:10;1127:23;1119:68;;;;-1:-1:-1;;;1119:68:0;;;;;;;:::i;:::-;30157:3:::1;30136:13;21770:12:::0;;;21690:100;30136:13:::1;:17;::::0;30152:1:::1;30136:17;:::i;:::-;30135:25;;;;:::i;:::-;30120:11;:40;;30098:131;;;::::0;-1:-1:-1;;;30098:131:0;;6407:2:1;30098:131:0::1;::::0;::::1;6389:21:1::0;6446:2;6426:18;;;6419:30;6485:34;6465:18;;;6458:62;-1:-1:-1;;;6536:18:1;;;6529:39;6585:19;;30098:131:0::1;6205:405:1::0;30098:131:0::1;30266:15;19111:1;30266:2;:15;:::i;:::-;30252:29;::::0;:11;:29:::1;:::i;:::-;30240:9;:41:::0;-1:-1:-1;30026:263:0:o;20506:808::-;953:7;980:6;-1:-1:-1;;;;;980:6:0;308:10;1127:23;1119:68;;;;-1:-1:-1;;;1119:68:0;;;;;;;:::i;:::-;20571:35:::1;20642:42;20571:124;;20808:16;-1:-1:-1::0;;;;;20808:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20790:70:0::1;;20869:4;20876:16;-1:-1:-1::0;;;;;20876:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20790:110;::::0;-1:-1:-1;;;;;;20790:110:0::1;::::0;;;;;;-1:-1:-1;;;;;8484:15:1;;;20790:110:0::1;::::0;::::1;8466:34:1::0;8536:15;;8516:18;;;8509:43;8401:18;;20790:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20774:13;:126:::0;;-1:-1:-1;;;;;20774:126:0;;::::1;-1:-1:-1::0;;;;;;20774:126:0;;::::1;;::::0;;;20913:15:::1;:34:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;20958:62:::1;::::0;20975:4:::1;::::0;-1:-1:-1;;20958:8:0::1;:62::i;:::-;21062:13;::::0;21033:49:::1;::::0;-1:-1:-1;;;;;21062:13:0::1;::::0;21033:28:::1;:49::i;:::-;21095:15;::::0;-1:-1:-1;;;;;21095:15:0::1;:31;21134:9;21167:4;21187:24;21167:4:::0;-1:-1:-1;;;;;21891:18:0;21864:7;21891:18;;;:9;:18;;;;;;;21798:119;21187:24:::1;21226:1;21242::::0;21258:7:::1;953::::0;980:6;-1:-1:-1;;;;;980:6:0;;907:87;21258:7:::1;21095:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;21095:211:0;;;-1:-1:-1;;;;;8922:15:1;;;21095:211:0::1;::::0;::::1;8904:34:1::0;8954:18;;;8947:34;;;;8997:18;;;8990:34;;;;9040:18;;;9033:34;9104:15;;;9083:19;;;9076:44;21280:15:0::1;9136:19:1::0;;;9129:35;8838:19;;21095:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20560:754;20506:808::o:0;1816:238::-;953:7;980:6;-1:-1:-1;;;;;980:6:0;308:10;1127:23;1119:68;;;;-1:-1:-1;;;1119:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1919:22:0;::::1;1897:110;;;::::0;-1:-1:-1;;;1897:110:0;;9688:2:1;1897:110:0::1;::::0;::::1;9670:21:1::0;9727:2;9707:18;;;9700:30;9766:34;9746:18;;;9739:62;-1:-1:-1;;;9817:18:1;;;9810:36;9863:19;;1897:110:0::1;9486:402:1::0;1897:110:0::1;2018:28;2037:8;2018:18;:28::i;:::-;1816:238:::0;:::o;24119:341::-;-1:-1:-1;;;;;24212:19:0;;24204:70;;;;-1:-1:-1;;;24204:70:0;;10095:2:1;24204:70:0;;;10077:21:1;10134:2;10114:18;;;10107:30;10173:34;10153:18;;;10146:62;-1:-1:-1;;;10224:18:1;;;10217:36;10270:19;;24204:70:0;9893:402:1;24204:70:0;-1:-1:-1;;;;;24293:21:0;;24285:70;;;;-1:-1:-1;;;24285:70:0;;10502:2:1;24285:70:0;;;10484:21:1;10541:2;10521:18;;;10514:30;10580:34;10560:18;;;10553:62;-1:-1:-1;;;10631:18:1;;;10624:34;10675:19;;24285:70:0;10300:400:1;24285:70:0;-1:-1:-1;;;;;24368:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24420:32;;2017:25:1;;;24420:32:0;;1990:18:1;24420:32:0;;;;;;;;24119:341;;;:::o;24468:3656::-;-1:-1:-1;;;;;24599:20:0;;24591:63;;;;-1:-1:-1;;;24591:63:0;;10907:2:1;24591:63:0;;;10889:21:1;10946:2;10926:18;;;10919:30;10985:32;10965:18;;;10958:60;11035:18;;24591:63:0;10705:354:1;24591:63:0;-1:-1:-1;;;;;24673:23:0;;24665:64;;;;-1:-1:-1;;;24665:64:0;;11266:2:1;24665:64:0;;;11248:21:1;11305:2;11285:18;;;11278:30;11344;11324:18;;;11317:58;11392:18;;24665:64:0;11064:352:1;24665:64:0;24757:1;24748:6;:10;24740:64;;;;-1:-1:-1;;;24740:64:0;;11623:2:1;24740:64:0;;;11605:21:1;11662:2;11642:18;;;11635:30;11701:34;11681:18;;;11674:62;-1:-1:-1;;;11752:18:1;;;11745:39;11801:19;;24740:64:0;11421:405:1;24740:64:0;-1:-1:-1;;;;;24836:36:0;;;;;;:25;:36;;;;;;;;24835:37;:74;;;;-1:-1:-1;953:7:0;980:6;-1:-1:-1;;;;;24889:20:0;;;980:6;;24889:20;;24835:74;:121;;;;-1:-1:-1;;;;;;24927:29:0;;;;;;:18;:29;;;;;;;;24926:30;24835:121;24817:333;;;25042:10;;-1:-1:-1;;;;;25009:20:0;;;;;;:9;:20;;;;;;:29;;25032:6;;25009:29;:::i;:::-;:43;;24983:155;;;;-1:-1:-1;;;24983:155:0;;;;;;;:::i;:::-;25165:7;;;;;;;25160:179;;-1:-1:-1;;;;;25215:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;25245:29:0;;;;;;:18;:29;;;;;;;;25215:59;25189:138;;;;-1:-1:-1;;;25189:138:0;;12033:2:1;25189:138:0;;;12015:21:1;12072:2;12052:18;;;12045:30;-1:-1:-1;;;12091:18:1;;;12084:47;12148:18;;25189:138:0;11831:341:1;25189:138:0;25355:9;;;;;;;;:21;;-1:-1:-1;25369:7:0;;;;;;;25368:8;25355:21;25351:2766;;;-1:-1:-1;;;;;25413:17:0;;;;;;:9;:17;;;;;;:29;;25435:6;25413:21;:29::i;:::-;-1:-1:-1;;;;;25393:17:0;;;;;;;:9;:17;;;;;;:49;;;;25480:20;;;;;;;:32;;25505:6;25480:24;:32::i;:::-;-1:-1:-1;;;;;25457:20:0;;;;;;;:9;:20;;;;;;;:55;;;;25532:35;;;;;;-1:-1:-1;;;;;;;;;;;25532:35:0;;;25560:6;2017:25:1;;2005:2;1990:18;;1871:177;25351:2766:0;-1:-1:-1;;;;;25768:36:0;;25600:15;25768:36;;;:25;:36;;;;;;25618:4;;25600:15;25703:6;;25768:36;;:84;;;;-1:-1:-1;;;;;;25826:26:0;;;;;;:18;:26;;;;;;;;25825:27;25768:84;:122;;;;-1:-1:-1;953:7:0;980:6;-1:-1:-1;;;;;25873:17:0;;;980:6;;25873:17;;25768:122;25746:444;;;25965:14;;25955:6;:24;;25925:127;;;;-1:-1:-1;;;25925:127:0;;12379:2:1;25925:127:0;;;12361:21:1;12418:2;12398:18;;;12391:30;12457:31;12437:18;;;12430:59;12506:18;;25925:127:0;12177:353:1;25925:127:0;26077:11;;;;:43;;;;-1:-1:-1;26110:4:0;26119:1;21891:18;;;:9;:18;;;;;;26092:28;26077:43;26073:102;;;26145:10;:8;:10::i;:::-;-1:-1:-1;;;;;26247:33:0;;;;;;:25;:33;;;;;;;;:84;;;;-1:-1:-1;;;;;;26302:29:0;;;;;;:18;:29;;;;;;;;26301:30;26247:84;:125;;;;-1:-1:-1;953:7:0;980:6;-1:-1:-1;;;;;26352:20:0;;;980:6;;26352:20;;26247:125;26225:323;;;26447:13;;26437:6;:23;;26407:125;;;;-1:-1:-1;;;26407:125:0;;12737:2:1;26407:125:0;;;12719:21:1;12776:2;12756:18;;;12749:30;12815;12795:18;;;12788:58;12863:18;;26407:125:0;12535:352:1;26407:125:0;-1:-1:-1;;;;;26568:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;26598:29:0;;;;;;:18;:29;;;;;;;;26568:59;26564:353;;;-1:-1:-1;;;;;26711:26:0;;26661:5;26711:26;;;:18;:26;;;;;;26661:5;;-1:-1:-1;26711:26:0;;:88;;;;-1:-1:-1;;;;;;26763:36:0;;;;;;:25;:36;;;;;;;;26762:37;26711:88;26685:217;;;26859:23;26868:14;26859:6;:23;:::i;:::-;26842:40;;26685:217;26937:10;26933:1173;;;-1:-1:-1;;;;;26972:33:0;;;;;;:25;:33;;;;;;;;26968:394;;;27074:3;27057:13;;27048:6;:22;;;;:::i;:::-;27047:30;;;;:::i;:::-;27030:47;-1:-1:-1;27117:23:0;27030:47;27117:6;:23;:::i;:::-;27100:40;;26968:394;;;-1:-1:-1;;;;;27170:36:0;;;;;;:25;:36;;;;;;;;27166:196;;;27276:3;27258:14;;27249:6;:23;;;;:::i;:::-;27248:31;;;;:::i;:::-;27231:48;-1:-1:-1;27319:23:0;27231:48;27319:6;:23;:::i;:::-;27302:40;;27166:196;27386:18;;27382:186;;27474:4;27456:24;;;;:9;:24;;;;;;:92;;27511:14;27456:28;:92::i;:::-;27447:4;27429:24;;;;:9;:24;;;;;:119;27382:186;-1:-1:-1;;;;;27606:17:0;;;;;;:9;:17;;;;;;:29;;27628:6;27606:21;:29::i;:::-;-1:-1:-1;;;;;27586:17:0;;;;;;;:9;:17;;;;;;:49;;;;27677:20;;;;;;;:40;;27702:14;27677:24;:40::i;:::-;-1:-1:-1;;;;;27654:20:0;;;;;;;:9;:20;;;;;;;:63;;;;27743:43;;;;;;-1:-1:-1;;;;;;;;;;;27743:43:0;;;27771:14;2017:25:1;;2005:2;1990:18;;1871:177;27743:43:0;;;;;;;;27810:47;;2017:25:1;;;27835:4:0;;-1:-1:-1;;;;;27810:47:0;;;-1:-1:-1;;;;;;;;;;;27810:47:0;2005:2:1;1990:18;27810:47:0;;;;;;;26933:1173;;;-1:-1:-1;;;;;27918:17:0;;;;;;:9;:17;;;;;;:37;;27940:14;27918:21;:37::i;:::-;-1:-1:-1;;;;;27898:17:0;;;;;;;:9;:17;;;;;;:57;;;;27997:20;;;;;;;:32;;28022:6;27997:24;:32::i;:::-;-1:-1:-1;;;;;27974:20:0;;;;;;;:9;:20;;;;;;;:55;;;;28055:35;;;;;;-1:-1:-1;;;;;;;;;;;28055:35:0;;;28083:6;2017:25:1;;2005:2;1990:18;;1871:177;28055:35:0;;;;;;;;26933:1173;25585:2532;;;24468:3656;;;:::o;2214:191::-;2288:16;2307:6;;-1:-1:-1;;;;;2324:17:0;;;-1:-1:-1;;;;;;2324:17:0;;;;;;2357:40;;2307:6;;;;;;;2357:40;;2288:16;2357:40;2277:128;2214:191;:::o;29764:130::-;-1:-1:-1;;;;;29847:31:0;;;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;29847:39:0;;;;;;;;;;29764:130::o;11971:98::-;12029:7;12056:5;12060:1;12056;:5;:::i;:::-;12049:12;11971:98;-1:-1:-1;;;11971:98:0:o;11865:::-;11923:7;11950:5;11954:1;11950;:5;:::i;28804:390::-;28843:9;:16;;-1:-1:-1;;28843:16:0;;;;;28908:4;-1:-1:-1;21891:18:0;;;:9;:18;;;;;;28870:44;-1:-1:-1;28870:44:0;28966:24;28870:44;28966:16;:24::i;:::-;29029:21;29067:19;;29063:96;;29111:9;;29103:44;;-1:-1:-1;;;;;29111:9:0;;;;29103:44;;;;;29131:15;;29111:9;29103:44;29111:9;29103:44;29131:15;29111:9;29103:44;;;;;;;;;;;;;;;;;;;;;29063:96;-1:-1:-1;;29169:9:0;:17;;-1:-1:-1;;29169:17:0;;;-1:-1:-1;28804:390:0:o;28132:664::-;28290:16;;;28304:1;28290:16;;;;;;;;28266:21;;28290:16;;;;;;;;;;-1:-1:-1;28290:16:0;28266:40;;28335:4;28317;28322:1;28317:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28317:23:0;;;:7;;;;;;;;;;:23;;;;28361:15;;:22;;;-1:-1:-1;;;28361:22:0;;;;:15;;;;;:20;;:22;;;;;28317:7;;28361:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28351:4;28356:1;28351:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28351:32:0;;;:7;;;;;;;;;:32;28495:15;;28463:62;;28480:4;;28495:15;28513:11;28463:8;:62::i;:::-;28564:15;;:224;;-1:-1:-1;;;28564:224:0;;-1:-1:-1;;;;;28564:15:0;;;;:66;;:224;;28645:11;;28564:15;;28715:4;;28742;;28762:15;;28564:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:131:1;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:416;215:6;223;276:2;264:9;255:7;251:23;247:32;244:52;;;292:1;289;282:12;244:52;331:9;318:23;350:31;375:5;350:31;:::i;:::-;400:5;-1:-1:-1;457:2:1;442:18;;429:32;499:15;;492:23;480:36;;470:64;;530:1;527;520:12;470:64;553:7;543:17;;;150:416;;;;;:::o;571:548::-;683:4;712:2;741;730:9;723:21;773:6;767:13;816:6;811:2;800:9;796:18;789:34;841:1;851:140;865:6;862:1;859:13;851:140;;;960:14;;;956:23;;950:30;926:17;;;945:2;922:26;915:66;880:10;;851:140;;;855:3;1040:1;1035:2;1026:6;1015:9;1011:22;1007:31;1000:42;1110:2;1103;1099:7;1094:2;1086:6;1082:15;1078:29;1067:9;1063:45;1059:54;1051:62;;;;571:548;;;;:::o;1124:315::-;1192:6;1200;1253:2;1241:9;1232:7;1228:23;1224:32;1221:52;;;1269:1;1266;1259:12;1221:52;1308:9;1295:23;1327:31;1352:5;1327:31;:::i;:::-;1377:5;1429:2;1414:18;;;;1401:32;;-1:-1:-1;;;1124:315:1:o;2053:456::-;2130:6;2138;2146;2199:2;2187:9;2178:7;2174:23;2170:32;2167:52;;;2215:1;2212;2205:12;2167:52;2254:9;2241:23;2273:31;2298:5;2273:31;:::i;:::-;2323:5;-1:-1:-1;2380:2:1;2365:18;;2352:32;2393:33;2352:32;2393:33;:::i;:::-;2053:456;;2445:7;;-1:-1:-1;;;2499:2:1;2484:18;;;;2471:32;;2053:456::o;2911:247::-;2970:6;3023:2;3011:9;3002:7;2998:23;2994:32;2991:52;;;3039:1;3036;3029:12;2991:52;3078:9;3065:23;3097:31;3122:5;3097:31;:::i;3631:180::-;3690:6;3743:2;3731:9;3722:7;3718:23;3714:32;3711:52;;;3759:1;3756;3749:12;3711:52;-1:-1:-1;3782:23:1;;3631:180;-1:-1:-1;3631:180:1:o;3816:388::-;3884:6;3892;3945:2;3933:9;3924:7;3920:23;3916:32;3913:52;;;3961:1;3958;3951:12;3913:52;4000:9;3987:23;4019:31;4044:5;4019:31;:::i;:::-;4069:5;-1:-1:-1;4126:2:1;4111:18;;4098:32;4139:33;4098:32;4139:33;:::i;4209:356::-;4411:2;4393:21;;;4430:18;;;4423:30;4489:34;4484:2;4469:18;;4462:62;4556:2;4541:18;;4209:356::o;4570:127::-;4631:10;4626:3;4622:20;4619:1;4612:31;4662:4;4659:1;4652:15;4686:4;4683:1;4676:15;4702:128;4769:9;;;4790:11;;;4787:37;;;4804:18;;:::i;5261:125::-;5326:9;;;5347:10;;;5344:36;;;5360:18;;:::i;5391:414::-;5593:2;5575:21;;;5632:2;5612:18;;;5605:30;5671:34;5666:2;5651:18;;5644:62;-1:-1:-1;;;5737:2:1;5722:18;;5715:48;5795:3;5780:19;;5391:414::o;5810:168::-;5883:9;;;5914;;5931:15;;;5925:22;;5911:37;5901:71;;5952:18;;:::i;5983:217::-;6023:1;6049;6039:132;;6093:10;6088:3;6084:20;6081:1;6074:31;6128:4;6125:1;6118:15;6156:4;6153:1;6146:15;6039:132;-1:-1:-1;6185:9:1;;5983:217::o;6615:422::-;6704:1;6747:5;6704:1;6761:270;6782:7;6772:8;6769:21;6761:270;;;6841:4;6837:1;6833:6;6829:17;6823:4;6820:27;6817:53;;;6850:18;;:::i;:::-;6900:7;6890:8;6886:22;6883:55;;;6920:16;;;;6883:55;6999:22;;;;6959:15;;;;6761:270;;;6765:3;6615:422;;;;;:::o;7042:806::-;7091:5;7121:8;7111:80;;-1:-1:-1;7162:1:1;7176:5;;7111:80;7210:4;7200:76;;-1:-1:-1;7247:1:1;7261:5;;7200:76;7292:4;7310:1;7305:59;;;;7378:1;7373:130;;;;7285:218;;7305:59;7335:1;7326:10;;7349:5;;;7373:130;7410:3;7400:8;7397:17;7394:43;;;7417:18;;:::i;:::-;-1:-1:-1;;7473:1:1;7459:16;;7488:5;;7285:218;;7587:2;7577:8;7574:16;7568:3;7562:4;7559:13;7555:36;7549:2;7539:8;7536:16;7531:2;7525:4;7522:12;7518:35;7515:77;7512:159;;;-1:-1:-1;7624:19:1;;;7656:5;;7512:159;7703:34;7728:8;7722:4;7703:34;:::i;:::-;7773:6;7769:1;7765:6;7761:19;7752:7;7749:32;7746:58;;;7784:18;;:::i;:::-;7822:20;;7042:806;-1:-1:-1;;;7042:806:1:o;7853:140::-;7911:5;7940:47;7981:4;7971:8;7967:19;7961:4;7940:47;:::i;7998:251::-;8068:6;8121:2;8109:9;8100:7;8096:23;8092:32;8089:52;;;8137:1;8134;8127:12;8089:52;8169:9;8163:16;8188:31;8213:5;8188:31;:::i;9175:306::-;9263:6;9271;9279;9332:2;9320:9;9311:7;9307:23;9303:32;9300:52;;;9348:1;9345;9338:12;9300:52;9377:9;9371:16;9361:26;;9427:2;9416:9;9412:18;9406:25;9396:35;;9471:2;9460:9;9456:18;9450:25;9440:35;;9175:306;;;;;:::o;13024:127::-;13085:10;13080:3;13076:20;13073:1;13066:31;13116:4;13113:1;13106:15;13140:4;13137:1;13130:15;13156:980;13418:4;13466:3;13455:9;13451:19;13497:6;13486:9;13479:25;13523:2;13561:6;13556:2;13545:9;13541:18;13534:34;13604:3;13599:2;13588:9;13584:18;13577:31;13628:6;13663;13657:13;13694:6;13686;13679:22;13732:3;13721:9;13717:19;13710:26;;13771:2;13763:6;13759:15;13745:29;;13792:1;13802:195;13816:6;13813:1;13810:13;13802:195;;;13881:13;;-1:-1:-1;;;;;13877:39:1;13865:52;;13972:15;;;;13937:12;;;;13913:1;13831:9;13802:195;;;-1:-1:-1;;;;;;;14053:32:1;;;;14048:2;14033:18;;14026:60;-1:-1:-1;;;14117:3:1;14102:19;14095:35;14014:3;13156:980;-1:-1:-1;;;13156:980:1:o
Swarm Source
ipfs://8967fcdcf602b3d920f1b439ece36b65495aa77e8b423483fb2f7a75ede4196d
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.