Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 83 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 23635290 | 151 days ago | IN | 0 ETH | 0.00019428 | ||||
| Approve | 20808013 | 546 days ago | IN | 0 ETH | 0.00064091 | ||||
| Approve | 20807988 | 546 days ago | IN | 0 ETH | 0.00070679 | ||||
| Approve | 20807933 | 546 days ago | IN | 0 ETH | 0.00090735 | ||||
| Approve | 20807931 | 546 days ago | IN | 0 ETH | 0.00092029 | ||||
| Approve | 20807928 | 546 days ago | IN | 0 ETH | 0.00102436 | ||||
| Disable Init Tax | 20807926 | 546 days ago | IN | 0 ETH | 0.00054741 | ||||
| Approve | 20807923 | 546 days ago | IN | 0 ETH | 0.00113244 | ||||
| Approve | 20807911 | 546 days ago | IN | 0 ETH | 0.00119917 | ||||
| Approve | 20807897 | 546 days ago | IN | 0 ETH | 0.00105736 | ||||
| Approve | 20807894 | 546 days ago | IN | 0 ETH | 0.0011357 | ||||
| Approve | 20807893 | 546 days ago | IN | 0 ETH | 0.00113401 | ||||
| Approve | 20807891 | 546 days ago | IN | 0 ETH | 0.00111534 | ||||
| Approve | 20807885 | 546 days ago | IN | 0 ETH | 0.0013373 | ||||
| Approve | 20807883 | 546 days ago | IN | 0 ETH | 0.00282936 | ||||
| Approve | 20807881 | 546 days ago | IN | 0 ETH | 0.00102567 | ||||
| Approve | 20807878 | 546 days ago | IN | 0 ETH | 0.00110351 | ||||
| Approve | 20807878 | 546 days ago | IN | 0 ETH | 0.00119692 | ||||
| Approve | 20807878 | 546 days ago | IN | 0 ETH | 0.00119692 | ||||
| Approve | 20807878 | 546 days ago | IN | 0 ETH | 0.00119692 | ||||
| Approve | 20807877 | 546 days ago | IN | 0 ETH | 0.00114396 | ||||
| Approve | 20807877 | 546 days ago | IN | 0 ETH | 0.00114396 | ||||
| Approve | 20807877 | 546 days ago | IN | 0 ETH | 0.00123768 | ||||
| Approve | 20807877 | 546 days ago | IN | 0 ETH | 0.00123768 | ||||
| Approve | 20807876 | 546 days ago | IN | 0 ETH | 0.00113689 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 20808080 | 546 days ago | 0.00239907 ETH | ||||
| Transfer | 20808080 | 546 days ago | 0.00239907 ETH | ||||
| Transfer | 20808080 | 546 days ago | 0.00253237 ETH | ||||
| Transfer | 20808080 | 546 days ago | 0.00253237 ETH | ||||
| Transfer | 20808080 | 546 days ago | 0.0026771 ETH | ||||
| Transfer | 20808080 | 546 days ago | 0.0026771 ETH | ||||
| Transfer | 20808024 | 546 days ago | 0.00283462 ETH | ||||
| Transfer | 20808024 | 546 days ago | 0.00283462 ETH | ||||
| Transfer | 20808014 | 546 days ago | 0.00287197 ETH | ||||
| Transfer | 20808014 | 546 days ago | 0.00287197 ETH | ||||
| Transfer | 20808005 | 546 days ago | 0.00304727 ETH | ||||
| Transfer | 20808005 | 546 days ago | 0.00304727 ETH | ||||
| Transfer | 20807991 | 546 days ago | 0.00372765 ETH | ||||
| Transfer | 20807991 | 546 days ago | 0.00372765 ETH | ||||
| Transfer | 20807991 | 546 days ago | 0.00391249 ETH | ||||
| Transfer | 20807991 | 546 days ago | 0.00391249 ETH | ||||
| Transfer | 20807990 | 546 days ago | 0.00395253 ETH | ||||
| Transfer | 20807990 | 546 days ago | 0.00395253 ETH | ||||
| Transfer | 20807983 | 546 days ago | 0.00423787 ETH | ||||
| Transfer | 20807983 | 546 days ago | 0.00423787 ETH | ||||
| Transfer | 20807983 | 546 days ago | 0.00455528 ETH | ||||
| Transfer | 20807983 | 546 days ago | 0.00455528 ETH | ||||
| Transfer | 20807983 | 546 days ago | 0.00490975 ETH | ||||
| Transfer | 20807983 | 546 days ago | 0.00490975 ETH | ||||
| Transfer | 20807982 | 546 days ago | 0.00544148 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Diddy
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
/**
* Diddy one of the realest niggers to ever walk the planet
*
*
* WEB: https://diddyoneth.com
* X: https://x.com/diddyoneth
* TG: https://t.me/diddyoneth
*
* SayN0toDaD1ddl3r
*/
/*solhint-disable*/
pragma solidity ^0.8.12;
import { Context } from "@openzeppelin/contracts/utils/Context.sol";
import { Address } from "@openzeppelin/contracts/utils/Address.sol";
import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol";
import { IERC20 } from "@openzeppelin/contracts/interfaces/IERC20.sol";
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract Diddy is Context, Ownable2Step, IERC20 {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
address payable private TREASURY_WALLET;
/**
* @notice 25% tax the first 100 swaps
*/
uint256 public constant INIT_TAX = 25;
uint256 private immutable N_FIRST_SWAPS;
uint256 private _currentSwap;
uint256 public BUY_TAX = 0;
uint256 public SELL_TAX = 0;
string private constant _NAME = "No Diddy";
string private constant _SYMBOL = "DIDDY";
uint8 private constant _DECIMALS = 9;
uint256 private constant _SUPPLY = 1_000_000_000 * 10 ** _DECIMALS;
uint256 public constant MAX_TX_AMOUNT = _SUPPLY / 50; //2%
uint256 public constant MAX_WALLET_SIZE = _SUPPLY / 50; //2%
uint256 public constant TAX_SWAP_THRESHOLD = _SUPPLY / 2000; //0.05%
uint256 public constant MAX_TAX_SWAP = _SUPPLY / 1000; //0.1%
IUniswapV2Router02 private immutable UniswapV2Router;
bool private inSwap = false;
/**
* @dev Liquidity pairs are exempted from wallet limit
*/
mapping(address => bool) internal _liqPairs;
modifier lockTheSwap() {
inSwap = true;
_;
inSwap = false;
}
constructor(address _router, uint256 nFirstSwaps) {
//0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D router ethereum
//0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008 router sepolia
//0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24 router base
TREASURY_WALLET = payable(0x66A2818db445D72ae6a76d4Abe4bF6f1c6234E1f);
_balances[_msgSender()] = _SUPPLY;
UniswapV2Router = IUniswapV2Router02(_router);
address uniswapPair = IUniswapV2Factory(UniswapV2Router.factory()).createPair(address(this), UniswapV2Router.WETH());
_liqPairs[uniswapPair] = true;
N_FIRST_SWAPS = nFirstSwaps;
emit Transfer(address(0), _msgSender(), _SUPPLY);
}
/**
* @dev Returns the name of the token.
*/
function name() public pure returns (string memory) {
return _NAME;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public pure 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 value {ERC20} uses, unless this function is
* overloaded;
*
* 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 pure returns (uint8) {
return _DECIMALS;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public pure override returns (uint256) {
return _SUPPLY;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view 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 override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
/**
* @dev See previous function, same functionality but recipient is dead address.
*
* Requirements:
*
* - the caller must have a balance of at least `amount`.
*/
function burn(uint256 amount) public returns (bool) {
_transfer(_msgSender(), address(0xdEaD), amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view 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 override returns (bool) {
_approve(_msgSender(), 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}.
*
* Requirements:
*
* - `sender` and `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
* - the caller must have allowance for ``sender``'s tokens of at least
* `amount`.
*/
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
require(_allowances[sender][_msgSender()] >= amount, "ERC20: transfer amount exceeds allowance");
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()] - 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 returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][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 returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
return true;
}
/**
* @dev Moves tokens `amount` from `sender` to `recipient`.
*
* This is 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:
*
* - `sender` cannot be the zero address.
* - `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
*/
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
if (to != address(this) && !_liqPairs[to] && _currentSwap < N_FIRST_SWAPS && to != owner() && from != owner()) {
uint256 heldTokens = balanceOf(to);
require(
(heldTokens + amount) <= MAX_WALLET_SIZE,
"Total Holding is currently limited, you can not buy that much."
);
require(amount <= MAX_TX_AMOUNT, "TX Limit Exceeded");
}
uint256 taxAmount = 0;
uint256 taxApply = 0;
if(to != owner() && from != owner()) {
if (_liqPairs[from] && to != address(this)) {
taxApply = _currentSwap < N_FIRST_SWAPS ? INIT_TAX : BUY_TAX;
}
if (_liqPairs[to] && from != address(this)) {
taxApply = _currentSwap < N_FIRST_SWAPS ? INIT_TAX : SELL_TAX;
}
}
taxAmount = amount * taxApply / 100;
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && _liqPairs[to] && contractTokenBalance > TAX_SWAP_THRESHOLD) {
swapTokensForEth(min(amount, min(contractTokenBalance, MAX_TAX_SWAP)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
}
if (taxAmount > 0) {
_currentSwap++;
_balances[address(this)] += taxAmount;
emit Transfer(from, address(this), taxAmount);
}
_balances[from] -= amount;
_balances[to] += (amount - taxAmount);
emit Transfer(from, to, amount - taxAmount);
}
/**
* @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) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function min(uint256 a, uint256 b) private pure returns (uint256) {
return (a > b) ? b : a;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
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
);
}
function sendETHToFee(uint256 amount) private {
TREASURY_WALLET.transfer(amount);
}
//#region Admin
/**
* @notice We transfer the full contract ownership, contract, treasury and gas
*/
function acceptOwnership() public override {
address sender = _msgSender();
require(pendingOwner() == sender, "Ownable2Step: caller is not the new owner");
_transferOwnership(sender);
}
/**
* This function is required to ensure all liq pairs: are exempt from limits
* @param _adr pair address
* @param _isLiqPair liq pair
*/
function setLiqPair(address _adr, bool _isLiqPair) external onlyOwner {
require(Address.isContract(_adr), "Only liquidity pairs...");
_liqPairs[_adr] = _isLiqPair;
}
/**
* This function can be used to create liquidity pairs in others uniswapv2 forks
* @param _adr address from uniswapv2 fork router
* @param _adrLiq address of the token you want to use as liq pair
*/
function createLiqPair(address _adr, address _adrLiq) external onlyOwner {
address _liqPair = IUniswapV2Factory(IUniswapV2Router02(_adr).factory()).createPair(address(this), _adrLiq);
_liqPairs[_liqPair] = true;
}
function disableInitTax() external onlyOwner {
_currentSwap = N_FIRST_SWAPS;
}
//endregion
/* solhint-disable-next-line no-empty-blocks */
receive() external payable {}
fallback() external payable {}
}// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol) pragma solidity ^0.8.0; import "../token/ERC20/IERC20.sol";
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)
pragma solidity ^0.8.0;
import "./Ownable.sol";
/**
* @dev Contract module which provides 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} and {acceptOwnership}.
*
* This module is used through inheritance. It will make available all functions
* from parent (Ownable).
*/
abstract contract Ownable2Step is Ownable {
address private _pendingOwner;
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);
/**
* @dev Returns the address of the pending owner.
*/
function pendingOwner() public view virtual returns (address) {
return _pendingOwner;
}
/**
* @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual override onlyOwner {
_pendingOwner = newOwner;
emit OwnershipTransferStarted(owner(), newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual override {
delete _pendingOwner;
super._transferOwnership(newOwner);
}
/**
* @dev The new owner accepts the ownership transfer.
*/
function acceptOwnership() public virtual {
address sender = _msgSender();
require(pendingOwner() == sender, "Ownable2Step: caller is not the new owner");
_transferOwnership(sender);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
*
* Furthermore, `isContract` will also return true if the target contract within
* the same transaction is already scheduled for destruction by `SELFDESTRUCT`,
* which only has an effect at the end of a transaction.
* ====
*
* [IMPORTANT]
* ====
* You shouldn't rely on `isContract` to protect against flash loan attacks!
*
* Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
* like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
* constructor.
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize/address.code.length, which returns 0
// for contracts in construction, since the code is only stored at the end
// of the constructor execution.
return account.code.length > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
* the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
*
* _Available since v4.8._
*/
function verifyCallResultFromTarget(
address target,
bool success,
bytes memory returndata,
string memory errorMessage
) internal view returns (bytes memory) {
if (success) {
if (returndata.length == 0) {
// only check isContract if the call was successful and the return data is empty
// otherwise we already know that it was a contract
require(isContract(target), "Address: call to non-contract");
}
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
/**
* @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason or using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
function _revert(bytes memory returndata, string memory errorMessage) private pure {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
/// @solidity memory-safe-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}// SPDX-License-Identifier: MIT
// 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;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.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);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @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);
}
}{
"optimizer": {
"enabled": true,
"runs": 999
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"remappings": [],
"evmVersion": "byzantium"
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"uint256","name":"nFirstSwaps","type":"uint256"}],"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":"OwnershipTransferStarted","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"BUY_TAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INIT_TAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_TAX_SWAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_TX_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_WALLET_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SELL_TAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TAX_SWAP_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"address","name":"_adrLiq","type":"address"}],"name":"createLiqPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"disableInitTax","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_isLiqPair","type":"bool"}],"name":"setLiqPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c0604052600060068190556007556008805460ff191690553480156200002557600080fd5b506040516200207a3803806200207a8339810160408190526200004891620003e7565b6200006e6200005f6401000000006200034a810204565b6401000000006200034e810204565b60048054600160a060020a0319167366a2818db445d72ae6a76d4abe4bf6f1c6234e1f179055620000a26009600a62000547565b620000b290633b9aca006200055f565b60026000620000c96401000000006200034a810204565b600160a060020a0316600160a060020a031681526020019081526020016000208190555081600160a060020a031660a081600160a060020a031681525050600060a051600160a060020a031663c45a01556040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381865afa15801562000166573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018c919062000581565b600160a060020a031663c9c653963060a051600160a060020a031663ad5c46486040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381865afa158015620001f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021e919062000581565b6040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a039283166004820152911660248201526044016020604051808303816000875af115801562000283573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a9919062000581565b600160a060020a0381166000908152600960205260409020805460ff1916600117905560808390529050620002e66401000000006200034a810204565b600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003206009600a62000547565b6200033090633b9aca006200055f565b60405190815260200160405180910390a35050506200059f565b3390565b60018054600160a060020a0319169055620003778164010000000062000af76200037a82021704565b50565b60008054600160a060020a03838116600160a060020a0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8051600160a060020a0381168114620003e257600080fd5b919050565b60008060408385031215620003fb57600080fd5b6200040683620003ca565b9150602083015190509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600181815b80851115620004885781600019048211156200046a576200046a62000416565b808516156200047857918102915b600290940493908002906200044a565b509250929050565b600082620004a15750600162000541565b81620004b05750600062000541565b8160018114620004c95760028114620004d457620004f5565b600191505062000541565b60ff841115620004e857620004e862000416565b8360020a91505062000541565b5060208310610133831016604e8410600b84101617156200051a575081810a62000541565b62000526838362000445565b80600019048211156200053d576200053d62000416565b0290505b92915050565b60006200055860ff84168362000490565b9392505050565b60008160001904831182151516156200057c576200057c62000416565b500290565b6000602082840312156200059457600080fd5b6200055882620003ca565b60805160a051611a92620005e8600039600081816114570152818161152c015261158101526000818161084c01528181610edf01528181611101015261116e0152611a926000f3fe6080604052600436106101b5576000357c01000000000000000000000000000000000000000000000000000000009004806370a08231116100fd578063a9059cbb116100a1578063dd62ed3e1161007e578063dd62ed3e146104ae578063e30c3978146104f4578063f0407d8114610512578063f2fde38b1461053257005b8063a9059cbb14610464578063c3ea6b2c14610484578063cb05afbd1461049957005b80638ae2702f116100da5780638ae2702f1461032c5780638da5cb5b146103cc57806395d89b41146103fe578063a457c2d71461044457005b806370a082311461036c578063715018a6146103a257806379ba5097146103b757005b806328df9ada1161016457806342966c681161014157806342966c681461030c5780634f0543171461032c57806354ad8aee146103415780635f4943bc1461035757005b806328df9ada146102bb578063313ce567146102d057806339509351146102ec57005b80630fb6d624116101925780630fb6d6241461026657806318160ddd1461028657806323b872dd1461029b57005b806302af37bb146101be57806306fdde03146101e7578063095ea7b31461023657005b366101bc57005b005b3480156101ca57600080fd5b506101d460065481565b6040519081526020015b60405180910390f35b3480156101f357600080fd5b5060408051808201909152600881527f4e6f20446964647900000000000000000000000000000000000000000000000060208201525b6040516101de919061163d565b34801561024257600080fd5b506102566102513660046116a7565b610552565b60405190151581526020016101de565b34801561027257600080fd5b506101bc6102813660046116d3565b610569565b34801561029257600080fd5b506101d46106a5565b3480156102a757600080fd5b506102566102b636600461170c565b6106c6565b3480156102c757600080fd5b506101d46107bc565b3480156102dc57600080fd5b50604051600981526020016101de565b3480156102f857600080fd5b506102566103073660046116a7565b6107e6565b34801561031857600080fd5b5061025661032736600461174d565b61081d565b34801561033857600080fd5b506101d4610834565b34801561034d57600080fd5b506101d460075481565b34801561036357600080fd5b506101bc610842565b34801561037857600080fd5b506101d4610387366004611766565b600160a060020a031660009081526002602052604090205490565b3480156103ae57600080fd5b506101bc610870565b3480156103c357600080fd5b506101bc610884565b3480156103d857600080fd5b50600054600160a060020a03165b604051600160a060020a0390911681526020016101de565b34801561040a57600080fd5b5060408051808201909152600581527f44494444590000000000000000000000000000000000000000000000000000006020820152610229565b34801561045057600080fd5b5061025661045f3660046116a7565b61091a565b34801561047057600080fd5b5061025661047f3660046116a7565b6109cb565b34801561049057600080fd5b506101d46109d8565b3480156104a557600080fd5b506101d4601981565b3480156104ba57600080fd5b506101d46104c93660046116d3565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b34801561050057600080fd5b50600154600160a060020a03166103e6565b34801561051e57600080fd5b506101bc61052d366004611783565b6109e7565b34801561053e57600080fd5b506101bc61054d366004611766565b610a79565b600061055f338484610b54565b5060015b92915050565b610571610cbc565b600082600160a060020a031663c45a01556040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381865afa1580156105cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f191906117b6565b6040517fc9c65396000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038481166024830152919091169063c9c65396906044016020604051808303816000875af115801561065a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067e91906117b6565b600160a060020a03166000908152600960205260409020805460ff19166001179055505050565b60006106b36009600a6118e9565b6106c190633b9aca006118f8565b905090565b600160a060020a038316600090815260036020908152604080832033845290915281205482111561076c57604051600080516020611a3d833981519152815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610777848484610d1e565b600160a060020a0384166000908152600360209081526040808320338085529252909120546107b29186916107ad908690611917565b610b54565b5060019392505050565b6107d06107cb6009600a6118e9565b6107d990633b9aca006118f8565b6107e3919061192e565b81565b336000818152600360209081526040808320600160a060020a0387168452909152812054909161055f9185906107ad908690611969565b600061082c3361dead84610d1e565b506001919050565b60326107cb6009600a6118e9565b61084a610cbc565b7f0000000000000000000000000000000000000000000000000000000000000000600555565b610878610cbc565b61088260006113b5565b565b6001543390600160a060020a0316811461090e57604051600080516020611a3d833981519152815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610763565b610917816113b5565b50565b336000908152600360209081526040808320600160a060020a0386168452909152812054828110156109bc57604051600080516020611a3d833981519152815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610763565b6107b233856107ad8685611917565b600061055f338484610d1e565b6103e86107cb6009600a6118e9565b6109ef610cbc565b600160a060020a0382163b610a4e57604051600080516020611a3d833981519152815260206004820152601760248201527f4f6e6c79206c69717569646974792070616972732e2e2e0000000000000000006044820152606401610763565b600160a060020a03919091166000908152600960205260409020805460ff1916911515919091179055565b610a81610cbc565b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091168117909155610abf600054600160a060020a031690565b600160a060020a03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600160a060020a038316610bd757604051600080516020611a3d8339815191528152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610763565b600160a060020a038216610c5b57604051600080516020611a3d833981519152815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610763565b600160a060020a0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600054600160a060020a0316331461088257604051600080516020611a3d833981519152815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610763565b600160a060020a038316610da257604051600080516020611a3d833981519152815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610763565b600160a060020a038216610e2657604051600080516020611a3d833981519152815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610763565b60008111610ea457604051600080516020611a3d833981519152815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610763565b600160a060020a0382163014801590610ed65750600160a060020a03821660009081526009602052604090205460ff16155b8015610f0357507f0000000000000000000000000000000000000000000000000000000000000000600554105b8015610f1d5750600054600160a060020a03838116911614155b8015610f375750600054600160a060020a03848116911614155b1561108057600160a060020a0382166000908152600260205260409020546032610f636009600a6118e9565b610f7190633b9aca006118f8565b610f7b919061192e565b610f858383611969565b111561100157604051600080516020611a3d833981519152815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610763565b603261100f6009600a6118e9565b61101d90633b9aca006118f8565b611027919061192e565b82111561107e57604051600080516020611a3d833981519152815260206004820152601160248201527f5458204c696d69742045786365656465640000000000000000000000000000006044820152606401610763565b505b600080611095600054600160a060020a031690565b600160a060020a031684600160a060020a0316141580156110c45750600054600160a060020a03868116911614155b156111a357600160a060020a03851660009081526009602052604090205460ff1680156110fa5750600160a060020a0384163014155b15611136577f00000000000000000000000000000000000000000000000000000000000000006005541061113057600654611133565b60195b90505b600160a060020a03841660009081526009602052604090205460ff1680156111675750600160a060020a0385163014155b156111a3577f00000000000000000000000000000000000000000000000000000000000000006005541061119d576007546111a0565b60195b90505b60646111af82856118f8565b6111b9919061192e565b306000908152600260205260409020546008549193509060ff161580156111f85750600160a060020a03851660009081526009602052604090205460ff165b801561122957506107d061120e6009600a6118e9565b61121c90633b9aca006118f8565b611226919061192e565b81115b1561127e5761126a61126585611260846103e86112486009600a6118e9565b61125690633b9aca006118f8565b611260919061192e565b6113db565b6113f3565b3031801561127c5761127c30316115ff565b505b82156112fe576005805490600061129483611981565b909155505030600090815260026020526040812080548592906112b8908490611969565b90915550506040518381523090600160a060020a038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b600160a060020a03861660009081526002602052604081208054869290611326908490611917565b9091555061133690508385611917565b600160a060020a0386166000908152600260205260408120805490919061135e908490611969565b9091555050600160a060020a038086169087167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61139c8688611917565b60405190815260200160405180910390a3505050505050565b6001805473ffffffffffffffffffffffffffffffffffffffff1916905561091781610af7565b60008183116113ea57826113ec565b815b9392505050565b6008805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114355761143561199c565b6020026020010190600160a060020a03169081600160a060020a0316815250507f0000000000000000000000000000000000000000000000000000000000000000600160a060020a031663ad5c46486040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381865afa1580156114cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f391906117b6565b816001815181106115065761150661199c565b6020026020010190600160a060020a03169081600160a060020a031681525050611551307f000000000000000000000000000000000000000000000000000000000000000084610b54565b6040517f791ac947000000000000000000000000000000000000000000000000000000008152600160a060020a037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906115bf9085906000908690309042906004016119cb565b600060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b50506008805460ff1916905550505050565b600454604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015611639573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b8181101561166a5785810183015185820160400152820161164e565b8181111561167c576000604083870101525b50601f01601f1916929092016040019392505050565b600160a060020a038116811461091757600080fd5b600080604083850312156116ba57600080fd5b82356116c581611692565b946020939093013593505050565b600080604083850312156116e657600080fd5b82356116f181611692565b9150602083013561170181611692565b809150509250929050565b60008060006060848603121561172157600080fd5b833561172c81611692565b9250602084013561173c81611692565b929592945050506040919091013590565b60006020828403121561175f57600080fd5b5035919050565b60006020828403121561177857600080fd5b81356113ec81611692565b6000806040838503121561179657600080fd5b82356117a181611692565b91506020830135801515811461170157600080fd5b6000602082840312156117c857600080fd5b81516113ec81611692565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600181815b8085111561183f578160001904821115611823576118236117d3565b8085161561183057918102915b60029094049390800290611807565b509250929050565b60008261185657506001610563565b8161186357506000610563565b81600181146118795760028114611883576118a0565b6001915050610563565b60ff841115611894576118946117d3565b8360020a915050610563565b5060208310610133831016604e8410600b84101617156118c3575081810a610563565b6118cd8383611802565b80600019048211156118e1576118e16117d3565b029392505050565b60006113ec60ff841683611847565b6000816000190483118215151615611912576119126117d3565b500290565b600082821015611929576119296117d3565b500390565b600082611964577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000821982111561197c5761197c6117d3565b500190565b6000600019821415611995576119956117d3565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a1b578451600160a060020a0316835293830193918301916001016119f6565b5050600160a060020a0396909616606085015250505060800152939250505056fe08c379a000000000000000000000000000000000000000000000000000000000a2646970667358221220a4409ccb70a8f875f5675574e34393ddbdb4adee0c9c95c275c962a58a320fa664736f6c634300080c00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000007d
Deployed Bytecode
0x6080604052600436106101b5576000357c01000000000000000000000000000000000000000000000000000000009004806370a08231116100fd578063a9059cbb116100a1578063dd62ed3e1161007e578063dd62ed3e146104ae578063e30c3978146104f4578063f0407d8114610512578063f2fde38b1461053257005b8063a9059cbb14610464578063c3ea6b2c14610484578063cb05afbd1461049957005b80638ae2702f116100da5780638ae2702f1461032c5780638da5cb5b146103cc57806395d89b41146103fe578063a457c2d71461044457005b806370a082311461036c578063715018a6146103a257806379ba5097146103b757005b806328df9ada1161016457806342966c681161014157806342966c681461030c5780634f0543171461032c57806354ad8aee146103415780635f4943bc1461035757005b806328df9ada146102bb578063313ce567146102d057806339509351146102ec57005b80630fb6d624116101925780630fb6d6241461026657806318160ddd1461028657806323b872dd1461029b57005b806302af37bb146101be57806306fdde03146101e7578063095ea7b31461023657005b366101bc57005b005b3480156101ca57600080fd5b506101d460065481565b6040519081526020015b60405180910390f35b3480156101f357600080fd5b5060408051808201909152600881527f4e6f20446964647900000000000000000000000000000000000000000000000060208201525b6040516101de919061163d565b34801561024257600080fd5b506102566102513660046116a7565b610552565b60405190151581526020016101de565b34801561027257600080fd5b506101bc6102813660046116d3565b610569565b34801561029257600080fd5b506101d46106a5565b3480156102a757600080fd5b506102566102b636600461170c565b6106c6565b3480156102c757600080fd5b506101d46107bc565b3480156102dc57600080fd5b50604051600981526020016101de565b3480156102f857600080fd5b506102566103073660046116a7565b6107e6565b34801561031857600080fd5b5061025661032736600461174d565b61081d565b34801561033857600080fd5b506101d4610834565b34801561034d57600080fd5b506101d460075481565b34801561036357600080fd5b506101bc610842565b34801561037857600080fd5b506101d4610387366004611766565b600160a060020a031660009081526002602052604090205490565b3480156103ae57600080fd5b506101bc610870565b3480156103c357600080fd5b506101bc610884565b3480156103d857600080fd5b50600054600160a060020a03165b604051600160a060020a0390911681526020016101de565b34801561040a57600080fd5b5060408051808201909152600581527f44494444590000000000000000000000000000000000000000000000000000006020820152610229565b34801561045057600080fd5b5061025661045f3660046116a7565b61091a565b34801561047057600080fd5b5061025661047f3660046116a7565b6109cb565b34801561049057600080fd5b506101d46109d8565b3480156104a557600080fd5b506101d4601981565b3480156104ba57600080fd5b506101d46104c93660046116d3565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b34801561050057600080fd5b50600154600160a060020a03166103e6565b34801561051e57600080fd5b506101bc61052d366004611783565b6109e7565b34801561053e57600080fd5b506101bc61054d366004611766565b610a79565b600061055f338484610b54565b5060015b92915050565b610571610cbc565b600082600160a060020a031663c45a01556040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381865afa1580156105cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f191906117b6565b6040517fc9c65396000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a038481166024830152919091169063c9c65396906044016020604051808303816000875af115801561065a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067e91906117b6565b600160a060020a03166000908152600960205260409020805460ff19166001179055505050565b60006106b36009600a6118e9565b6106c190633b9aca006118f8565b905090565b600160a060020a038316600090815260036020908152604080832033845290915281205482111561076c57604051600080516020611a3d833981519152815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610777848484610d1e565b600160a060020a0384166000908152600360209081526040808320338085529252909120546107b29186916107ad908690611917565b610b54565b5060019392505050565b6107d06107cb6009600a6118e9565b6107d990633b9aca006118f8565b6107e3919061192e565b81565b336000818152600360209081526040808320600160a060020a0387168452909152812054909161055f9185906107ad908690611969565b600061082c3361dead84610d1e565b506001919050565b60326107cb6009600a6118e9565b61084a610cbc565b7f000000000000000000000000000000000000000000000000000000000000007d600555565b610878610cbc565b61088260006113b5565b565b6001543390600160a060020a0316811461090e57604051600080516020611a3d833981519152815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610763565b610917816113b5565b50565b336000908152600360209081526040808320600160a060020a0386168452909152812054828110156109bc57604051600080516020611a3d833981519152815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610763565b6107b233856107ad8685611917565b600061055f338484610d1e565b6103e86107cb6009600a6118e9565b6109ef610cbc565b600160a060020a0382163b610a4e57604051600080516020611a3d833981519152815260206004820152601760248201527f4f6e6c79206c69717569646974792070616972732e2e2e0000000000000000006044820152606401610763565b600160a060020a03919091166000908152600960205260409020805460ff1916911515919091179055565b610a81610cbc565b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091168117909155610abf600054600160a060020a031690565b600160a060020a03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60008054600160a060020a0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600160a060020a038316610bd757604051600080516020611a3d8339815191528152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610763565b600160a060020a038216610c5b57604051600080516020611a3d833981519152815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610763565b600160a060020a0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600054600160a060020a0316331461088257604051600080516020611a3d833981519152815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610763565b600160a060020a038316610da257604051600080516020611a3d833981519152815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610763565b600160a060020a038216610e2657604051600080516020611a3d833981519152815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610763565b60008111610ea457604051600080516020611a3d833981519152815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610763565b600160a060020a0382163014801590610ed65750600160a060020a03821660009081526009602052604090205460ff16155b8015610f0357507f000000000000000000000000000000000000000000000000000000000000007d600554105b8015610f1d5750600054600160a060020a03838116911614155b8015610f375750600054600160a060020a03848116911614155b1561108057600160a060020a0382166000908152600260205260409020546032610f636009600a6118e9565b610f7190633b9aca006118f8565b610f7b919061192e565b610f858383611969565b111561100157604051600080516020611a3d833981519152815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610763565b603261100f6009600a6118e9565b61101d90633b9aca006118f8565b611027919061192e565b82111561107e57604051600080516020611a3d833981519152815260206004820152601160248201527f5458204c696d69742045786365656465640000000000000000000000000000006044820152606401610763565b505b600080611095600054600160a060020a031690565b600160a060020a031684600160a060020a0316141580156110c45750600054600160a060020a03868116911614155b156111a357600160a060020a03851660009081526009602052604090205460ff1680156110fa5750600160a060020a0384163014155b15611136577f000000000000000000000000000000000000000000000000000000000000007d6005541061113057600654611133565b60195b90505b600160a060020a03841660009081526009602052604090205460ff1680156111675750600160a060020a0385163014155b156111a3577f000000000000000000000000000000000000000000000000000000000000007d6005541061119d576007546111a0565b60195b90505b60646111af82856118f8565b6111b9919061192e565b306000908152600260205260409020546008549193509060ff161580156111f85750600160a060020a03851660009081526009602052604090205460ff165b801561122957506107d061120e6009600a6118e9565b61121c90633b9aca006118f8565b611226919061192e565b81115b1561127e5761126a61126585611260846103e86112486009600a6118e9565b61125690633b9aca006118f8565b611260919061192e565b6113db565b6113f3565b3031801561127c5761127c30316115ff565b505b82156112fe576005805490600061129483611981565b909155505030600090815260026020526040812080548592906112b8908490611969565b90915550506040518381523090600160a060020a038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b600160a060020a03861660009081526002602052604081208054869290611326908490611917565b9091555061133690508385611917565b600160a060020a0386166000908152600260205260408120805490919061135e908490611969565b9091555050600160a060020a038086169087167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61139c8688611917565b60405190815260200160405180910390a3505050505050565b6001805473ffffffffffffffffffffffffffffffffffffffff1916905561091781610af7565b60008183116113ea57826113ec565b815b9392505050565b6008805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114355761143561199c565b6020026020010190600160a060020a03169081600160a060020a0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600160a060020a031663ad5c46486040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381865afa1580156114cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f391906117b6565b816001815181106115065761150661199c565b6020026020010190600160a060020a03169081600160a060020a031681525050611551307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610b54565b6040517f791ac947000000000000000000000000000000000000000000000000000000008152600160a060020a037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906115bf9085906000908690309042906004016119cb565b600060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b50506008805460ff1916905550505050565b600454604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015611639573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b8181101561166a5785810183015185820160400152820161164e565b8181111561167c576000604083870101525b50601f01601f1916929092016040019392505050565b600160a060020a038116811461091757600080fd5b600080604083850312156116ba57600080fd5b82356116c581611692565b946020939093013593505050565b600080604083850312156116e657600080fd5b82356116f181611692565b9150602083013561170181611692565b809150509250929050565b60008060006060848603121561172157600080fd5b833561172c81611692565b9250602084013561173c81611692565b929592945050506040919091013590565b60006020828403121561175f57600080fd5b5035919050565b60006020828403121561177857600080fd5b81356113ec81611692565b6000806040838503121561179657600080fd5b82356117a181611692565b91506020830135801515811461170157600080fd5b6000602082840312156117c857600080fd5b81516113ec81611692565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600181815b8085111561183f578160001904821115611823576118236117d3565b8085161561183057918102915b60029094049390800290611807565b509250929050565b60008261185657506001610563565b8161186357506000610563565b81600181146118795760028114611883576118a0565b6001915050610563565b60ff841115611894576118946117d3565b8360020a915050610563565b5060208310610133831016604e8410600b84101617156118c3575081810a610563565b6118cd8383611802565b80600019048211156118e1576118e16117d3565b029392505050565b60006113ec60ff841683611847565b6000816000190483118215151615611912576119126117d3565b500290565b600082821015611929576119296117d3565b500390565b600082611964577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000821982111561197c5761197c6117d3565b500190565b6000600019821415611995576119956117d3565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a1b578451600160a060020a0316835293830193918301916001016119f6565b5050600160a060020a0396909616606085015250505060800152939250505056fe08c379a000000000000000000000000000000000000000000000000000000000a2646970667358221220a4409ccb70a8f875f5675574e34393ddbdb4adee0c9c95c275c962a58a320fa664736f6c634300080c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000007d
-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : nFirstSwaps (uint256): 125
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000000000000000000000000000000000000000007d
Deployed Bytecode Sourcemap
5576:12453:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5996:26;;;;;;;;;;;;;;;;;;;160:25:7;;;148:2;133:18;5996:26:6;;;;;;;;7657:83;;;;;;;;;;-1:-1:-1;7727:5:6;;;;;;;;;;;;;;;;;7657:83;;;;;;;:::i;10097:161::-;;;;;;;;;;-1:-1:-1;10097:161:6;;;;;:::i;:::-;;:::i;:::-;;;1442:14:7;;1435:22;1417:41;;1405:2;1390:18;10097:161:6;1277:187:7;17539:236:6;;;;;;;;;;-1:-1:-1;17539:236:6;;;;;:::i;:::-;;:::i;8733:95::-;;;;;;;;;;;;;:::i;10740:373::-;;;;;;;;;;-1:-1:-1;10740:373:6;;;;;:::i;:::-;;:::i;6410:59::-;;;;;;;;;;;;;:::i;8585:83::-;;;;;;;;;;-1:-1:-1;8585:83:6;;6197:1;2465:36:7;;2453:2;2438:18;8585:83:6;2323:184:7;11522:207:6;;;;;;;;;;-1:-1:-1;11522:207:6;;;;;:::i;:::-;;:::i;9603:141::-;;;;;;;;;;-1:-1:-1;9603:141:6;;;;;:::i;:::-;;:::i;6344:54::-;;;;;;;;;;;;;:::i;6029:27::-;;;;;;;;;;;;;;;;17783:92;;;;;;;;;;;;;:::i;8891:119::-;;;;;;;;;;-1:-1:-1;8891:119:6;;;;;:::i;:::-;-1:-1:-1;;;;;8984:18:6;8957:7;8984:18;;;:9;:18;;;;;;;8891:119;1824:101:0;;;;;;;;;;;;;:::i;16718:217:6:-;;;;;;;;;;;;;:::i;1201:85:0:-;;;;;;;;;;-1:-1:-1;1247:7:0;1273:6;-1:-1:-1;;;;;1273:6:0;1201:85;;;-1:-1:-1;;;;;3113:55:7;;;3095:74;;3083:2;3068:18;1201:85:0;2949:226:7;7859:87:6;;;;;;;;;;-1:-1:-1;7931:7:6;;;;;;;;;;;;;;;;;7859:87;;12232:369;;;;;;;;;;-1:-1:-1;12232:369:6;;;;;:::i;:::-;;:::i;9223:167::-;;;;;;;;;;-1:-1:-1;9223:167:6;;;;;:::i;:::-;;:::i;6484:53::-;;;;;;;;;;;;;:::i;5869:37::-;;;;;;;;;;;;5904:2;5869:37;;9807:143;;;;;;;;;;-1:-1:-1;9807:143:6;;;;;:::i;:::-;-1:-1:-1;;;;;9915:18:6;;;9888:7;9915:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9807:143;847:99:1;;;;;;;;;;-1:-1:-1;926:13:1;;-1:-1:-1;;;;;926:13:1;847:99;;17112:188:6;;;;;;;;;;-1:-1:-1;17112:188:6;;;;;:::i;:::-;;:::i;1139:178:1:-;;;;;;;;;;-1:-1:-1;1139:178:1;;;;;:::i;:::-;;:::i;10097:161:6:-;10172:4;10189:39;719:10:5;10212:7:6;10221:6;10189:8;:39::i;:::-;-1:-1:-1;10246:4:6;10097:161;;;;;:::o;17539:236::-;1094:13:0;:11;:13::i;:::-;17623:16:6::1;17679:4;-1:-1:-1::0;;;;;17660:32:6::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17642:88;::::0;;;;17715:4:::1;17642:88;::::0;::::1;4092:34:7::0;-1:-1:-1;;;;;4162:15:7;;;4142:18;;;4135:43;17642:64:6;;;::::1;::::0;::::1;::::0;4004:18:7;;17642:88:6::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17741:19:6::1;;::::0;;;:9:::1;:19;::::0;;;;:26;;-1:-1:-1;;17741:26:6::1;17763:4;17741:26;::::0;;-1:-1:-1;;;17539:236:6:o;8733:95::-;8786:7;6256:15;6197:1;6256:2;:15;:::i;:::-;6240:31;;:13;:31;:::i;:::-;8806:14;;8733:95;:::o;10740:373::-;-1:-1:-1;;;;;10863:19:6;;10838:4;10863:19;;;:11;:19;;;;;;;;719:10:5;10863:33:6;;;;;;;;:43;-1:-1:-1;10863:43:6;10855:96;;;;-1:-1:-1;;;;;;;;;;;10855:96:6;;6133:2:7;10855:96:6;;;6115:21:7;6172:2;6152:18;;;6145:30;6211:34;6191:18;;;6184:62;6282:10;6262:18;;;6255:38;6310:19;;10855:96:6;;;;;;;;;10962:36;10972:6;10980:9;10991:6;10962:9;:36::i;:::-;-1:-1:-1;;;;;11040:19:6;;;;;;:11;:19;;;;;;;;719:10:5;11040:33:6;;;;;;;;;11009:74;;11018:6;;11040:42;;11076:6;;11040:42;:::i;:::-;11009:8;:74::i;:::-;-1:-1:-1;11101:4:6;10740:373;;;;;:::o;6410:59::-;6465:4;6256:15;6197:1;6256:2;:15;:::i;:::-;6240:31;;:13;:31;:::i;:::-;6455:14;;;;:::i;:::-;6410:59;:::o;11522:207::-;719:10:5;11602:4:6;11651:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11651:34:6;;;;;;;;;;11602:4;;11619:80;;11642:7;;11651:47;;11688:10;;11651:47;:::i;9603:141::-;9649:4;9666:48;719:10:5;9698:6:6;9707;9666:9;:48::i;:::-;-1:-1:-1;9732:4:6;;9603:141;-1:-1:-1;9603:141:6:o;6344:54::-;6396:2;6256:15;6197:1;6256:2;:15;:::i;17783:92::-;1094:13:0;:11;:13::i;:::-;17854::6::1;17839:12;:28:::0;17783:92::o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;16718:217:6:-;926:13:1;;719:10:5;;-1:-1:-1;;;;;926:13:1;16820:24:6;;16812:78;;;;-1:-1:-1;;;;;;;;;;;16812:78:6;;7084:2:7;16812:78:6;;;7066:21:7;7123:2;7103:18;;;7096:30;7162:34;7142:18;;;7135:62;7233:11;7213:18;;;7206:39;7262:19;;16812:78:6;6882:405:7;16812:78:6;16901:26;16920:6;16901:18;:26::i;:::-;16761:174;16718:217::o;12232:369::-;719:10:5;12317:4:6;12361:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12361:34:6;;;;;;;;;;12414:35;;;;12406:85;;;;-1:-1:-1;;;;;;;;;;;12406:85:6;;7494:2:7;12406:85:6;;;7476:21:7;7533:2;7513:18;;;7506:30;7572:34;7552:18;;;7545:62;7643:7;7623:18;;;7616:35;7668:19;;12406:85:6;7292:401:7;12406:85:6;12502:67;719:10:5;12525:7:6;12534:34;12553:15;12534:16;:34;:::i;9223:167::-;9301:4;9318:42;719:10:5;9342:9:6;9353:6;9318:9;:42::i;6484:53::-;6533:4;6256:15;6197:1;6256:2;:15;:::i;17112:188::-;1094:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;1702:19:4;;;17193:60:6::1;;;::::0;-1:-1:-1;;;;;;;;;;;17193:60:6;;7900:2:7;17193:60:6::1;::::0;::::1;7882:21:7::0;7939:2;7919:18;;;7912:30;7978:25;7958:18;;;7951:53;8021:18;;17193:60:6::1;7698:347:7::0;17193:60:6::1;-1:-1:-1::0;;;;;17264:15:6;;;::::1;;::::0;;;:9:::1;:15;::::0;;;;:28;;-1:-1:-1;;17264:28:6::1;::::0;::::1;;::::0;;;::::1;::::0;;17112:188::o;1139:178:1:-;1094:13:0;:11;:13::i;:::-;1228::1::1;:24:::0;;-1:-1:-1;;;;;1228:24:1;::::1;-1:-1:-1::0;;1228:24:1;;::::1;::::0;::::1;::::0;;;1292:7:::1;1247::0::0;1273:6;-1:-1:-1;;;;;1273:6:0;;1201:85;1292:7:1::1;-1:-1:-1::0;;;;;1267:43:1::1;;;;;;;;;;;1139:178:::0;:::o;2426:187:0:-;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:0;;;-1:-1:-1;;2534:17:0;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;15535:335:6:-;-1:-1:-1;;;;;15628:19:6;;15620:68;;;;-1:-1:-1;;;;;;;;;;;15620:68:6;;8252:2:7;15620:68:6;;;8234:21:7;8291:2;8271:18;;;8264:30;8330:34;8310:18;;;8303:62;8401:6;8381:18;;;8374:34;8425:19;;15620:68:6;8050:400:7;15620:68:6;-1:-1:-1;;;;;15707:21:6;;15699:68;;;;-1:-1:-1;;;;;;;;;;;15699:68:6;;8657:2:7;15699:68:6;;;8639:21:7;8696:2;8676:18;;;8669:30;8735:34;8715:18;;;8708:62;8806:4;8786:18;;;8779:32;8828:19;;15699:68:6;8455:398:7;15699:68:6;-1:-1:-1;;;;;15778:18:6;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15830:32;;160:25:7;;;15830:32:6;;133:18:7;15830:32:6;;;;;;;15535:335;;;:::o;1359:130:0:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:0;719:10:5;1422:23:0;1414:68;;;;-1:-1:-1;;;;;;;;;;;1414:68:0;;9060:2:7;1414:68:0;;;9042:21:7;;;9079:18;;;9072:30;9138:34;9118:18;;;9111:62;9190:18;;1414:68:0;8858:356:7;13091:2006:6;-1:-1:-1;;;;;13179:18:6;;13171:68;;;;-1:-1:-1;;;;;;;;;;;13171:68:6;;9421:2:7;13171:68:6;;;9403:21:7;9460:2;9440:18;;;9433:30;9499:34;9479:18;;;9472:62;9570:7;9550:18;;;9543:35;9595:19;;13171:68:6;9219:401:7;13171:68:6;-1:-1:-1;;;;;13258:16:6;;13250:64;;;;-1:-1:-1;;;;;;;;;;;13250:64:6;;9827:2:7;13250:64:6;;;9809:21:7;9866:2;9846:18;;;9839:30;9905:34;9885:18;;;9878:62;9976:5;9956:18;;;9949:33;9999:19;;13250:64:6;9625:399:7;13250:64:6;13342:1;13333:6;:10;13325:64;;;;-1:-1:-1;;;;;;;;;;;13325:64:6;;10231:2:7;13325:64:6;;;10213:21:7;10270:2;10250:18;;;10243:30;10309:34;10289:18;;;10282:62;10380:11;10360:18;;;10353:39;10409:19;;13325:64:6;10029:405:7;13325:64:6;-1:-1:-1;;;;;13406:19:6;;13420:4;13406:19;;;;:37;;-1:-1:-1;;;;;;13430:13:6;;;;;;:9;:13;;;;;;;;13429:14;13406:37;:69;;;;;13462:13;13447:12;;:28;13406:69;:86;;;;-1:-1:-1;1247:7:0;1273:6;-1:-1:-1;;;;;13479:13:6;;;1273:6:0;;13479:13:6;;13406:86;:105;;;;-1:-1:-1;1247:7:0;1273:6;-1:-1:-1;;;;;13496:15:6;;;1273:6:0;;13496:15:6;;13406:105;13402:419;;;-1:-1:-1;;;;;8984:18:6;;13528;8984;;;:9;:18;;;;;;6396:2;6256:15;6197:1;6256:2;:15;:::i;:::-;6240:31;;:13;:31;:::i;:::-;6386:12;;;;:::i;:::-;13604:19;13617:6;13604:10;:19;:::i;:::-;13603:40;;13577:164;;;;-1:-1:-1;;;;;;;;;;;13577:164:6;;10641:2:7;13577:164:6;;;10623:21:7;10680:2;10660:18;;;10653:30;10719:34;10699:18;;;10692:62;10790:32;10770:18;;;10763:60;10840:19;;13577:164:6;10439:426:7;13577:164:6;6330:2;6256:15;6197:1;6256:2;:15;:::i;:::-;6240:31;;:13;:31;:::i;:::-;6320:12;;;;:::i;:::-;13764:6;:23;;13756:53;;;;-1:-1:-1;;;;;;;;;;;13756:53:6;;11072:2:7;13756:53:6;;;11054:21:7;11111:2;11091:18;;;11084:30;11150:19;11130:18;;;11123:47;11187:18;;13756:53:6;10870:341:7;13756:53:6;13513:308;13402:419;13833:17;13868:16;13912:7;1247::0;1273:6;-1:-1:-1;;;;;1273:6:0;;1201:85;13912:7:6;-1:-1:-1;;;;;13906:13:6;:2;-1:-1:-1;;;;;13906:13:6;;;:32;;;;-1:-1:-1;1247:7:0;1273:6;-1:-1:-1;;;;;13923:15:6;;;1273:6:0;;13923:15:6;;13906:32;13903:372;;;-1:-1:-1;;;;;13959:15:6;;;;;;:9;:15;;;;;;;;:38;;;;-1:-1:-1;;;;;;13978:19:6;;13992:4;13978:19;;13959:38;13955:155;;;14060:13;14045:12;;:28;:49;;14087:7;;14045:49;;;5904:2;14045:49;14034:60;;13955:155;-1:-1:-1;;;;;14128:13:6;;;;;;:9;:13;;;;;;;;:38;;;;-1:-1:-1;;;;;;14145:21:6;;14161:4;14145:21;;14128:38;14124:140;;;14213:13;14198:12;;:28;:50;;14240:8;;14198:50;;;5904:2;14198:50;14187:61;;14124:140;14317:3;14297:17;14306:8;14297:6;:17;:::i;:::-;:23;;;;:::i;:::-;14390:4;14341:28;8984:18;;;:9;:18;;;;;;14412:6;;14285:35;;-1:-1:-1;8984:18:6;14412:6;;14411:7;:24;;;;-1:-1:-1;;;;;;14422:13:6;;;;;;:9;:13;;;;;;;;14411:24;:69;;;;-1:-1:-1;6465:4:6;6256:15;6197:1;6256:2;:15;:::i;:::-;6240:31;;:13;:31;:::i;:::-;6455:14;;;;:::i;:::-;14439:20;:41;14411:69;14407:349;;;14497:70;14514:52;14518:6;14526:39;14530:20;6533:4;6256:15;6197:1;6256:2;:15;:::i;:::-;6240:31;;:13;:31;:::i;:::-;6523:14;;;;:::i;:::-;14526:3;:39::i;14514:52::-;14497:16;:70::i;:::-;14619:4;14611:21;14651:22;;14647:98;;14694:35;14715:4;14707:21;14694:12;:35::i;:::-;14482:274;14407:349;14772:13;;14768:172;;14802:12;:14;;;:12;:14;;;:::i;:::-;;;;-1:-1:-1;;14849:4:6;14831:24;;;;:9;:24;;;;;:37;;14859:9;;14831:24;:37;;14859:9;;14831:37;:::i;:::-;;;;-1:-1:-1;;14888:40:6;;160:25:7;;;14911:4:6;;-1:-1:-1;;;;;14888:40:6;;;;;148:2:7;133:18;14888:40:6;;;;;;;14768:172;-1:-1:-1;;;;;14952:15:6;;;;;;:9;:15;;;;;:25;;14971:6;;14952:15;:25;;14971:6;;14952:25;:::i;:::-;;;;-1:-1:-1;15006:18:6;;-1:-1:-1;15015:9:6;15006:6;:18;:::i;:::-;-1:-1:-1;;;;;14988:13:6;;;;;;:9;:13;;;;;:37;;:13;;;:37;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;15051:38:6;;;;;;;15070:18;15079:9;15070:6;:18;:::i;:::-;15051:38;;160:25:7;;;148:2;133:18;15051:38:6;;;;;;;13160:1937;;;13091:2006;;;:::o;1501:153:1:-;1590:13;1583:20;;-1:-1:-1;;1583:20:1;;;1613:34;1638:8;1613:24;:34::i;15878:107:6:-;15935:7;15967:1;15963;:5;15962:15;;15976:1;15962:15;;;15972:1;15962:15;15955:22;15878:107;-1:-1:-1;;;15878:107:6:o;15993:483::-;6812:6;:13;;-1:-1:-1;;6812:13:6;6821:4;6812:13;;;16095:16:::1;::::0;;16109:1:::1;16095:16:::0;;;;;::::1;::::0;;-1:-1:-1;;16095:16:6::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16095:16:6::1;16071:40;;16140:4;16122;16127:1;16122:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;16122:23:6::1;;;-1:-1:-1::0;;;;;16122:23:6::1;;;::::0;::::1;16166:15;-1:-1:-1::0;;;;;16166:20:6::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16156:4;16161:1;16156:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;16156:32:6::1;;;-1:-1:-1::0;;;;;16156:32:6::1;;;::::0;::::1;16199:62;16216:4;16231:15;16249:11;16199:8;:62::i;:::-;16272:196;::::0;;;;-1:-1:-1;;;;;16272:15:6::1;:66;::::0;::::1;::::0;:196:::1;::::0;16353:11;;16379:1:::1;::::0;16395:4;;16422::::1;::::0;16442:15:::1;::::0;16272:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6848:6:6;:14;;-1:-1:-1;;6848:14:6;;;-1:-1:-1;;;;15993:483:6:o;16484:97::-;16541:15;;:32;;-1:-1:-1;;;;;16541:15:6;;;;:32;;;;;16566:6;;16541:15;:32;:15;:32;16566:6;16541:15;:32;;;;;;;;;;;;;;;;;;;;;16484:97;:::o;196:597:7:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:7;756:15;-1:-1:-1;;752:29:7;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:7:o;798:154::-;-1:-1:-1;;;;;877:5:7;873:54;866:5;863:65;853:93;;942:1;939;932:12;957:315;1025:6;1033;1086:2;1074:9;1065:7;1061:23;1057:32;1054:52;;;1102:1;1099;1092:12;1054:52;1141:9;1128:23;1160:31;1185:5;1160:31;:::i;:::-;1210:5;1262:2;1247:18;;;;1234:32;;-1:-1:-1;;;957:315:7:o;1469:388::-;1537:6;1545;1598:2;1586:9;1577:7;1573:23;1569:32;1566:52;;;1614:1;1611;1604:12;1566:52;1653:9;1640:23;1672:31;1697:5;1672:31;:::i;:::-;1722:5;-1:-1:-1;1779:2:7;1764:18;;1751:32;1792:33;1751:32;1792:33;:::i;:::-;1844:7;1834:17;;;1469:388;;;;;:::o;1862:456::-;1939:6;1947;1955;2008:2;1996:9;1987:7;1983:23;1979:32;1976:52;;;2024:1;2021;2014:12;1976:52;2063:9;2050:23;2082:31;2107:5;2082:31;:::i;:::-;2132:5;-1:-1:-1;2189:2:7;2174:18;;2161:32;2202:33;2161:32;2202:33;:::i;:::-;1862:456;;2254:7;;-1:-1:-1;;;2308:2:7;2293:18;;;;2280:32;;1862:456::o;2512:180::-;2571:6;2624:2;2612:9;2603:7;2599:23;2595:32;2592:52;;;2640:1;2637;2630:12;2592:52;-1:-1:-1;2663:23:7;;2512:180;-1:-1:-1;2512:180:7:o;2697:247::-;2756:6;2809:2;2797:9;2788:7;2784:23;2780:32;2777:52;;;2825:1;2822;2815:12;2777:52;2864:9;2851:23;2883:31;2908:5;2883:31;:::i;3180:416::-;3245:6;3253;3306:2;3294:9;3285:7;3281:23;3277:32;3274:52;;;3322:1;3319;3312:12;3274:52;3361:9;3348:23;3380:31;3405:5;3380:31;:::i;:::-;3430:5;-1:-1:-1;3487:2:7;3472:18;;3459:32;3529:15;;3522:23;3510:36;;3500:64;;3560:1;3557;3550:12;3601:251;3671:6;3724:2;3712:9;3703:7;3699:23;3695:32;3692:52;;;3740:1;3737;3730:12;3692:52;3772:9;3766:16;3791:31;3816:5;3791:31;:::i;4189:184::-;4241:77;4238:1;4231:88;4338:4;4335:1;4328:15;4362:4;4359:1;4352:15;4378:419;4467:1;4510:5;4467:1;4524:267;4545:7;4535:8;4532:21;4524:267;;;4604:4;4600:1;4596:6;4592:17;4586:4;4583:27;4580:53;;;4613:18;;:::i;:::-;4663:7;4653:8;4649:22;4646:55;;;4683:16;;;;4646:55;4776:4;4762:19;;;;4722:15;;;;4524:267;;;4528:3;4378:419;;;;;:::o;4802:806::-;4851:5;4881:8;4871:80;;-1:-1:-1;4922:1:7;4936:5;;4871:80;4970:4;4960:76;;-1:-1:-1;5007:1:7;5021:5;;4960:76;5052:4;5070:1;5065:59;;;;5138:1;5133:130;;;;5045:218;;5065:59;5095:1;5086:10;;5109:5;;;5133:130;5170:3;5160:8;5157:17;5154:43;;;5177:18;;:::i;:::-;5226:8;5223:1;5219:16;5210:25;;5248:5;;;5045:218;;5347:2;5337:8;5334:16;5328:3;5322:4;5319:13;5315:36;5309:2;5299:8;5296:16;5291:2;5285:4;5282:12;5278:35;5275:77;5272:159;;;-1:-1:-1;5384:19:7;;;5416:5;;5272:159;5463:34;5488:8;5482:4;5463:34;:::i;:::-;5533:6;5529:1;5525:6;5521:19;5512:7;5509:32;5506:58;;;5544:18;;:::i;:::-;5582:20;;4802:806;-1:-1:-1;;;4802:806:7:o;5613:140::-;5671:5;5700:47;5741:4;5731:8;5727:19;5721:4;5700:47;:::i;5758:168::-;5798:7;5864:1;5860;5856:6;5852:14;5849:1;5846:21;5841:1;5834:9;5827:17;5823:45;5820:71;;;5871:18;;:::i;:::-;-1:-1:-1;5911:9:7;;5758:168::o;6340:125::-;6380:4;6408:1;6405;6402:8;6399:34;;;6413:18;;:::i;:::-;-1:-1:-1;6450:9:7;;6340:125::o;6470:274::-;6510:1;6536;6526:189;;6571:77;6568:1;6561:88;6672:4;6669:1;6662:15;6700:4;6697:1;6690:15;6526:189;-1:-1:-1;6729:9:7;;6470:274::o;6749:128::-;6789:3;6820:1;6816:6;6813:1;6810:13;6807:39;;;6826:18;;:::i;:::-;-1:-1:-1;6862:9:7;;6749:128::o;11216:135::-;11255:3;-1:-1:-1;;11276:17:7;;11273:43;;;11296:18;;:::i;:::-;-1:-1:-1;11343:1:7;11332:13;;11216:135::o;11545:184::-;11597:77;11594:1;11587:88;11694:4;11691:1;11684:15;11718:4;11715:1;11708:15;11734:1026;11996:4;12044:3;12033:9;12029:19;12075:6;12064:9;12057:25;12101:2;12139:6;12134:2;12123:9;12119:18;12112:34;12182:3;12177:2;12166:9;12162:18;12155:31;12206:6;12241;12235:13;12272:6;12264;12257:22;12310:3;12299:9;12295:19;12288:26;;12349:2;12341:6;12337:15;12323:29;;12370:1;12380:218;12394:6;12391:1;12388:13;12380:218;;;12459:13;;-1:-1:-1;;;;;12455:62:7;12443:75;;12573:15;;;;12538:12;;;;12416:1;12409:9;12380:218;;;-1:-1:-1;;;;;;;12654:55:7;;;;12649:2;12634:18;;12627:83;-1:-1:-1;;;12741:3:7;12726:19;12719:35;12615:3;11734:1026;-1:-1:-1;;;11734:1026:7:o
Swarm Source
ipfs://a4409ccb70a8f875f5675574e34393ddbdb4adee0c9c95c275c962a58a320fa6
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.