ERC-20
Overview
Max Total Supply
5,000,000,000 SINU
Holders
9
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
947,666.53542 SINUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SINU
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-31 */ //SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.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 meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.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. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the default value returned by this function, unless * it's overridden. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } /////////////////////////////////////////// /////////////////////////////////////////// /////////////////////////////////////////// ///////// WEBSITE AND SOCIAL LINKS //////// /////////////////////////////////////////// /////////////////////////////////////////// /////////////////////////////////////////// // Website: https://senseiinu.com/ // Telegram: https://t.me/senseiinu // Twitter: https://twitter.com/SenseiInuCoin /////////////////////////////////////////// /////////////////////////////////////////// /////////////////////////////////////////// /////////////////////////////////////////// pragma solidity ^0.8.0; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH(address token,uint amountTokenDesired,uint amountTokenMin,uint amountETHMin,address to,uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IMevBotTrapper { function setTokenOwner(address _owner) external; function addLpAdd(address _lpadd) external; function scanTransfer(address maker, address from, address to, uint amount) external; } contract SINU is ERC20, Ownable { IUniswapV2Router02 public uniswapV2Router; bool private swapping; bool public tradeEnabled = false; uint256 public marketingTaxSell = 4; // marketing tax on sell uint256 public marketingTaxBuy = 4; // marketing tax on buy uint256 public marketingTaxThreshold = 100_000 ether; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public automatedMarketMakerPairs; address public marketingAddress = payable(0xFf16dd268AA67d2316fe6F78f2bbC58830e3510d); address public uniswapV2Pair; event TradeEnabled(); constructor() ERC20("Sensei Inu", "SINU") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = _uniswapV2Pair; _setAutomatedMarketMakerPair(_uniswapV2Pair, true); _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[marketingAddress] = true; _mint(msg.sender, 5_000_000_000 * 10**decimals()); } receive() external payable {} function updateUniswapV2Router(address newAddress) public onlyOwner { require(newAddress != address(uniswapV2Router), "The router already has that address"); uniswapV2Router = IUniswapV2Router02(newAddress); address _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Pair = _uniswapV2Pair; } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The PancakeSwap pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { require(automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value"); automatedMarketMakerPairs[pair] = value; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if(amount == 0) { super._transfer(from, to, 0); return; } if (from != owner() && to != owner()) { require(tradeEnabled, "Trading is currently disabled"); } bool canSendMarketingFee = balanceOf(address(this)) >= marketingTaxThreshold; if( canSendMarketingFee && !swapping && !automatedMarketMakerPairs[from] && from != owner() && to != owner() ) { claimMarketingFees(); } bool takeFee = !swapping; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } if (takeFee) { if (automatedMarketMakerPairs[to]) { uint256 marketingTax = amount * marketingTaxSell / 100; amount = amount - marketingTax; super._transfer(from, address(this), marketingTax); } else if (automatedMarketMakerPairs[from]) { uint256 marketingTax = amount * marketingTaxBuy / 100; amount = amount - marketingTax; super._transfer(from, address(this), marketingTax); } } super._transfer(from, to, amount); } function claimMarketingFees() public { uint _pendingMarketingFee = balanceOf(address(this)); if (_pendingMarketingFee > 0) { swapping = true; swapTokensForEth(_pendingMarketingFee); uint amount = address(this).balance; (bool success, ) = address(marketingAddress).call{ value: amount }(""); require(success, "Address: unable to extract value, tx may have reverted"); swapping = false; } } function excludeFromFees(address account, bool excluded) public onlyOwner { require(_isExcludedFromFees[account] != excluded, "Account is already the value of 'excluded'"); _isExcludedFromFees[account] = excluded; } function excludeMultipleAccountsFromFees(address[] memory accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFees[accounts[i]] = excluded; } } function enableTrading() external onlyOwner { tradeEnabled = true; emit TradeEnabled(); } function setmarketingTaxSell(uint256 selltax) external onlyOwner { require(selltax <= 60, "SellMarketingTax cannot be more than 50%"); marketingTaxSell = selltax; } function setmarketingTaxBuy(uint256 buytax) external onlyOwner { require(buytax <= 60, "BuyMarketingTax cannot be more than 50%"); marketingTaxBuy = buytax; } function setMarketingTaxThreshold(uint256 amount) external onlyOwner { marketingTaxThreshold = amount; } function setMarketingAddress(address payable _newaddress) external onlyOwner { _isExcludedFromFees[marketingAddress] = false; marketingAddress = _newaddress; _isExcludedFromFees[marketingAddress] = true; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } }
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":[],"name":"TradeEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimMarketingFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingTaxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingTaxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingTaxThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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 payable","name":"_newaddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMarketingTaxThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buytax","type":"uint256"}],"name":"setmarketingTaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"selltax","type":"uint256"}],"name":"setmarketingTaxSell","outputs":[],"stateMutability":"nonpayable","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":[],"name":"tradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateUniswapV2Router","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526006805460ff60a81b191690556004600781905560085569152d02c7e14af6800000600955600c80546001600160a01b03191673ff16dd268aa67d2316fe6f78f2bbc58830e3510d1790553480156200005c57600080fd5b506040518060400160405280600a81526020016953656e73656920496e7560b01b8152506040518060400160405280600481526020016353494e5560e01b8152508160039081620000ae9190620005b4565b506004620000bd8282620005b4565b505050620000da620000d46200032b60201b60201c565b6200032f565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015a919062000680565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ce919062000680565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200021c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000242919062000680565b600680546001600160a01b038086166001600160a01b031992831617909255600d80549284169290911691909117905590506200028181600162000381565b6001600a60006200029a6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600a909352818320805485166001908117909155600c549091168352912080549092161790556200032333620002ff601290565b6200030c90600a620007c7565b6200031d9064012a05f200620007d8565b62000448565b505062000808565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000908152600b602052604090205481151560ff9091161515036200041d5760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c7565000000000000000060648201526084015b60405180910390fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b038216620004a05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000414565b8060026000828254620004b49190620007f2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200053b57607f821691505b6020821081036200055c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200050b57600081815260208120601f850160051c810160208610156200058b5750805b601f850160051c820191505b81811015620005ac5782815560010162000597565b505050505050565b81516001600160401b03811115620005d057620005d062000510565b620005e881620005e1845462000526565b8462000562565b602080601f831160018114620006205760008415620006075750858301515b600019600386901b1c1916600185901b178555620005ac565b600085815260208120601f198616915b82811015620006515788860151825594840194600190910190840162000630565b5085821015620006705787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200069357600080fd5b81516001600160a01b0381168114620006ab57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000709578160001904821115620006ed57620006ed620006b2565b80851615620006fb57918102915b93841c9390800290620006cd565b509250929050565b6000826200072257506001620007c1565b816200073157506000620007c1565b81600181146200074a5760028114620007555762000775565b6001915050620007c1565b60ff841115620007695762000769620006b2565b50506001821b620007c1565b5060208310610133831016604e8410600b84101617156200079a575081810a620007c1565b620007a68383620006c8565b8060001904821115620007bd57620007bd620006b2565b0290505b92915050565b6000620006ab60ff84168362000711565b8082028115828204841417620007c157620007c1620006b2565b80820180821115620007c157620007c1620006b2565b611bd880620008186000396000f3fe6080604052600436106101f15760003560e01c80637c3a128f1161010d578063a5ece941116100a0578063c02466681161006f578063c0246668146105a0578063c492f046146105c0578063d621e813146105e0578063dd62ed3e14610601578063f2fde38b1461062157600080fd5b8063a5ece9411461051a578063a9059cbb1461053a578063b2e208791461055a578063b62496f51461057057600080fd5b8063906e9dd0116100dc578063906e9dd0146104a557806395d89b41146104c55780639a7a23d6146104da578063a457c2d7146104fa57600080fd5b80637c3a128f146104325780638753cc48146104525780638a8c523c146104725780638da5cb5b1461048757600080fd5b8063395093511161018557806365b8dbc01161015457806365b8dbc0146103b157806370a08231146103d1578063715018a614610407578063721e62331461041c57600080fd5b8063395093511461032257806342d0b0bc1461034257806349bd5a5e146103585780634fbee1931461037857600080fd5b80631694505e116101c15780631694505e1461028f57806318160ddd146102c757806323b872dd146102e6578063313ce5671461030657600080fd5b8062272d60146101fd57806306fdde031461021f57806307dce0f81461024a578063095ea7b31461025f57600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611726565b610641565b005b34801561022b57600080fd5b506102346106b4565b604051610241919061173f565b60405180910390f35b34801561025657600080fd5b5061021d610746565b34801561026b57600080fd5b5061027f61027a3660046117b2565b610851565b6040519015158152602001610241565b34801561029b57600080fd5b506006546102af906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b3480156102d357600080fd5b506002545b604051908152602001610241565b3480156102f257600080fd5b5061027f6103013660046117de565b61086b565b34801561031257600080fd5b5060405160128152602001610241565b34801561032e57600080fd5b5061027f61033d3660046117b2565b61088f565b34801561034e57600080fd5b506102d860075481565b34801561036457600080fd5b50600d546102af906001600160a01b031681565b34801561038457600080fd5b5061027f61039336600461181f565b6001600160a01b03166000908152600a602052604090205460ff1690565b3480156103bd57600080fd5b5061021d6103cc36600461181f565b6108b1565b3480156103dd57600080fd5b506102d86103ec36600461181f565b6001600160a01b031660009081526020819052604090205490565b34801561041357600080fd5b5061021d610abe565b34801561042857600080fd5b506102d860085481565b34801561043e57600080fd5b5061021d61044d366004611726565b610ad2565b34801561045e57600080fd5b5061021d61046d366004611726565b610b41565b34801561047e57600080fd5b5061021d610b4e565b34801561049357600080fd5b506005546001600160a01b03166102af565b3480156104b157600080fd5b5061021d6104c036600461181f565b610b94565b3480156104d157600080fd5b50610234610bec565b3480156104e657600080fd5b5061021d6104f5366004611853565b610bfb565b34801561050657600080fd5b5061027f6105153660046117b2565b610ca3565b34801561052657600080fd5b50600c546102af906001600160a01b031681565b34801561054657600080fd5b5061027f6105553660046117b2565b610d1e565b34801561056657600080fd5b506102d860095481565b34801561057c57600080fd5b5061027f61058b36600461181f565b600b6020526000908152604090205460ff1681565b3480156105ac57600080fd5b5061021d6105bb366004611853565b610d2c565b3480156105cc57600080fd5b5061021d6105db36600461189e565b610de2565b3480156105ec57600080fd5b5060065461027f90600160a81b900460ff1681565b34801561060d57600080fd5b506102d861061c366004611975565b610e56565b34801561062d57600080fd5b5061021d61063c36600461181f565b610e81565b610649610ef7565b603c8111156106af5760405162461bcd60e51b815260206004820152602760248201527f4275794d61726b6574696e675461782063616e6e6f74206265206d6f7265207460448201526668616e2035302560c81b60648201526084015b60405180910390fd5b600855565b6060600380546106c3906119ae565b80601f01602080910402602001604051908101604052809291908181526020018280546106ef906119ae565b801561073c5780601f106107115761010080835404028352916020019161073c565b820191906000526020600020905b81548152906001019060200180831161071f57829003601f168201915b5050505050905090565b30600090815260208190526040902054801561084e576006805460ff60a01b1916600160a01b17905561077881610f51565b600c5460405147916000916001600160a01b039091169083908381818185875af1925050503d80600081146107c9576040519150601f19603f3d011682016040523d82523d6000602084013e6107ce565b606091505b505090508061083e5760405162461bcd60e51b815260206004820152603660248201527f416464726573733a20756e61626c6520746f20657874726163742076616c75656044820152750b081d1e081b585e481a185d99481c995d995c9d195960521b60648201526084016106a6565b50506006805460ff60a01b191690555b50565b60003361085f8185856110ab565b60019150505b92915050565b6000336108798582856111cf565b610884858585611249565b506001949350505050565b60003361085f8185856108a28383610e56565b6108ac91906119fe565b6110ab565b6108b9610ef7565b6006546001600160a01b03908116908216036109235760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b60648201526084016106a6565b600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290516000929163c45a01559160048083019260209291908290030181865afa15801561097f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a39190611a11565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a299190611a11565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9a9190611a11565b600d80546001600160a01b0319166001600160a01b03929092169190911790555050565b610ac6610ef7565b610ad060006114e9565b565b610ada610ef7565b603c811115610b3c5760405162461bcd60e51b815260206004820152602860248201527f53656c6c4d61726b6574696e675461782063616e6e6f74206265206d6f7265206044820152677468616e2035302560c01b60648201526084016106a6565b600755565b610b49610ef7565b600955565b610b56610ef7565b6006805460ff60a81b1916600160a81b1790556040517f0270d74976d9c744a465e24d0e2675086607ed6163edf4e36cabaf9740ce2ef490600090a1565b610b9c610ef7565b600c80546001600160a01b039081166000908152600a6020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6060600480546106c3906119ae565b610c03610ef7565b600d546001600160a01b0390811690831603610c955760405162461bcd60e51b815260206004820152604560248201527f5468652050616e63616b655377617020706169722063616e6e6f74206265207260448201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b6572606482015264506169727360d81b608482015260a4016106a6565b610c9f828261153b565b5050565b60003381610cb18286610e56565b905083811015610d115760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106a6565b61088482868684036110ab565b60003361085f818585611249565b610d34610ef7565b6001600160a01b0382166000908152600a602052604090205481151560ff909116151503610db75760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b60648201526084016106a6565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b610dea610ef7565b60005b8251811015610e515781600a6000858481518110610e0d57610e0d611a2e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610e4981611a44565b915050610ded565b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610e89610ef7565b6001600160a01b038116610eee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a6565b61084e816114e9565b6005546001600160a01b03163314610ad05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106a6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610f8657610f86611a2e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fdf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110039190611a11565b8160018151811061101657611016611a2e565b6001600160a01b03928316602091820292909201015260065461103c91309116846110ab565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611075908590600090869030904290600401611a5d565b600060405180830381600087803b15801561108f57600080fd5b505af11580156110a3573d6000803e3d6000fd5b505050505050565b6001600160a01b03831661110d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a6565b6001600160a01b03821661116e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006111db8484610e56565b9050600019811461124357818110156112365760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106a6565b61124384848484036110ab565b50505050565b6001600160a01b03831661126f5760405162461bcd60e51b81526004016106a690611ace565b6001600160a01b0382166112955760405162461bcd60e51b81526004016106a690611b13565b806000036112a957610e51838360006115fc565b6005546001600160a01b038481169116148015906112d557506005546001600160a01b03838116911614155b1561133357600654600160a81b900460ff166113335760405162461bcd60e51b815260206004820152601d60248201527f54726164696e672069732063757272656e746c792064697361626c656400000060448201526064016106a6565b600954306000908152602081905260409020541080159081906113605750600654600160a01b900460ff16155b801561138557506001600160a01b0384166000908152600b602052604090205460ff16155b801561139f57506005546001600160a01b03858116911614155b80156113b957506005546001600160a01b03848116911614155b156113c6576113c6610746565b6006546001600160a01b0385166000908152600a602052604090205460ff600160a01b90920482161591168061141457506001600160a01b0384166000908152600a602052604090205460ff165b1561141d575060005b80156114d7576001600160a01b0384166000908152600b602052604090205460ff161561147f5760006064600754856114569190611b56565b6114609190611b6d565b905061146c8185611b8f565b93506114798630836115fc565b506114d7565b6001600160a01b0385166000908152600b602052604090205460ff16156114d75760006064600854856114b29190611b56565b6114bc9190611b6d565b90506114c88185611b8f565b93506114d58630836115fc565b505b6114e28585856115fc565b5050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000908152600b602052604090205481151560ff9091161515036115d15760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c7565000000000000000060648201526084016106a6565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b0383166116225760405162461bcd60e51b81526004016106a690611ace565b6001600160a01b0382166116485760405162461bcd60e51b81526004016106a690611b13565b6001600160a01b038316600090815260208190526040902054818110156116c05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106a6565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611243565b60006020828403121561173857600080fd5b5035919050565b600060208083528351808285015260005b8181101561176c57858101830151858201604001528201611750565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084e57600080fd5b80356117ad8161178d565b919050565b600080604083850312156117c557600080fd5b82356117d08161178d565b946020939093013593505050565b6000806000606084860312156117f357600080fd5b83356117fe8161178d565b9250602084013561180e8161178d565b929592945050506040919091013590565b60006020828403121561183157600080fd5b813561183c8161178d565b9392505050565b803580151581146117ad57600080fd5b6000806040838503121561186657600080fd5b82356118718161178d565b915061187f60208401611843565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156118b157600080fd5b823567ffffffffffffffff808211156118c957600080fd5b818501915085601f8301126118dd57600080fd5b81356020828211156118f1576118f1611888565b8160051b604051601f19603f8301168101818110868211171561191657611916611888565b60405292835281830193508481018201928984111561193457600080fd5b948201945b838610156119595761194a866117a2565b85529482019493820193611939565b96506119689050878201611843565b9450505050509250929050565b6000806040838503121561198857600080fd5b82356119938161178d565b915060208301356119a38161178d565b809150509250929050565b600181811c908216806119c257607f821691505b6020821081036119e257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610865576108656119e8565b600060208284031215611a2357600080fd5b815161183c8161178d565b634e487b7160e01b600052603260045260246000fd5b600060018201611a5657611a566119e8565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aad5784516001600160a01b031683529383019391830191600101611a88565b50506001600160a01b03969096166060850152505050608001529392505050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8082028115828204841417610865576108656119e8565b600082611b8a57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610865576108656119e856fea26469706673582212200077c52b0ba5ab4f9d44bd4d63277d91d3a7281c6cad404f10fe4d8fd15218d964736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101f15760003560e01c80637c3a128f1161010d578063a5ece941116100a0578063c02466681161006f578063c0246668146105a0578063c492f046146105c0578063d621e813146105e0578063dd62ed3e14610601578063f2fde38b1461062157600080fd5b8063a5ece9411461051a578063a9059cbb1461053a578063b2e208791461055a578063b62496f51461057057600080fd5b8063906e9dd0116100dc578063906e9dd0146104a557806395d89b41146104c55780639a7a23d6146104da578063a457c2d7146104fa57600080fd5b80637c3a128f146104325780638753cc48146104525780638a8c523c146104725780638da5cb5b1461048757600080fd5b8063395093511161018557806365b8dbc01161015457806365b8dbc0146103b157806370a08231146103d1578063715018a614610407578063721e62331461041c57600080fd5b8063395093511461032257806342d0b0bc1461034257806349bd5a5e146103585780634fbee1931461037857600080fd5b80631694505e116101c15780631694505e1461028f57806318160ddd146102c757806323b872dd146102e6578063313ce5671461030657600080fd5b8062272d60146101fd57806306fdde031461021f57806307dce0f81461024a578063095ea7b31461025f57600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611726565b610641565b005b34801561022b57600080fd5b506102346106b4565b604051610241919061173f565b60405180910390f35b34801561025657600080fd5b5061021d610746565b34801561026b57600080fd5b5061027f61027a3660046117b2565b610851565b6040519015158152602001610241565b34801561029b57600080fd5b506006546102af906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b3480156102d357600080fd5b506002545b604051908152602001610241565b3480156102f257600080fd5b5061027f6103013660046117de565b61086b565b34801561031257600080fd5b5060405160128152602001610241565b34801561032e57600080fd5b5061027f61033d3660046117b2565b61088f565b34801561034e57600080fd5b506102d860075481565b34801561036457600080fd5b50600d546102af906001600160a01b031681565b34801561038457600080fd5b5061027f61039336600461181f565b6001600160a01b03166000908152600a602052604090205460ff1690565b3480156103bd57600080fd5b5061021d6103cc36600461181f565b6108b1565b3480156103dd57600080fd5b506102d86103ec36600461181f565b6001600160a01b031660009081526020819052604090205490565b34801561041357600080fd5b5061021d610abe565b34801561042857600080fd5b506102d860085481565b34801561043e57600080fd5b5061021d61044d366004611726565b610ad2565b34801561045e57600080fd5b5061021d61046d366004611726565b610b41565b34801561047e57600080fd5b5061021d610b4e565b34801561049357600080fd5b506005546001600160a01b03166102af565b3480156104b157600080fd5b5061021d6104c036600461181f565b610b94565b3480156104d157600080fd5b50610234610bec565b3480156104e657600080fd5b5061021d6104f5366004611853565b610bfb565b34801561050657600080fd5b5061027f6105153660046117b2565b610ca3565b34801561052657600080fd5b50600c546102af906001600160a01b031681565b34801561054657600080fd5b5061027f6105553660046117b2565b610d1e565b34801561056657600080fd5b506102d860095481565b34801561057c57600080fd5b5061027f61058b36600461181f565b600b6020526000908152604090205460ff1681565b3480156105ac57600080fd5b5061021d6105bb366004611853565b610d2c565b3480156105cc57600080fd5b5061021d6105db36600461189e565b610de2565b3480156105ec57600080fd5b5060065461027f90600160a81b900460ff1681565b34801561060d57600080fd5b506102d861061c366004611975565b610e56565b34801561062d57600080fd5b5061021d61063c36600461181f565b610e81565b610649610ef7565b603c8111156106af5760405162461bcd60e51b815260206004820152602760248201527f4275794d61726b6574696e675461782063616e6e6f74206265206d6f7265207460448201526668616e2035302560c81b60648201526084015b60405180910390fd5b600855565b6060600380546106c3906119ae565b80601f01602080910402602001604051908101604052809291908181526020018280546106ef906119ae565b801561073c5780601f106107115761010080835404028352916020019161073c565b820191906000526020600020905b81548152906001019060200180831161071f57829003601f168201915b5050505050905090565b30600090815260208190526040902054801561084e576006805460ff60a01b1916600160a01b17905561077881610f51565b600c5460405147916000916001600160a01b039091169083908381818185875af1925050503d80600081146107c9576040519150601f19603f3d011682016040523d82523d6000602084013e6107ce565b606091505b505090508061083e5760405162461bcd60e51b815260206004820152603660248201527f416464726573733a20756e61626c6520746f20657874726163742076616c75656044820152750b081d1e081b585e481a185d99481c995d995c9d195960521b60648201526084016106a6565b50506006805460ff60a01b191690555b50565b60003361085f8185856110ab565b60019150505b92915050565b6000336108798582856111cf565b610884858585611249565b506001949350505050565b60003361085f8185856108a28383610e56565b6108ac91906119fe565b6110ab565b6108b9610ef7565b6006546001600160a01b03908116908216036109235760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b60648201526084016106a6565b600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290516000929163c45a01559160048083019260209291908290030181865afa15801561097f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a39190611a11565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a299190611a11565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9a9190611a11565b600d80546001600160a01b0319166001600160a01b03929092169190911790555050565b610ac6610ef7565b610ad060006114e9565b565b610ada610ef7565b603c811115610b3c5760405162461bcd60e51b815260206004820152602860248201527f53656c6c4d61726b6574696e675461782063616e6e6f74206265206d6f7265206044820152677468616e2035302560c01b60648201526084016106a6565b600755565b610b49610ef7565b600955565b610b56610ef7565b6006805460ff60a81b1916600160a81b1790556040517f0270d74976d9c744a465e24d0e2675086607ed6163edf4e36cabaf9740ce2ef490600090a1565b610b9c610ef7565b600c80546001600160a01b039081166000908152600a6020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6060600480546106c3906119ae565b610c03610ef7565b600d546001600160a01b0390811690831603610c955760405162461bcd60e51b815260206004820152604560248201527f5468652050616e63616b655377617020706169722063616e6e6f74206265207260448201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b6572606482015264506169727360d81b608482015260a4016106a6565b610c9f828261153b565b5050565b60003381610cb18286610e56565b905083811015610d115760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106a6565b61088482868684036110ab565b60003361085f818585611249565b610d34610ef7565b6001600160a01b0382166000908152600a602052604090205481151560ff909116151503610db75760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b60648201526084016106a6565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b610dea610ef7565b60005b8251811015610e515781600a6000858481518110610e0d57610e0d611a2e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610e4981611a44565b915050610ded565b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610e89610ef7565b6001600160a01b038116610eee5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a6565b61084e816114e9565b6005546001600160a01b03163314610ad05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106a6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610f8657610f86611a2e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fdf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110039190611a11565b8160018151811061101657611016611a2e565b6001600160a01b03928316602091820292909201015260065461103c91309116846110ab565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611075908590600090869030904290600401611a5d565b600060405180830381600087803b15801561108f57600080fd5b505af11580156110a3573d6000803e3d6000fd5b505050505050565b6001600160a01b03831661110d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a6565b6001600160a01b03821661116e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006111db8484610e56565b9050600019811461124357818110156112365760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106a6565b61124384848484036110ab565b50505050565b6001600160a01b03831661126f5760405162461bcd60e51b81526004016106a690611ace565b6001600160a01b0382166112955760405162461bcd60e51b81526004016106a690611b13565b806000036112a957610e51838360006115fc565b6005546001600160a01b038481169116148015906112d557506005546001600160a01b03838116911614155b1561133357600654600160a81b900460ff166113335760405162461bcd60e51b815260206004820152601d60248201527f54726164696e672069732063757272656e746c792064697361626c656400000060448201526064016106a6565b600954306000908152602081905260409020541080159081906113605750600654600160a01b900460ff16155b801561138557506001600160a01b0384166000908152600b602052604090205460ff16155b801561139f57506005546001600160a01b03858116911614155b80156113b957506005546001600160a01b03848116911614155b156113c6576113c6610746565b6006546001600160a01b0385166000908152600a602052604090205460ff600160a01b90920482161591168061141457506001600160a01b0384166000908152600a602052604090205460ff165b1561141d575060005b80156114d7576001600160a01b0384166000908152600b602052604090205460ff161561147f5760006064600754856114569190611b56565b6114609190611b6d565b905061146c8185611b8f565b93506114798630836115fc565b506114d7565b6001600160a01b0385166000908152600b602052604090205460ff16156114d75760006064600854856114b29190611b56565b6114bc9190611b6d565b90506114c88185611b8f565b93506114d58630836115fc565b505b6114e28585856115fc565b5050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000908152600b602052604090205481151560ff9091161515036115d15760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c7565000000000000000060648201526084016106a6565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b0383166116225760405162461bcd60e51b81526004016106a690611ace565b6001600160a01b0382166116485760405162461bcd60e51b81526004016106a690611b13565b6001600160a01b038316600090815260208190526040902054818110156116c05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106a6565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611243565b60006020828403121561173857600080fd5b5035919050565b600060208083528351808285015260005b8181101561176c57858101830151858201604001528201611750565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084e57600080fd5b80356117ad8161178d565b919050565b600080604083850312156117c557600080fd5b82356117d08161178d565b946020939093013593505050565b6000806000606084860312156117f357600080fd5b83356117fe8161178d565b9250602084013561180e8161178d565b929592945050506040919091013590565b60006020828403121561183157600080fd5b813561183c8161178d565b9392505050565b803580151581146117ad57600080fd5b6000806040838503121561186657600080fd5b82356118718161178d565b915061187f60208401611843565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156118b157600080fd5b823567ffffffffffffffff808211156118c957600080fd5b818501915085601f8301126118dd57600080fd5b81356020828211156118f1576118f1611888565b8160051b604051601f19603f8301168101818110868211171561191657611916611888565b60405292835281830193508481018201928984111561193457600080fd5b948201945b838610156119595761194a866117a2565b85529482019493820193611939565b96506119689050878201611843565b9450505050509250929050565b6000806040838503121561198857600080fd5b82356119938161178d565b915060208301356119a38161178d565b809150509250929050565b600181811c908216806119c257607f821691505b6020821081036119e257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610865576108656119e8565b600060208284031215611a2357600080fd5b815161183c8161178d565b634e487b7160e01b600052603260045260246000fd5b600060018201611a5657611a566119e8565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aad5784516001600160a01b031683529383019391830191600101611a88565b50506001600160a01b03969096166060850152505050608001529392505050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8082028115828204841417610865576108656119e8565b600082611b8a57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610865576108656119e856fea26469706673582212200077c52b0ba5ab4f9d44bd4d63277d91d3a7281c6cad404f10fe4d8fd15218d964736f6c63430008130033
Deployed Bytecode Sourcemap
21951:6374:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27152:181;;;;;;;;;;-1:-1:-1;27152:181:0;;;;;:::i;:::-;;:::i;:::-;;9382:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25845:497;;;;;;;;;;;;;:::i;11742:201::-;;;;;;;;;;-1:-1:-1;11742:201:0;;;;;:::i;:::-;;:::i;:::-;;;1512:14:1;;1505:22;1487:41;;1475:2;1460:18;11742:201:0;1347:187:1;21990:41:0;;;;;;;;;;-1:-1:-1;21990:41:0;;;;-1:-1:-1;;;;;21990:41:0;;;;;;-1:-1:-1;;;;;1729:32:1;;;1711:51;;1699:2;1684:18;21990:41:0;1539:229:1;10511:108:0;;;;;;;;;;-1:-1:-1;10599:12:0;;10511:108;;;1919:25:1;;;1907:2;1892:18;10511:108:0;1773:177:1;12523:261:0;;;;;;;;;;-1:-1:-1;12523:261:0;;;;;:::i;:::-;;:::i;10353:93::-;;;;;;;;;;-1:-1:-1;10353:93:0;;10436:2;2558:36:1;;2546:2;2531:18;10353:93:0;2416:184:1;13193:238:0;;;;;;;;;;-1:-1:-1;13193:238:0;;;;;:::i;:::-;;:::i;22106:35::-;;;;;;;;;;;;;;;;22521:28;;;;;;;;;;-1:-1:-1;22521:28:0;;;;-1:-1:-1;;;;;22521:28:0;;;27713:125;;;;;;;;;;-1:-1:-1;27713:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;27802:28:0;27778:4;27802:28;;;:19;:28;;;;;;;;;27713:125;23307:403;;;;;;;;;;-1:-1:-1;23307:403:0;;;;;:::i;:::-;;:::i;10682:127::-;;;;;;;;;;-1:-1:-1;10682:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10783:18:0;10756:7;10783:18;;;;;;;;;;;;10682:127;2803:103;;;;;;;;;;;;;:::i;22173:34::-;;;;;;;;;;;;;;;;26957:187;;;;;;;;;;-1:-1:-1;26957:187:0;;;;;:::i;:::-;;:::i;27341:118::-;;;;;;;;;;-1:-1:-1;27341:118:0;;;;;:::i;:::-;;:::i;26837:112::-;;;;;;;;;;;;;:::i;2162:87::-;;;;;;;;;;-1:-1:-1;2235:6:0;;-1:-1:-1;;;;;2235:6:0;2162:87;;27467:238;;;;;;;;;;-1:-1:-1;27467:238:0;;;;;:::i;:::-;;:::i;9601:104::-;;;;;;;;;;;;;:::i;23718:254::-;;;;;;;;;;-1:-1:-1;23718:254:0;;;;;:::i;:::-;;:::i;13934:436::-;;;;;;;;;;-1:-1:-1;13934:436:0;;;;;:::i;:::-;;:::i;22429:85::-;;;;;;;;;;-1:-1:-1;22429:85:0;;;;-1:-1:-1;;;;;22429:85:0;;;11015:193;;;;;;;;;;-1:-1:-1;11015:193:0;;;;;:::i;:::-;;:::i;22240:52::-;;;;;;;;;;;;;;;;22362:58;;;;;;;;;;-1:-1:-1;22362:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;26350:238;;;;;;;;;;-1:-1:-1;26350:238:0;;;;;:::i;:::-;;:::i;26596:233::-;;;;;;;;;;-1:-1:-1;26596:233:0;;;;;:::i;:::-;;:::i;22067:32::-;;;;;;;;;;-1:-1:-1;22067:32:0;;;;-1:-1:-1;;;22067:32:0;;;;;;11271:151;;;;;;;;;;-1:-1:-1;11271:151:0;;;;;:::i;:::-;;:::i;3061:201::-;;;;;;;;;;-1:-1:-1;3061:201:0;;;;;:::i;:::-;;:::i;27152:181::-;2048:13;:11;:13::i;:::-;27244:2:::1;27234:6;:12;;27226:64;;;::::0;-1:-1:-1;;;27226:64:0;;5733:2:1;27226:64:0::1;::::0;::::1;5715:21:1::0;5772:2;5752:18;;;5745:30;5811:34;5791:18;;;5784:62;-1:-1:-1;;;5862:18:1;;;5855:37;5909:19;;27226:64:0::1;;;;;;;;;27301:15;:24:::0;27152:181::o;9382:100::-;9436:13;9469:5;9462:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9382:100;:::o;25845:497::-;25939:4;25893:25;10783:18;;;;;;;;;;;25960:24;;25956:379;;26007:8;:15;;-1:-1:-1;;;;26007:15:0;-1:-1:-1;;;26007:15:0;;;26037:38;26054:20;26037:16;:38::i;:::-;26159:16;;26151:51;;26100:21;;26086:11;;-1:-1:-1;;;;;26159:16:0;;;;26100:21;;26086:11;26151:51;26086:11;26151:51;26100:21;26159:16;26151:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26132:70;;;26221:7;26213:74;;;;-1:-1:-1;;;26213:74:0;;6736:2:1;26213:74:0;;;6718:21:1;6775:2;6755:18;;;6748:30;6814:34;6794:18;;;6787:62;-1:-1:-1;;;6865:18:1;;;6858:52;6927:19;;26213:74:0;6534:418:1;26213:74:0;-1:-1:-1;;26298:8:0;:16;;-1:-1:-1;;;;26298:16:0;;;25956:379;25882:460;25845:497::o;11742:201::-;11825:4;793:10;11881:32;793:10;11897:7;11906:6;11881:8;:32::i;:::-;11931:4;11924:11;;;11742:201;;;;;:::o;12523:261::-;12620:4;793:10;12678:38;12694:4;793:10;12709:6;12678:15;:38::i;:::-;12727:27;12737:4;12743:2;12747:6;12727:9;:27::i;:::-;-1:-1:-1;12772:4:0;;12523:261;-1:-1:-1;;;;12523:261:0:o;13193:238::-;13281:4;793:10;13337:64;793:10;13353:7;13390:10;13362:25;793:10;13353:7;13362:9;:25::i;:::-;:38;;;;:::i;:::-;13337:8;:64::i;23307:403::-;2048:13;:11;:13::i;:::-;23416:15:::1;::::0;-1:-1:-1;;;;;23416:15:0;;::::1;23394:38:::0;;::::1;::::0;23386:86:::1;;;::::0;-1:-1:-1;;;23386:86:0;;7421:2:1;23386:86:0::1;::::0;::::1;7403:21:1::0;7460:2;7440:18;;;7433:30;7499:34;7479:18;;;7472:62;-1:-1:-1;;;7550:18:1;;;7543:33;7593:19;;23386:86:0::1;7219:399:1::0;23386:86:0::1;23483:15;:48:::0;;-1:-1:-1;;;;;;23483:48:0::1;-1:-1:-1::0;;;;;23483:48:0;::::1;::::0;;::::1;::::0;;;23585:25:::1;::::0;;-1:-1:-1;;;23585:25:0;;;;-1:-1:-1;;23483:48:0;23585:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;23483:48;23585:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23567:55:0::1;;23631:4;23638:15;;;;;;;;;-1:-1:-1::0;;;;;23638:15:0::1;-1:-1:-1::0;;;;;23638:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23567:94;::::0;-1:-1:-1;;;;;;23567:94:0::1;::::0;;;;;;-1:-1:-1;;;;;8109:15:1;;;23567:94:0::1;::::0;::::1;8091:34:1::0;8161:15;;8141:18;;;8134:43;8026:18;;23567:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23672:13;:30:::0;;-1:-1:-1;;;;;;23672:30:0::1;-1:-1:-1::0;;;;;23672:30:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;23307:403:0:o;2803:103::-;2048:13;:11;:13::i;:::-;2868:30:::1;2895:1;2868:18;:30::i;:::-;2803:103::o:0;26957:187::-;2048:13;:11;:13::i;:::-;27052:2:::1;27041:7;:13;;27033:66;;;::::0;-1:-1:-1;;;27033:66:0;;8390:2:1;27033:66:0::1;::::0;::::1;8372:21:1::0;8429:2;8409:18;;;8402:30;8468:34;8448:18;;;8441:62;-1:-1:-1;;;8519:18:1;;;8512:38;8567:19;;27033:66:0::1;8188:404:1::0;27033:66:0::1;27110:16;:26:::0;26957:187::o;27341:118::-;2048:13;:11;:13::i;:::-;27421:21:::1;:30:::0;27341:118::o;26837:112::-;2048:13;:11;:13::i;:::-;26892:12:::1;:19:::0;;-1:-1:-1;;;;26892:19:0::1;-1:-1:-1::0;;;26892:19:0::1;::::0;;26927:14:::1;::::0;::::1;::::0;26892:19;;26927:14:::1;26837:112::o:0;27467:238::-;2048:13;:11;:13::i;:::-;27576:16:::1;::::0;;-1:-1:-1;;;;;27576:16:0;;::::1;27596:5;27556:37:::0;;;:19:::1;:37;::::0;;;;;:45;;-1:-1:-1;;27556:45:0;;::::1;::::0;;;27612:30;;-1:-1:-1;;;;;;27612:30:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;27653:37;;;;;:44;;;;::::1;-1:-1:-1::0;27653:44:0::1;::::0;;27467:238::o;9601:104::-;9657:13;9690:7;9683:14;;;;;:::i;23718:254::-;2048:13;:11;:13::i;:::-;23825::::1;::::0;-1:-1:-1;;;;;23825:13:0;;::::1;23817:21:::0;;::::1;::::0;23809:103:::1;;;::::0;-1:-1:-1;;;23809:103:0;;8799:2:1;23809:103:0::1;::::0;::::1;8781:21:1::0;8838:2;8818:18;;;8811:30;8877:34;8857:18;;;8850:62;8948:34;8928:18;;;8921:62;-1:-1:-1;;;8999:19:1;;;8992:36;9045:19;;23809:103:0::1;8597:473:1::0;23809:103:0::1;23923:41;23952:4;23958:5;23923:28;:41::i;:::-;23718:254:::0;;:::o;13934:436::-;14027:4;793:10;14027:4;14110:25;793:10;14127:7;14110:9;:25::i;:::-;14083:52;;14174:15;14154:16;:35;;14146:85;;;;-1:-1:-1;;;14146:85:0;;9277:2:1;14146:85:0;;;9259:21:1;9316:2;9296:18;;;9289:30;9355:34;9335:18;;;9328:62;-1:-1:-1;;;9406:18:1;;;9399:35;9451:19;;14146:85:0;9075:401:1;14146:85:0;14267:60;14276:5;14283:7;14311:15;14292:16;:34;14267:8;:60::i;11015:193::-;11094:4;793:10;11150:28;793:10;11167:2;11171:6;11150:9;:28::i;26350:238::-;2048:13;:11;:13::i;:::-;-1:-1:-1;;;;;26443:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;:40;::::1;;:28;::::0;;::::1;:40;;::::0;26435:95:::1;;;::::0;-1:-1:-1;;;26435:95:0;;9683:2:1;26435:95:0::1;::::0;::::1;9665:21:1::0;9722:2;9702:18;;;9695:30;9761:34;9741:18;;;9734:62;-1:-1:-1;;;9812:18:1;;;9805:40;9862:19;;26435:95:0::1;9481:406:1::0;26435:95:0::1;-1:-1:-1::0;;;;;26541:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;26541:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26350:238::o;26596:233::-;2048:13;:11;:13::i;:::-;26711:9:::1;26707:115;26730:8;:15;26726:1;:19;26707:115;;;26802:8;26767:19;:32;26787:8;26796:1;26787:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26767:32:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26767:32:0;:43;;-1:-1:-1;;26767:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26747:3;::::1;::::0;::::1;:::i;:::-;;;;26707:115;;;;26596:233:::0;;:::o;11271:151::-;-1:-1:-1;;;;;11387:18:0;;;11360:7;11387:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11271:151::o;3061:201::-;2048:13;:11;:13::i;:::-;-1:-1:-1;;;;;3150:22:0;::::1;3142:73;;;::::0;-1:-1:-1;;;3142:73:0;;10366:2:1;3142:73:0::1;::::0;::::1;10348:21:1::0;10405:2;10385:18;;;10378:30;10444:34;10424:18;;;10417:62;-1:-1:-1;;;10495:18:1;;;10488:36;10541:19;;3142:73:0::1;10164:402:1::0;3142:73:0::1;3226:28;3245:8;3226:18;:28::i;2327:132::-:0;2235:6;;-1:-1:-1;;;;;2235:6:0;793:10;2391:23;2383:68;;;;-1:-1:-1;;;2383:68:0;;10773:2:1;2383:68:0;;;10755:21:1;;;10792:18;;;10785:30;10851:34;10831:18;;;10824:62;10903:18;;2383:68:0;10571:356:1;27846:472:0;27936:16;;;27950:1;27936:16;;;;;;;;27912:21;;27936:16;;;;;;;;;;-1:-1:-1;27936:16:0;27912:40;;27981:4;27963;27968:1;27963:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27963:23:0;;;:7;;;;;;;;;;:23;;;;28007:15;;:22;;;-1:-1:-1;;;28007:22:0;;;;:15;;;;;:20;;:22;;;;;27963:7;;28007:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27997:4;28002:1;27997:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27997:32:0;;;:7;;;;;;;;;:32;28072:15;;28040:62;;28057:4;;28072:15;28090:11;28040:8;:62::i;:::-;28113:15;;:197;;-1:-1:-1;;;28113:197:0;;-1:-1:-1;;;;;28113:15:0;;;;:66;;:197;;28194:11;;28113:15;;28237:4;;28264;;28284:15;;28113:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27901:417;27846:472;:::o;17927:346::-;-1:-1:-1;;;;;18029:19:0;;18021:68;;;;-1:-1:-1;;;18021:68:0;;12119:2:1;18021:68:0;;;12101:21:1;12158:2;12138:18;;;12131:30;12197:34;12177:18;;;12170:62;-1:-1:-1;;;12248:18:1;;;12241:34;12292:19;;18021:68:0;11917:400:1;18021:68:0;-1:-1:-1;;;;;18108:21:0;;18100:68;;;;-1:-1:-1;;;18100:68:0;;12524:2:1;18100:68:0;;;12506:21:1;12563:2;12543:18;;;12536:30;12602:34;12582:18;;;12575:62;-1:-1:-1;;;12653:18:1;;;12646:32;12695:19;;18100:68:0;12322:398:1;18100:68:0;-1:-1:-1;;;;;18181:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18233:32;;1919:25:1;;;18233:32:0;;1892:18:1;18233:32:0;;;;;;;17927:346;;;:::o;18564:419::-;18665:24;18692:25;18702:5;18709:7;18692:9;:25::i;:::-;18665:52;;-1:-1:-1;;18732:16:0;:37;18728:248;;18814:6;18794:16;:26;;18786:68;;;;-1:-1:-1;;;18786:68:0;;12927:2:1;18786:68:0;;;12909:21:1;12966:2;12946:18;;;12939:30;13005:31;12985:18;;;12978:59;13054:18;;18786:68:0;12725:353:1;18786:68:0;18898:51;18907:5;18914:7;18942:6;18923:16;:25;18898:8;:51::i;:::-;18654:329;18564:419;;;:::o;24242:1593::-;-1:-1:-1;;;;;24374:18:0;;24366:68;;;;-1:-1:-1;;;24366:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24453:16:0;;24445:64;;;;-1:-1:-1;;;24445:64:0;;;;;;;:::i;:::-;24525:6;24535:1;24525:11;24522:92;;24553:28;24569:4;24575:2;24579:1;24553:15;:28::i;24522:92::-;2235:6;;-1:-1:-1;;;;;24630:15:0;;;2235:6;;24630:15;;;;:32;;-1:-1:-1;2235:6:0;;-1:-1:-1;;;;;24649:13:0;;;2235:6;;24649:13;;24630:32;24626:120;;;24688:12;;-1:-1:-1;;;24688:12:0;;;;24680:54;;;;-1:-1:-1;;;24680:54:0;;14095:2:1;24680:54:0;;;14077:21:1;14134:2;14114:18;;;14107:30;14173:31;14153:18;;;14146:59;14222:18;;24680:54:0;13893:353:1;24680:54:0;24813:21;;24803:4;24758:24;10783:18;;;;;;;;;;;-1:-1:-1;24785:49:0;;;;;24850:45;;-1:-1:-1;24887:8:0;;-1:-1:-1;;;24887:8:0;;;;24886:9;24850:45;:94;;;;-1:-1:-1;;;;;;24913:31:0;;;;;;:25;:31;;;;;;;;24912:32;24850:94;:126;;;;-1:-1:-1;2235:6:0;;-1:-1:-1;;;;;24961:15:0;;;2235:6;;24961:15;;24850:126;:156;;;;-1:-1:-1;2235:6:0;;-1:-1:-1;;;;;24993:13:0;;;2235:6;;24993:13;;24850:156;24846:229;;;25043:20;:18;:20::i;:::-;25104:8;;-1:-1:-1;;;;;25126:25:0;;25088:12;25126:25;;;:19;:25;;;;;;25104:8;-1:-1:-1;;;25104:8:0;;;;;25103:9;;25126:25;;:52;;-1:-1:-1;;;;;;25155:23:0;;;;;;:19;:23;;;;;;;;25126:52;25123:99;;;-1:-1:-1;25205:5:0;25123:99;25241:7;25237:545;;;-1:-1:-1;;;;;25269:29:0;;;;;;:25;:29;;;;;;;;25265:506;;;25320:20;25371:3;25352:16;;25343:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;25320:54;-1:-1:-1;25402:21:0;25320:54;25402:6;:21;:::i;:::-;25393:30;;25442:50;25458:4;25472;25479:12;25442:15;:50::i;:::-;25300:208;25265:506;;;-1:-1:-1;;;;;25531:31:0;;;;;;:25;:31;;;;;;;;25527:244;;;25584:20;25634:3;25616:15;;25607:6;:24;;;;:::i;:::-;:30;;;;:::i;:::-;25584:53;-1:-1:-1;25665:21:0;25584:53;25665:6;:21;:::i;:::-;25656:30;;25705:50;25721:4;25735;25742:12;25705:15;:50::i;:::-;25564:207;25527:244;25794:33;25810:4;25816:2;25820:6;25794:15;:33::i;:::-;24355:1480;;24242:1593;;;:::o;3422:191::-;3515:6;;;-1:-1:-1;;;;;3532:17:0;;;-1:-1:-1;;;;;;3532:17:0;;;;;;;3565:40;;3515:6;;;3532:17;3515:6;;3565:40;;3496:16;;3565:40;3485:128;3422:191;:::o;23984:250::-;-1:-1:-1;;;;;24075:31:0;;;;;;:25;:31;;;;;;:40;;;:31;;;;:40;;;24067:109;;;;-1:-1:-1;;;24067:109:0;;14981:2:1;24067:109:0;;;14963:21:1;15020:2;15000:18;;;14993:30;15059:34;15039:18;;;15032:62;15130:26;15110:18;;;15103:54;15174:19;;24067:109:0;14779:420:1;24067:109:0;-1:-1:-1;;;;;24187:31:0;;;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;24187:39:0;;;;;;;;;;23984:250::o;14840:806::-;-1:-1:-1;;;;;14937:18:0;;14929:68;;;;-1:-1:-1;;;14929:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15016:16:0;;15008:64;;;;-1:-1:-1;;;15008:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15158:15:0;;15136:19;15158:15;;;;;;;;;;;15192:21;;;;15184:72;;;;-1:-1:-1;;;15184:72:0;;15406:2:1;15184:72:0;;;15388:21:1;15445:2;15425:18;;;15418:30;15484:34;15464:18;;;15457:62;-1:-1:-1;;;15535:18:1;;;15528:36;15581:19;;15184:72:0;15204:402:1;15184:72:0;-1:-1:-1;;;;;15292:15:0;;;:9;:15;;;;;;;;;;;15310:20;;;15292:38;;15510:13;;;;;;;;;;:23;;;;;;15562:26;;1919:25:1;;;15510:13:0;;15562:26;;1892:18:1;15562:26:0;;;;;;;15601:37;26596:233;14:180:1;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:134;956:20;;985:31;956:20;985:31;:::i;:::-;888:134;;;:::o;1027:315::-;1095:6;1103;1156:2;1144:9;1135:7;1131:23;1127:32;1124:52;;;1172:1;1169;1162:12;1124:52;1211:9;1198:23;1230:31;1255:5;1230:31;:::i;:::-;1280:5;1332:2;1317:18;;;;1304:32;;-1:-1:-1;;;1027:315:1:o;1955:456::-;2032:6;2040;2048;2101:2;2089:9;2080:7;2076:23;2072:32;2069:52;;;2117:1;2114;2107:12;2069:52;2156:9;2143:23;2175:31;2200:5;2175:31;:::i;:::-;2225:5;-1:-1:-1;2282:2:1;2267:18;;2254:32;2295:33;2254:32;2295:33;:::i;:::-;1955:456;;2347:7;;-1:-1:-1;;;2401:2:1;2386:18;;;;2373:32;;1955:456::o;2813:247::-;2872:6;2925:2;2913:9;2904:7;2900:23;2896:32;2893:52;;;2941:1;2938;2931:12;2893:52;2980:9;2967:23;2999:31;3024:5;2999:31;:::i;:::-;3049:5;2813:247;-1:-1:-1;;;2813:247:1:o;3325:160::-;3390:20;;3446:13;;3439:21;3429:32;;3419:60;;3475:1;3472;3465:12;3490:315;3555:6;3563;3616:2;3604:9;3595:7;3591:23;3587:32;3584:52;;;3632:1;3629;3622:12;3584:52;3671:9;3658:23;3690:31;3715:5;3690:31;:::i;:::-;3740:5;-1:-1:-1;3764:35:1;3795:2;3780:18;;3764:35;:::i;:::-;3754:45;;3490:315;;;;;:::o;3810:127::-;3871:10;3866:3;3862:20;3859:1;3852:31;3902:4;3899:1;3892:15;3926:4;3923:1;3916:15;3942:1191;4032:6;4040;4093:2;4081:9;4072:7;4068:23;4064:32;4061:52;;;4109:1;4106;4099:12;4061:52;4149:9;4136:23;4178:18;4219:2;4211:6;4208:14;4205:34;;;4235:1;4232;4225:12;4205:34;4273:6;4262:9;4258:22;4248:32;;4318:7;4311:4;4307:2;4303:13;4299:27;4289:55;;4340:1;4337;4330:12;4289:55;4376:2;4363:16;4398:4;4421:2;4417;4414:10;4411:36;;;4427:18;;:::i;:::-;4473:2;4470:1;4466:10;4505:2;4499:9;4568:2;4564:7;4559:2;4555;4551:11;4547:25;4539:6;4535:38;4623:6;4611:10;4608:22;4603:2;4591:10;4588:18;4585:46;4582:72;;;4634:18;;:::i;:::-;4670:2;4663:22;4720:18;;;4754:15;;;;-1:-1:-1;4796:11:1;;;4792:20;;;4824:19;;;4821:39;;;4856:1;4853;4846:12;4821:39;4880:11;;;;4900:148;4916:6;4911:3;4908:15;4900:148;;;4982:23;5001:3;4982:23;:::i;:::-;4970:36;;4933:12;;;;5026;;;;4900:148;;;5067:6;-1:-1:-1;5092:35:1;;-1:-1:-1;5108:18:1;;;5092:35;:::i;:::-;5082:45;;;;;;3942:1191;;;;;:::o;5138:388::-;5206:6;5214;5267:2;5255:9;5246:7;5242:23;5238:32;5235:52;;;5283:1;5280;5273:12;5235:52;5322:9;5309:23;5341:31;5366:5;5341:31;:::i;:::-;5391:5;-1:-1:-1;5448:2:1;5433:18;;5420:32;5461:33;5420:32;5461:33;:::i;:::-;5513:7;5503:17;;;5138:388;;;;;:::o;5939:380::-;6018:1;6014:12;;;;6061;;;6082:61;;6136:4;6128:6;6124:17;6114:27;;6082:61;6189:2;6181:6;6178:14;6158:18;6155:38;6152:161;;6235:10;6230:3;6226:20;6223:1;6216:31;6270:4;6267:1;6260:15;6298:4;6295:1;6288:15;6152:161;;5939:380;;;:::o;6957:127::-;7018:10;7013:3;7009:20;7006:1;6999:31;7049:4;7046:1;7039:15;7073:4;7070:1;7063:15;7089:125;7154:9;;;7175:10;;;7172:36;;;7188:18;;:::i;7623:251::-;7693:6;7746:2;7734:9;7725:7;7721:23;7717:32;7714:52;;;7762:1;7759;7752:12;7714:52;7794:9;7788:16;7813:31;7838:5;7813:31;:::i;9892:127::-;9953:10;9948:3;9944:20;9941:1;9934:31;9984:4;9981:1;9974:15;10008:4;10005:1;9998:15;10024:135;10063:3;10084:17;;;10081:43;;10104:18;;:::i;:::-;-1:-1:-1;10151:1:1;10140:13;;10024:135::o;10932:980::-;11194:4;11242:3;11231:9;11227:19;11273:6;11262:9;11255:25;11299:2;11337:6;11332:2;11321:9;11317:18;11310:34;11380:3;11375:2;11364:9;11360:18;11353:31;11404:6;11439;11433:13;11470:6;11462;11455:22;11508:3;11497:9;11493:19;11486:26;;11547:2;11539:6;11535:15;11521:29;;11568:1;11578:195;11592:6;11589:1;11586:13;11578:195;;;11657:13;;-1:-1:-1;;;;;11653:39:1;11641:52;;11748:15;;;;11713:12;;;;11689:1;11607:9;11578:195;;;-1:-1:-1;;;;;;;11829:32:1;;;;11824:2;11809:18;;11802:60;-1:-1:-1;;;11893:3:1;11878:19;11871:35;11790:3;10932:980;-1:-1:-1;;;10932:980:1:o;13083:401::-;13285:2;13267:21;;;13324:2;13304:18;;;13297:30;13363:34;13358:2;13343:18;;13336:62;-1:-1:-1;;;13429:2:1;13414:18;;13407:35;13474:3;13459:19;;13083:401::o;13489:399::-;13691:2;13673:21;;;13730:2;13710:18;;;13703:30;13769:34;13764:2;13749:18;;13742:62;-1:-1:-1;;;13835:2:1;13820:18;;13813:33;13878:3;13863:19;;13489:399::o;14251:168::-;14324:9;;;14355;;14372:15;;;14366:22;;14352:37;14342:71;;14393:18;;:::i;14424:217::-;14464:1;14490;14480:132;;14534:10;14529:3;14525:20;14522:1;14515:31;14569:4;14566:1;14559:15;14597:4;14594:1;14587:15;14480:132;-1:-1:-1;14626:9:1;;14424:217::o;14646:128::-;14713:9;;;14734:11;;;14731:37;;;14748:18;;:::i
Swarm Source
ipfs://0077c52b0ba5ab4f9d44bd4d63277d91d3a7281c6cad404f10fe4d8fd15218d9
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.