Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 44 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 19833391 | 658 days ago | IN | 0 ETH | 0.00044123 | ||||
| Transfer | 19833382 | 658 days ago | IN | 0 ETH | 0.00019155 | ||||
| Transfer | 19833373 | 658 days ago | IN | 0 ETH | 0.00018196 | ||||
| Transfer | 19833369 | 658 days ago | IN | 0 ETH | 0.00035242 | ||||
| Transfer | 19833365 | 658 days ago | IN | 0 ETH | 0.00035167 | ||||
| Transfer | 19833358 | 658 days ago | IN | 0 ETH | 0.00032124 | ||||
| Transfer | 19833354 | 658 days ago | IN | 0 ETH | 0.00027592 | ||||
| Transfer | 19833349 | 658 days ago | IN | 0 ETH | 0.00029404 | ||||
| Transfer | 19833346 | 658 days ago | IN | 0 ETH | 0.00032573 | ||||
| Transfer | 19833341 | 658 days ago | IN | 0 ETH | 0.00033651 | ||||
| Transfer | 19833333 | 658 days ago | IN | 0 ETH | 0.00133121 | ||||
| Transfer | 19833324 | 658 days ago | IN | 0 ETH | 0.00035581 | ||||
| Transfer | 19833323 | 658 days ago | IN | 0 ETH | 0.00033807 | ||||
| Transfer | 19833318 | 658 days ago | IN | 0 ETH | 0.0003635 | ||||
| Transfer | 19833317 | 658 days ago | IN | 0 ETH | 0.00037103 | ||||
| Transfer | 19833316 | 658 days ago | IN | 0 ETH | 0.00042352 | ||||
| Transfer | 19833314 | 658 days ago | IN | 0 ETH | 0.00037184 | ||||
| Transfer | 19833312 | 658 days ago | IN | 0 ETH | 0.0003577 | ||||
| Transfer | 19833312 | 658 days ago | IN | 0 ETH | 0.00039937 | ||||
| Transfer | 19833306 | 658 days ago | IN | 0 ETH | 0.00037841 | ||||
| Transfer | 19833306 | 658 days ago | IN | 0 ETH | 0.00037818 | ||||
| Transfer | 19833090 | 658 days ago | IN | 0 ETH | 0.00019284 | ||||
| Transfer | 19833068 | 658 days ago | IN | 0 ETH | 0.00013785 | ||||
| Approve | 19833061 | 658 days ago | IN | 0 ETH | 0.00028247 | ||||
| Transfer | 19833051 | 658 days ago | IN | 0.01 ETH | 0.00147025 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 19833391 | 658 days ago | 0.1262 ETH | ||||
| Transfer | 19833369 | 658 days ago | 0.126058 ETH | ||||
| Transfer | 19833365 | 658 days ago | 0.117029 ETH | ||||
| Transfer | 19833358 | 658 days ago | 0.108027 ETH | ||||
| Transfer | 19833354 | 658 days ago | 0.098024 ETH | ||||
| Transfer | 19833349 | 658 days ago | 0.0360134 ETH | ||||
| Transfer | 19833346 | 658 days ago | 0.017346 ETH | ||||
| Transfer | 19833341 | 658 days ago | 0.01 ETH | ||||
| Transfer | 19833324 | 658 days ago | 0.081004 ETH | ||||
| Transfer | 19833323 | 658 days ago | 0.09004181 ETH | ||||
| Transfer | 19833318 | 658 days ago | 0.17100838 ETH | ||||
| Transfer | 19833317 | 658 days ago | 0.26106553 ETH | ||||
| Transfer | 19833316 | 658 days ago | 0.081041 ETH | ||||
| Transfer | 19833314 | 658 days ago | 0.10802711 ETH | ||||
| Transfer | 19833312 | 658 days ago | 0.11705436 ETH | ||||
| Transfer | 19833312 | 658 days ago | 0.090004 ETH | ||||
| Transfer | 19833306 | 658 days ago | 0.14400705 ETH | ||||
| Transfer | 19833306 | 658 days ago | 0.045 ETH | ||||
| Add Liquidity ET... | 19833051 | 658 days ago | 0.001 ETH | ||||
| Add Liquidity ET... | 19833044 | 658 days ago | 0.002 ETH | ||||
| Add Liquidity ET... | 19833042 | 658 days ago | 0.003 ETH | ||||
| Add Liquidity ET... | 19833001 | 658 days ago | 0.01 ETH | ||||
| Add Liquidity ET... | 19832996 | 658 days ago | 0.01 ETH | ||||
| Add Liquidity ET... | 19832960 | 658 days ago | 0.015 ETH | ||||
| Add Liquidity ET... | 19832958 | 658 days ago | 0.014 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
EtherX314
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./Ownable.sol";
import "./Context.sol";
import "./IERC20.sol";
import "./EnumerableSet.sol";
interface IERC314 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out
);
}
interface ISwapFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
function feeTo() external view returns (address);
}
interface ISwapRouter {
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);
}
contract EtherX314 is Context, Ownable, IERC314 {
using EnumerableSet for EnumerableSet.AddressSet;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
address public marketAddress;
address public liquidityAddress;
address public WETH;
address public swapRouter;
//address public WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
//address public swapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
//address public WETH = 0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd;
//address public swapRouter = 0x37A7Bd3eaABFedD1b1EA3837B2fdF0367d3BAA43;
//address public WETH = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
//address public swapRouter = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
address public swapPair;
// uint256 public idoStartTime = 1714912200;
// uint256 public idoEndTime = 1714912200 + 60 * 30;
uint256 public lastRewardBlock = 0;
uint256 public idoStartTime = block.timestamp;
uint256 public idoEndTime = block.timestamp + 60 * 60;
uint256 public idoPrice = 10 ** 6;
uint256 public maxSupply = 10000 * (10 ** 6) * (10 ** 18);
uint256 public idoRate = 90;
uint256 public marketFee = 1;
uint256 public rewardFee = 1;
uint256 public liquidityRate = 10;
uint256 public rewardIndex;
uint256 public maxRewardNum = 5;
uint256 public totalRewardAmount;
uint256 public totalPooledAmount;
uint256 public rewardedAmount;
uint256 public minAmount = (1 * 10 ** 16) / 10;
// mapping(address => bool) public addWList;
mapping(address => uint256) public userPooledAmount;
EnumerableSet.AddressSet private idoUsersList;
// struct publicItem {
// address marketAddress;
//// address feeAddress;
// address liquidityAddress;
// address WETH;
// address swapRouter;
// address swapPair;
// uint256 idoStartTime;
// uint256 idoEndTime;
// uint256 idoPrice;
// uint256 idoRate;
// uint256 marketFee;
// uint256 rewardFee;
// uint256 liquidityRate;
// uint256 rewardIndex;
// uint256 maxRewardNum;
// uint256 totalRewardAmount;
// uint256 totalPooledAmount;
// uint256 rewardedAmount;
// uint256 minAmount;
// }
//
// function showPublic() public view returns (publicItem memory x) {
// x.marketAddress = marketAddress;
// x.liquidityAddress = liquidityAddress;
// x.WETH = WETH;
// x.swapRouter = swapRouter;
// x.swapPair = swapPair;
// x.idoStartTime = idoStartTime;
// x.idoEndTime = idoEndTime;
// x.idoPrice = idoPrice;
// x.idoRate = idoRate;
// x.marketFee = marketFee;
// x.rewardFee = rewardFee;
// x.liquidityRate = liquidityRate;
// x.rewardIndex = rewardIndex;
// x.maxRewardNum = maxRewardNum;
// x.totalRewardAmount = totalRewardAmount;
// x.totalPooledAmount = totalPooledAmount;
// x.rewardedAmount = rewardedAmount;
// x.minAmount = minAmount;
// }
event rewardEvent(uint256 _blockNumer, uint256 _blockTimeStamp, address _user, uint256 _rewardAmount, uint256 _index, uint256 _rewardIndex, string _type);
constructor(
string memory name_,
string memory symbol_,
address _swapRouter,
address _WETH
) {
_name = name_;
_symbol = symbol_;
swapRouter = _swapRouter;
WETH = _WETH;
ISwapFactory swapFactory = ISwapFactory(ISwapRouter(swapRouter).factory());
swapPair = swapFactory.createPair(address(this), WETH);
// addWList[address(this)] = true;
marketAddress = 0x56d0Bd041D1806D939a9CeA640867a6219A52d9E;
liquidityAddress = 0x8C6E68b250e1163c4AD37Ac5F1DCA113E75442ED;
}
function name() public view virtual returns (string memory) {
return _name;
}
function symbol() public view virtual returns (string memory) {
return _symbol;
}
function decimals() public view virtual returns (uint8) {
return 18;
}
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
function allowance(
address owner,
address spender
) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
function approve(
address spender,
uint256 amount
) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, amount);
return true;
}
function transferFrom(
address from,
address to,
uint256 amount
) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, amount);
if (to == address(this)) {
sell(from, amount);
} else {
_transfer(from, to, amount);
}
return true;
}
function transfer(address to, uint256 value) public virtual returns (bool) {
if (to == address(this)) {
sell(_msgSender(), value);
} else {
_transfer(_msgSender(), to, value);
}
return true;
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _spendAllowance(
address owner,
address spender,
uint256 amount
) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(
currentAllowance >= amount,
"ERC20: insufficient allowance"
);
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
// function setMinAmount(uint256 _minAmount) public onlyOwner {
// minAmount = _minAmount;
// }
//
// function setMaxRewardNum(uint256 _maxRewardNum) public onlyOwner {
// maxRewardNum = _maxRewardNum;
// }
//
// function setMarketAddress(address _marketAddress) public onlyOwner {
// marketAddress = _marketAddress;
// }
// function setFeeAddress(address _feeAddress, uint256 _marketFee, uint256 _rewardFee) public onlyOwner {
// feeAddress = _feeAddress;
// marketFee = _marketFee;
// rewardFee = _rewardFee;
// }
// function setLiquidityAddress(address _liquidityAddress) public onlyOwner {
// liquidityAddress = _liquidityAddress;
// }
//
// function setIdoTime(uint256 _idoStartTime, uint256 _idoEndTime) public onlyOwner {
// idoStartTime = _idoStartTime;
// idoEndTime = _idoEndTime;
// }
//
// function setIdoPrice(uint256 _idoPrice) public onlyOwner {
// idoPrice = _idoPrice;
// }
// function setRate(uint256 _idoRate, uint256 _liquidityRate) public onlyOwner {
// require(_idoRate + _liquidityRate == 100, "tatal rate should be 100");
// idoRate = _idoRate;
// liquidityRate = _liquidityRate;
// }
function _reward() internal {
if (block.timestamp < idoEndTime) {
return;
}
if (block.number < lastRewardBlock + 5) {
return;
} else {
lastRewardBlock = block.number;
}
uint256 _toReward = totalRewardAmount - rewardedAmount;
uint256 _num = idoUsersList.length();
if (_num == 0 || totalRewardAmount == 0 || totalPooledAmount == 0) {
return;
}
if (_num <= maxRewardNum) {
for (uint256 i = 0; i < _num; i++) {
address _user = idoUsersList.at(i);
uint256 _amount = _toReward * userPooledAmount[_user] / totalPooledAmount;
_balances[_user] += _amount;
_balances[address(this)] -= _amount;
rewardedAmount += _amount;
emit Transfer(address(this), _user, _amount);
emit rewardEvent(block.number, block.timestamp, _user, _amount, i, i, "type 1");
}
return;
}
if (rewardIndex >= _num) {
rewardIndex = 0;
}
for (uint256 i = 0; i < maxRewardNum; i++) {
uint256 rewardIndex_ = rewardIndex;
address _user = idoUsersList.at(rewardIndex_);
uint256 _amount = _toReward * userPooledAmount[_user] / totalPooledAmount;
_balances[_user] += _amount;
_balances[address(this)] -= _amount;
rewardedAmount += _amount;
emit Transfer(address(this), _user, _amount);
emit rewardEvent(block.number, block.timestamp, _user, _amount, i, rewardIndex_, "type 2");
rewardIndex++;
if (rewardIndex >= _num) {
rewardIndex = 0;
}
}
}
function _transfer(
address from,
address to,
uint256 amount
) internal virtual {
require(to != address(0), "ERC20: transfer to the zero address");
bool isMint = from == address(this) && to == swapPair;
bool isSwap = (from == swapPair && to != address(this)) || (to == swapPair && from != address(this));
if (block.timestamp < idoEndTime) {
if (!isMint) {
return;
}
}
uint256 fromBalance = _balances[from];
require(
fromBalance >= amount,
"ERC20: transfer amount exceeds balance"
);
if (isSwap) {
_balances[from] = fromBalance - amount;
_balances[to] += amount * (100 - marketFee - rewardFee) / 100;
_balances[marketAddress] += amount * marketFee / 100;
_balances[address(this)] += amount * rewardFee / 100;
totalRewardAmount += amount * rewardFee / 100;
emit Transfer(from, to, amount * (100 - marketFee - rewardFee) / 100);
emit Transfer(from, marketAddress, amount * marketFee / 100);
emit Transfer(from, address(this), amount * rewardFee / 100);
} else {
_balances[from] = fromBalance - amount;
_balances[to] += amount;
emit Transfer(from, to, amount);
}
_reward();
}
function buy() internal {
require(_msgSender() == tx.origin, "Only external calls allowed");
address owner = _msgSender();
uint256 mintAmount = msg.value * idoPrice;
_totalSupply += mintAmount;
require(_totalSupply <= maxSupply, "exceed maxSupply");
_balances[address(this)] = mintAmount;
emit Transfer(address(0), address(this), mintAmount);
uint256 _eth_amount = (msg.value) * liquidityRate / 100;
uint256 _tokenAmount = mintAmount * liquidityRate / 100;
_approve(address(this), swapRouter, _tokenAmount);
ISwapRouter(swapRouter).addLiquidityETH{value: _eth_amount}(
address(this),
_tokenAmount,
0,
0,
liquidityAddress,
block.timestamp
);
uint256 tokenAmount = mintAmount * idoRate / 100;
_balances[owner] += tokenAmount;
_balances[address(this)] -= tokenAmount;
emit Transfer(address(this), owner, tokenAmount);
userPooledAmount[owner] += _eth_amount;
if (userPooledAmount[owner] >= minAmount) {
if (idoUsersList.contains(owner)) {
totalPooledAmount += _eth_amount;
} else {
idoUsersList.add(owner);
totalPooledAmount += userPooledAmount[owner];
}
}
emit Swap(owner, msg.value, 0, 0, tokenAmount);
}
function sell(address owner, uint256 amount) internal {
//require(block.timestamp > idoStartTime, "e001");
require(_msgSender() == tx.origin, "Only external calls allowed");
uint256 ethAmount = amount / idoPrice;
require(ethAmount > 0, "Sell amount too low");
require(
address(this).balance >= ethAmount,
"Insufficient ETH in reserves"
);
_balances[owner] -= amount;
_balances[address(0)] = amount;
emit Transfer(owner, address(0), amount);
payable(owner).transfer(ethAmount);
emit Swap(owner, 0, amount, ethAmount, 0);
}
function getIdoUsersListLen() public view returns (uint256) {
return idoUsersList.length();
}
function getAllIdoUsersList() public view returns (address[] memory) {
return idoUsersList.values();
}
function getIdoUsersListByIndexList(uint256[] memory _indexList) public view returns (address[] memory _addressList) {
uint256 _num = _indexList.length;
_addressList = new address[](_num);
for (uint i = 0; i < _num; i++) {
uint256 _index = _indexList[i];
_addressList[i] = idoUsersList.at(_index);
}
}
function claimETH() public {
require(msg.sender == owner() || msg.sender == marketAddress || msg.sender == liquidityAddress, "e001");
payable(msg.sender).transfer(address(this).balance);
}
receive() external payable {
if (block.timestamp >= idoStartTime && block.timestamp <= idoEndTime) {
buy();
} else {
revert("Not in ido");
}
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
library Address {
function isContract(address account) internal view returns (bool) {
return account.code.length > 0;
}
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");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
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");
}
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);
}
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
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);
}
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
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);
}
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);
}
}
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 {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
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
pragma solidity ^0.8.7;
library EnumerableSet {
struct Set {
bytes32[] _values;
mapping(bytes32 => uint256) _indexes;
}
function _add(Set storage set, bytes32 value) private returns (bool) {
if (!_contains(set, value)) {
set._values.push(value);
set._indexes[value] = set._values.length;
return true;
} else {
return false;
}
}
function _remove(Set storage set, bytes32 value) private returns (bool) {
uint256 valueIndex = set._indexes[value];
if (valueIndex != 0) {
uint256 toDeleteIndex = valueIndex - 1;
uint256 lastIndex = set._values.length - 1;
if (lastIndex != toDeleteIndex) {
bytes32 lastValue = set._values[lastIndex];
set._values[toDeleteIndex] = lastValue;
set._indexes[lastValue] = valueIndex;
}
set._values.pop();
delete set._indexes[value];
return true;
} else {
return false;
}
}
function _contains(Set storage set, bytes32 value) private view returns (bool) {
return set._indexes[value] != 0;
}
function _length(Set storage set) private view returns (uint256) {
return set._values.length;
}
function _at(Set storage set, uint256 index) private view returns (bytes32) {
return set._values[index];
}
function _values(Set storage set) private view returns (bytes32[] memory) {
return set._values;
}
struct Bytes32Set {
Set _inner;
}
function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {
return _add(set._inner, value);
}
function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {
return _remove(set._inner, value);
}
function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {
return _contains(set._inner, value);
}
function length(Bytes32Set storage set) internal view returns (uint256) {
return _length(set._inner);
}
function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {
return _at(set._inner, index);
}
function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {
bytes32[] memory store = _values(set._inner);
bytes32[] memory result;
assembly {
result := store
}
return result;
}
struct AddressSet {
Set _inner;
}
function add(AddressSet storage set, address value) internal returns (bool) {
return _add(set._inner, bytes32(uint256(uint160(value))));
}
function remove(AddressSet storage set, address value) internal returns (bool) {
return _remove(set._inner, bytes32(uint256(uint160(value))));
}
function contains(AddressSet storage set, address value) internal view returns (bool) {
return _contains(set._inner, bytes32(uint256(uint160(value))));
}
function length(AddressSet storage set) internal view returns (uint256) {
return _length(set._inner);
}
function at(AddressSet storage set, uint256 index) internal view returns (address) {
return address(uint160(uint256(_at(set._inner, index))));
}
function values(AddressSet storage set) internal view returns (address[] memory) {
bytes32[] memory store = _values(set._inner);
address[] memory result;
assembly {
result := store
}
return result;
}
struct UintSet {
Set _inner;
}
function add(UintSet storage set, uint256 value) internal returns (bool) {
return _add(set._inner, bytes32(value));
}
function remove(UintSet storage set, uint256 value) internal returns (bool) {
return _remove(set._inner, bytes32(value));
}
function contains(UintSet storage set, uint256 value) internal view returns (bool) {
return _contains(set._inner, bytes32(value));
}
function length(UintSet storage set) internal view returns (uint256) {
return _length(set._inner);
}
function at(UintSet storage set, uint256 index) internal view returns (uint256) {
return uint256(_at(set._inner, index));
}
function values(UintSet storage set) internal view returns (uint256[] memory) {
bytes32[] memory store = _values(set._inner);
uint256[] memory result;
assembly {
result := store
}
return result;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
interface IERC20 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address from, address to, uint256 amount) external returns (bool);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
import {Context} from "./Context.sol";
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_transferOwnership(_msgSender());
}
modifier onlyOwner() {
_checkOwner();
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"_swapRouter","type":"address"},{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"}],"name":"Swap","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_blockNumer","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_blockTimeStamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_rewardAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_index","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_rewardIndex","type":"uint256"},{"indexed":false,"internalType":"string","name":"_type","type":"string"}],"name":"rewardEvent","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllIdoUsersList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_indexList","type":"uint256[]"}],"name":"getIdoUsersListByIndexList","outputs":[{"internalType":"address[]","name":"_addressList","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIdoUsersListLen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"idoEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"idoPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"idoRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"idoStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRewardBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRewardNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minAmount","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":[],"name":"rewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalPooledAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":[{"internalType":"address","name":"","type":"address"}],"name":"userPooledAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526000600b5542600c5542610e106200001d9190620004d6565b600d55620f4240600e556b204fce5e3e25026110000000600f55605a60105560016011556001601255600a601355600560155566038d7ea4c680006019553480156200006857600080fd5b5060405162002475380380620024758339810160408190526200008b9162000447565b620000963362000258565b8351620000ab906004906020870190620002a8565b508251620000c1906005906020860190620002a8565b50600980546001600160a01b038085166001600160a01b0319928316811790935560088054918516919092161790556040805163c45a015560e01b815290516000929163c45a0155916004808301926020929190829003018186803b1580156200012a57600080fd5b505afa1580156200013f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000165919062000422565b6008546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291925082169063c9c6539690604401602060405180830381600087803b158015620001b557600080fd5b505af1158015620001ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f0919062000422565b600a80546001600160a01b03929092166001600160a01b03199283161790556006805482167356d0bd041d1806d939a9cea640867a6219a52d9e17905560078054909116738c6e68b250e1163c4ad37ac5f1dca113e75442ed17905550620005509350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620002b690620004fd565b90600052602060002090601f016020900481019282620002da576000855562000325565b82601f10620002f557805160ff191683800117855562000325565b8280016001018555821562000325579182015b828111156200032557825182559160200191906001019062000308565b506200033392915062000337565b5090565b5b8082111562000333576000815560010162000338565b80516001600160a01b03811681146200036657600080fd5b919050565b600082601f8301126200037d57600080fd5b81516001600160401b03808211156200039a576200039a6200053a565b604051601f8301601f19908116603f01168101908282118183101715620003c557620003c56200053a565b81604052838152602092508683858801011115620003e257600080fd5b600091505b83821015620004065785820183015181830184015290820190620003e7565b83821115620004185760008385830101525b9695505050505050565b6000602082840312156200043557600080fd5b62000440826200034e565b9392505050565b600080600080608085870312156200045e57600080fd5b84516001600160401b03808211156200047657600080fd5b62000484888389016200036b565b955060208701519150808211156200049b57600080fd5b50620004aa878288016200036b565b935050620004bb604086016200034e565b9150620004cb606086016200034e565b905092959194509250565b60008219821115620004f857634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200051257607f821691505b602082108114156200053457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b611f1580620005606000396000f3fe60806040526004361061021e5760003560e01c80638b42426711610123578063ad5c4648116100ab578063d96062501161006f578063d960625014610637578063dd62ed3e1461064c578063e113bc8414610692578063e9ee2fa9146106a8578063f2fde38b146106be57600080fd5b8063ad5c4648146105b5578063afd2c260146105d5578063c31c9c07146105eb578063cd80fe0d1461060b578063d5abeb011461062157600080fd5b806395623641116100f2578063956236411461053457806395d89b41146105545780639b2cb5d814610569578063a9059cbb1461057f578063a9f8d1811461059f57600080fd5b80638b424267146104bd5780638da5cb5b146104d35780638e73064f146104f15780639107d68e1461050757600080fd5b80633221c93f116101a657806361be47c51161017557806361be47c514610432578063672729991461044757806370a082311461045c57806370a6dea814610492578063715018a6146104a857600080fd5b80633221c93f146103d0578063333029c9146103f0578063548cbeb0146104065780635ff56f6e1461041c57600080fd5b806318160ddd116101ed57806318160ddd1461031a57806323b872dd1461032f57806325fb153a1461034f57806326991cc81461037c578063313ce567146103b457600080fd5b806306fdde03146102855780630836b6c8146102b0578063095ea7b3146102d45780630ccf21561461030457600080fd5b3661028057600c5442101580156102375750600d544211155b15610246576102446106de565b005b60405162461bcd60e51b815260206004820152600a6024820152694e6f7420696e2069646f60b01b60448201526064015b60405180910390fd5b600080fd5b34801561029157600080fd5b5061029a610a80565b6040516102a79190611d62565b60405180910390f35b3480156102bc57600080fd5b506102c660105481565b6040519081526020016102a7565b3480156102e057600080fd5b506102f46102ef366004611bf8565b610b12565b60405190151581526020016102a7565b34801561031057600080fd5b506102c660115481565b34801561032657600080fd5b506003546102c6565b34801561033b57600080fd5b506102f461034a366004611bbc565b610b2c565b34801561035b57600080fd5b5061036f61036a366004611c22565b610b70565b6040516102a79190611d15565b34801561038857600080fd5b50600a5461039c906001600160a01b031681565b6040516001600160a01b0390911681526020016102a7565b3480156103c057600080fd5b50604051601281526020016102a7565b3480156103dc57600080fd5b5060075461039c906001600160a01b031681565b3480156103fc57600080fd5b506102c660155481565b34801561041257600080fd5b506102c660135481565b34801561042857600080fd5b506102c6600d5481565b34801561043e57600080fd5b506102c6610c3b565b34801561045357600080fd5b50610244610c4c565b34801561046857600080fd5b506102c6610477366004611b6e565b6001600160a01b031660009081526001602052604090205490565b34801561049e57600080fd5b506102c6600c5481565b3480156104b457600080fd5b50610244610ce8565b3480156104c957600080fd5b506102c660125481565b3480156104df57600080fd5b506000546001600160a01b031661039c565b3480156104fd57600080fd5b506102c660165481565b34801561051357600080fd5b506102c6610522366004611b6e565b601a6020526000908152604090205481565b34801561054057600080fd5b5060065461039c906001600160a01b031681565b34801561056057600080fd5b5061029a610cfc565b34801561057557600080fd5b506102c660195481565b34801561058b57600080fd5b506102f461059a366004611bf8565b610d0b565b3480156105ab57600080fd5b506102c6600b5481565b3480156105c157600080fd5b5060085461039c906001600160a01b031681565b3480156105e157600080fd5b506102c660185481565b3480156105f757600080fd5b5060095461039c906001600160a01b031681565b34801561061757600080fd5b506102c6600e5481565b34801561062d57600080fd5b506102c6600f5481565b34801561064357600080fd5b5061036f610d41565b34801561065857600080fd5b506102c6610667366004611b89565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561069e57600080fd5b506102c660175481565b3480156106b457600080fd5b506102c660145481565b3480156106ca57600080fd5b506102446106d9366004611b6e565b610d4d565b33321461072d5760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792065787465726e616c2063616c6c7320616c6c6f77656400000000006044820152606401610277565b600e54339060009061073f9034611df1565b905080600360008282546107539190611db7565b9091555050600f54600354111561079f5760405162461bcd60e51b815260206004820152601060248201526f657863656564206d6178537570706c7960801b6044820152606401610277565b30600081815260016020908152604080832085905551848152600080516020611ec0833981519152910160405180910390a360006064601354346107e39190611df1565b6107ed9190611dcf565b905060006064601354846108019190611df1565b61080b9190611dcf565b6009549091506108269030906001600160a01b031683610dc3565b60095460075460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b15801561089157600080fd5b505af11580156108a5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108ca9190611ce7565b50505060006064601054856108df9190611df1565b6108e99190611dcf565b6001600160a01b038616600090815260016020526040812080549293508392909190610916908490611db7565b9091555050306000908152600160205260408120805483929061093a908490611e10565b90915550506040518181526001600160a01b038616903090600080516020611ec08339815191529060200160405180910390a36001600160a01b0385166000908152601a602052604081208054859290610995908490611db7565b90915550506019546001600160a01b0386166000908152601a602052604090205410610a26576109c6601b86610ee7565b156109e85782601760008282546109dd9190611db7565b90915550610a269050565b6109f3601b86610f0c565b506001600160a01b0385166000908152601a60205260408120546017805491929091610a20908490611db7565b90915550505b60408051348152600060208201819052818301526060810183905290516001600160a01b038716917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a25050505050565b606060048054610a8f90611e27565b80601f0160208091040260200160405190810160405280929190818152602001828054610abb90611e27565b8015610b085780601f10610add57610100808354040283529160200191610b08565b820191906000526020600020905b815481529060010190602001808311610aeb57829003601f168201915b5050505050905090565b600033610b20818585610dc3565b60019150505b92915050565b600033610b3a858285610f21565b6001600160a01b038416301415610b5a57610b558584610fb3565b610b65565b610b658585856111c0565b506001949350505050565b80516060908067ffffffffffffffff811115610b8e57610b8e611ea9565b604051908082528060200260200182016040528015610bb7578160200160208202803683370190505b50915060005b81811015610c34576000848281518110610bd957610bd9611e93565b60200260200101519050610bf781601b61160b90919063ffffffff16565b848381518110610c0957610c09611e93565b6001600160a01b03909216602092830291909101909101525080610c2c81611e62565b915050610bbd565b5050919050565b6000610c47601b611617565b905090565b6000546001600160a01b0316331480610c6f57506006546001600160a01b031633145b80610c8457506007546001600160a01b031633145b610cb95760405162461bcd60e51b8152600401610277906020808252600490820152636530303160e01b604082015260600190565b60405133904780156108fc02916000818181858888f19350505050158015610ce5573d6000803e3d6000fd5b50565b610cf0611621565b610cfa600061167b565b565b606060058054610a8f90611e27565b60006001600160a01b038316301415610d2d57610d283383610fb3565b610d38565b610d383384846111c0565b50600192915050565b6060610c47601b6116cb565b610d55611621565b6001600160a01b038116610dba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610277565b610ce58161167b565b6001600160a01b038316610e255760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610277565b6001600160a01b038216610e865760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610277565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b6000610f05836001600160a01b0384166116d8565b6001600160a01b038381166000908152600260209081526040808320938616835292905220546000198114610fad5781811015610fa05760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610277565b610fad8484848403610dc3565b50505050565b3332146110025760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792065787465726e616c2063616c6c7320616c6c6f77656400000000006044820152606401610277565b6000600e54826110129190611dcf565b90506000811161105a5760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b6044820152606401610277565b804710156110aa5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e207265736572766573000000006044820152606401610277565b6001600160a01b038316600090815260016020526040812080548492906110d2908490611e10565b90915550506000808052600160209081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb498490556040518481526001600160a01b03861691600080516020611ec0833981519152910160405180910390a36040516001600160a01b0384169082156108fc029083906000818181858888f19350505050158015611167573d6000803e3d6000fd5b5060408051600080825260208201859052818301849052606082015290516001600160a01b038516917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a2505050565b6001600160a01b0382166112225760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610277565b60006001600160a01b038416301480156112495750600a546001600160a01b038481169116145b600a549091506000906001600160a01b03868116911614801561127557506001600160a01b0384163014155b806112a15750600a546001600160a01b0385811691161480156112a157506001600160a01b0385163014155b9050600d544210156112b957816112b9575050505050565b6001600160a01b038516600090815260016020526040902054838110156113315760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610277565b8115611578576113418482611e10565b6001600160a01b0387166000908152600160205260409020556012546011546064919061136e9083611e10565b6113789190611e10565b6113829086611df1565b61138c9190611dcf565b6001600160a01b038616600090815260016020526040812080549091906113b4908490611db7565b90915550506011546064906113c99086611df1565b6113d39190611dcf565b6006546001600160a01b0316600090815260016020526040812080549091906113fd908490611db7565b90915550506012546064906114129086611df1565b61141c9190611dcf565b306000908152600160205260408120805490919061143b908490611db7565b90915550506012546064906114509086611df1565b61145a9190611dcf565b6016600082825461146b9190611db7565b92505081905550846001600160a01b0316866001600160a01b0316600080516020611ec0833981519152606460125460115460646114a99190611e10565b6114b39190611e10565b6114bd9089611df1565b6114c79190611dcf565b60405190815260200160405180910390a36006546011546001600160a01b0391821691881690600080516020611ec08339815191529060649061150a9089611df1565b6115149190611dcf565b60405190815260200160405180910390a3306001600160a01b0316866001600160a01b0316600080516020611ec08339815191526064601254886115589190611df1565b6115629190611dcf565b60405190815260200160405180910390a36115fb565b6115828482611e10565b6001600160a01b0380881660009081526001602052604080822093909355908716815290812080548692906115b8908490611db7565b92505081905550846001600160a01b0316866001600160a01b0316600080516020611ec0833981519152866040516115f291815260200190565b60405180910390a35b611603611727565b505050505050565b6000610f058383611acc565b6000610b26825490565b6000546001600160a01b03163314610cfa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610277565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606000610f0583611af6565b600081815260018301602052604081205461171f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b26565b506000610b26565b600d5442101561173357565b600b54611741906005611db7565b43101561174a57565b43600b5560006018546016546117609190611e10565b9050600061176e601b611617565b905080158061177d5750601654155b806117885750601754155b15611791575050565b60155481116119195760005b818110156119145760006117b2601b8361160b565b6017546001600160a01b0382166000908152601a6020526040812054929350916117dc9087611df1565b6117e69190611dcf565b6001600160a01b038316600090815260016020526040812080549293508392909190611813908490611db7565b90915550503060009081526001602052604081208054839290611837908490611e10565b9250508190555080601860008282546118509190611db7565b90915550506040518181526001600160a01b038316903090600080516020611ec08339815191529060200160405180910390a3604080514381524260208201526001600160a01b03841681830152606081018390526080810185905260a0810185905260e060c082018190526006908201526574797065203160d01b61010082015290517f4d315dfcc35aa11408cca3a114c93773b09adf1d2e88fdbcbd5df15a55371786918190036101200190a15050808061190c90611e62565b91505061179d565b505050565b80601454106119285760006014555b60005b601554811015611914576014546000611945601b8361160b565b6017546001600160a01b0382166000908152601a60205260408120549293509161196f9088611df1565b6119799190611dcf565b6001600160a01b0383166000908152600160205260408120805492935083929091906119a6908490611db7565b909155505030600090815260016020526040812080548392906119ca908490611e10565b9250508190555080601860008282546119e39190611db7565b90915550506040518181526001600160a01b038316903090600080516020611ec08339815191529060200160405180910390a3604080514381524260208201526001600160a01b03841681830152606081018390526080810186905260a0810185905260e060c08201819052600690820152653a3cb832901960d11b61010082015290517f4d315dfcc35aa11408cca3a114c93773b09adf1d2e88fdbcbd5df15a55371786918190036101200190a160148054906000611aa283611e62565b91905055508460145410611ab65760006014555b5050508080611ac490611e62565b91505061192b565b6000826000018281548110611ae357611ae3611e93565b9060005260206000200154905092915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611b4657602002820191906000526020600020905b815481526020019060010190808311611b32575b50505050509050919050565b80356001600160a01b0381168114611b6957600080fd5b919050565b600060208284031215611b8057600080fd5b610f0582611b52565b60008060408385031215611b9c57600080fd5b611ba583611b52565b9150611bb360208401611b52565b90509250929050565b600080600060608486031215611bd157600080fd5b611bda84611b52565b9250611be860208501611b52565b9150604084013590509250925092565b60008060408385031215611c0b57600080fd5b611c1483611b52565b946020939093013593505050565b60006020808385031215611c3557600080fd5b823567ffffffffffffffff80821115611c4d57600080fd5b818501915085601f830112611c6157600080fd5b813581811115611c7357611c73611ea9565b8060051b604051601f19603f83011681018181108582111715611c9857611c98611ea9565b604052828152858101935084860182860187018a1015611cb757600080fd5b600095505b83861015611cda578035855260019590950194938601938601611cbc565b5098975050505050505050565b600080600060608486031215611cfc57600080fd5b8351925060208401519150604084015190509250925092565b6020808252825182820181905260009190848201906040850190845b81811015611d565783516001600160a01b031683529284019291840191600101611d31565b50909695505050505050565b600060208083528351808285015260005b81811015611d8f57858101830151858201604001528201611d73565b81811115611da1576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115611dca57611dca611e7d565b500190565b600082611dec57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611e0b57611e0b611e7d565b500290565b600082821015611e2257611e22611e7d565b500390565b600181811c90821680611e3b57607f821691505b60208210811415611e5c57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611e7657611e76611e7d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a8fd28f8b59b88c001f772e7fbe116653d3da9f54ff23f362f1eba3e1fee5b6664736f6c63430008070033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000004504550450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045045504500000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061021e5760003560e01c80638b42426711610123578063ad5c4648116100ab578063d96062501161006f578063d960625014610637578063dd62ed3e1461064c578063e113bc8414610692578063e9ee2fa9146106a8578063f2fde38b146106be57600080fd5b8063ad5c4648146105b5578063afd2c260146105d5578063c31c9c07146105eb578063cd80fe0d1461060b578063d5abeb011461062157600080fd5b806395623641116100f2578063956236411461053457806395d89b41146105545780639b2cb5d814610569578063a9059cbb1461057f578063a9f8d1811461059f57600080fd5b80638b424267146104bd5780638da5cb5b146104d35780638e73064f146104f15780639107d68e1461050757600080fd5b80633221c93f116101a657806361be47c51161017557806361be47c514610432578063672729991461044757806370a082311461045c57806370a6dea814610492578063715018a6146104a857600080fd5b80633221c93f146103d0578063333029c9146103f0578063548cbeb0146104065780635ff56f6e1461041c57600080fd5b806318160ddd116101ed57806318160ddd1461031a57806323b872dd1461032f57806325fb153a1461034f57806326991cc81461037c578063313ce567146103b457600080fd5b806306fdde03146102855780630836b6c8146102b0578063095ea7b3146102d45780630ccf21561461030457600080fd5b3661028057600c5442101580156102375750600d544211155b15610246576102446106de565b005b60405162461bcd60e51b815260206004820152600a6024820152694e6f7420696e2069646f60b01b60448201526064015b60405180910390fd5b600080fd5b34801561029157600080fd5b5061029a610a80565b6040516102a79190611d62565b60405180910390f35b3480156102bc57600080fd5b506102c660105481565b6040519081526020016102a7565b3480156102e057600080fd5b506102f46102ef366004611bf8565b610b12565b60405190151581526020016102a7565b34801561031057600080fd5b506102c660115481565b34801561032657600080fd5b506003546102c6565b34801561033b57600080fd5b506102f461034a366004611bbc565b610b2c565b34801561035b57600080fd5b5061036f61036a366004611c22565b610b70565b6040516102a79190611d15565b34801561038857600080fd5b50600a5461039c906001600160a01b031681565b6040516001600160a01b0390911681526020016102a7565b3480156103c057600080fd5b50604051601281526020016102a7565b3480156103dc57600080fd5b5060075461039c906001600160a01b031681565b3480156103fc57600080fd5b506102c660155481565b34801561041257600080fd5b506102c660135481565b34801561042857600080fd5b506102c6600d5481565b34801561043e57600080fd5b506102c6610c3b565b34801561045357600080fd5b50610244610c4c565b34801561046857600080fd5b506102c6610477366004611b6e565b6001600160a01b031660009081526001602052604090205490565b34801561049e57600080fd5b506102c6600c5481565b3480156104b457600080fd5b50610244610ce8565b3480156104c957600080fd5b506102c660125481565b3480156104df57600080fd5b506000546001600160a01b031661039c565b3480156104fd57600080fd5b506102c660165481565b34801561051357600080fd5b506102c6610522366004611b6e565b601a6020526000908152604090205481565b34801561054057600080fd5b5060065461039c906001600160a01b031681565b34801561056057600080fd5b5061029a610cfc565b34801561057557600080fd5b506102c660195481565b34801561058b57600080fd5b506102f461059a366004611bf8565b610d0b565b3480156105ab57600080fd5b506102c6600b5481565b3480156105c157600080fd5b5060085461039c906001600160a01b031681565b3480156105e157600080fd5b506102c660185481565b3480156105f757600080fd5b5060095461039c906001600160a01b031681565b34801561061757600080fd5b506102c6600e5481565b34801561062d57600080fd5b506102c6600f5481565b34801561064357600080fd5b5061036f610d41565b34801561065857600080fd5b506102c6610667366004611b89565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561069e57600080fd5b506102c660175481565b3480156106b457600080fd5b506102c660145481565b3480156106ca57600080fd5b506102446106d9366004611b6e565b610d4d565b33321461072d5760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792065787465726e616c2063616c6c7320616c6c6f77656400000000006044820152606401610277565b600e54339060009061073f9034611df1565b905080600360008282546107539190611db7565b9091555050600f54600354111561079f5760405162461bcd60e51b815260206004820152601060248201526f657863656564206d6178537570706c7960801b6044820152606401610277565b30600081815260016020908152604080832085905551848152600080516020611ec0833981519152910160405180910390a360006064601354346107e39190611df1565b6107ed9190611dcf565b905060006064601354846108019190611df1565b61080b9190611dcf565b6009549091506108269030906001600160a01b031683610dc3565b60095460075460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b15801561089157600080fd5b505af11580156108a5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108ca9190611ce7565b50505060006064601054856108df9190611df1565b6108e99190611dcf565b6001600160a01b038616600090815260016020526040812080549293508392909190610916908490611db7565b9091555050306000908152600160205260408120805483929061093a908490611e10565b90915550506040518181526001600160a01b038616903090600080516020611ec08339815191529060200160405180910390a36001600160a01b0385166000908152601a602052604081208054859290610995908490611db7565b90915550506019546001600160a01b0386166000908152601a602052604090205410610a26576109c6601b86610ee7565b156109e85782601760008282546109dd9190611db7565b90915550610a269050565b6109f3601b86610f0c565b506001600160a01b0385166000908152601a60205260408120546017805491929091610a20908490611db7565b90915550505b60408051348152600060208201819052818301526060810183905290516001600160a01b038716917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a25050505050565b606060048054610a8f90611e27565b80601f0160208091040260200160405190810160405280929190818152602001828054610abb90611e27565b8015610b085780601f10610add57610100808354040283529160200191610b08565b820191906000526020600020905b815481529060010190602001808311610aeb57829003601f168201915b5050505050905090565b600033610b20818585610dc3565b60019150505b92915050565b600033610b3a858285610f21565b6001600160a01b038416301415610b5a57610b558584610fb3565b610b65565b610b658585856111c0565b506001949350505050565b80516060908067ffffffffffffffff811115610b8e57610b8e611ea9565b604051908082528060200260200182016040528015610bb7578160200160208202803683370190505b50915060005b81811015610c34576000848281518110610bd957610bd9611e93565b60200260200101519050610bf781601b61160b90919063ffffffff16565b848381518110610c0957610c09611e93565b6001600160a01b03909216602092830291909101909101525080610c2c81611e62565b915050610bbd565b5050919050565b6000610c47601b611617565b905090565b6000546001600160a01b0316331480610c6f57506006546001600160a01b031633145b80610c8457506007546001600160a01b031633145b610cb95760405162461bcd60e51b8152600401610277906020808252600490820152636530303160e01b604082015260600190565b60405133904780156108fc02916000818181858888f19350505050158015610ce5573d6000803e3d6000fd5b50565b610cf0611621565b610cfa600061167b565b565b606060058054610a8f90611e27565b60006001600160a01b038316301415610d2d57610d283383610fb3565b610d38565b610d383384846111c0565b50600192915050565b6060610c47601b6116cb565b610d55611621565b6001600160a01b038116610dba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610277565b610ce58161167b565b6001600160a01b038316610e255760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610277565b6001600160a01b038216610e865760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610277565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b6000610f05836001600160a01b0384166116d8565b6001600160a01b038381166000908152600260209081526040808320938616835292905220546000198114610fad5781811015610fa05760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610277565b610fad8484848403610dc3565b50505050565b3332146110025760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792065787465726e616c2063616c6c7320616c6c6f77656400000000006044820152606401610277565b6000600e54826110129190611dcf565b90506000811161105a5760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b6044820152606401610277565b804710156110aa5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e207265736572766573000000006044820152606401610277565b6001600160a01b038316600090815260016020526040812080548492906110d2908490611e10565b90915550506000808052600160209081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb498490556040518481526001600160a01b03861691600080516020611ec0833981519152910160405180910390a36040516001600160a01b0384169082156108fc029083906000818181858888f19350505050158015611167573d6000803e3d6000fd5b5060408051600080825260208201859052818301849052606082015290516001600160a01b038516917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a2505050565b6001600160a01b0382166112225760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610277565b60006001600160a01b038416301480156112495750600a546001600160a01b038481169116145b600a549091506000906001600160a01b03868116911614801561127557506001600160a01b0384163014155b806112a15750600a546001600160a01b0385811691161480156112a157506001600160a01b0385163014155b9050600d544210156112b957816112b9575050505050565b6001600160a01b038516600090815260016020526040902054838110156113315760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610277565b8115611578576113418482611e10565b6001600160a01b0387166000908152600160205260409020556012546011546064919061136e9083611e10565b6113789190611e10565b6113829086611df1565b61138c9190611dcf565b6001600160a01b038616600090815260016020526040812080549091906113b4908490611db7565b90915550506011546064906113c99086611df1565b6113d39190611dcf565b6006546001600160a01b0316600090815260016020526040812080549091906113fd908490611db7565b90915550506012546064906114129086611df1565b61141c9190611dcf565b306000908152600160205260408120805490919061143b908490611db7565b90915550506012546064906114509086611df1565b61145a9190611dcf565b6016600082825461146b9190611db7565b92505081905550846001600160a01b0316866001600160a01b0316600080516020611ec0833981519152606460125460115460646114a99190611e10565b6114b39190611e10565b6114bd9089611df1565b6114c79190611dcf565b60405190815260200160405180910390a36006546011546001600160a01b0391821691881690600080516020611ec08339815191529060649061150a9089611df1565b6115149190611dcf565b60405190815260200160405180910390a3306001600160a01b0316866001600160a01b0316600080516020611ec08339815191526064601254886115589190611df1565b6115629190611dcf565b60405190815260200160405180910390a36115fb565b6115828482611e10565b6001600160a01b0380881660009081526001602052604080822093909355908716815290812080548692906115b8908490611db7565b92505081905550846001600160a01b0316866001600160a01b0316600080516020611ec0833981519152866040516115f291815260200190565b60405180910390a35b611603611727565b505050505050565b6000610f058383611acc565b6000610b26825490565b6000546001600160a01b03163314610cfa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610277565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606000610f0583611af6565b600081815260018301602052604081205461171f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b26565b506000610b26565b600d5442101561173357565b600b54611741906005611db7565b43101561174a57565b43600b5560006018546016546117609190611e10565b9050600061176e601b611617565b905080158061177d5750601654155b806117885750601754155b15611791575050565b60155481116119195760005b818110156119145760006117b2601b8361160b565b6017546001600160a01b0382166000908152601a6020526040812054929350916117dc9087611df1565b6117e69190611dcf565b6001600160a01b038316600090815260016020526040812080549293508392909190611813908490611db7565b90915550503060009081526001602052604081208054839290611837908490611e10565b9250508190555080601860008282546118509190611db7565b90915550506040518181526001600160a01b038316903090600080516020611ec08339815191529060200160405180910390a3604080514381524260208201526001600160a01b03841681830152606081018390526080810185905260a0810185905260e060c082018190526006908201526574797065203160d01b61010082015290517f4d315dfcc35aa11408cca3a114c93773b09adf1d2e88fdbcbd5df15a55371786918190036101200190a15050808061190c90611e62565b91505061179d565b505050565b80601454106119285760006014555b60005b601554811015611914576014546000611945601b8361160b565b6017546001600160a01b0382166000908152601a60205260408120549293509161196f9088611df1565b6119799190611dcf565b6001600160a01b0383166000908152600160205260408120805492935083929091906119a6908490611db7565b909155505030600090815260016020526040812080548392906119ca908490611e10565b9250508190555080601860008282546119e39190611db7565b90915550506040518181526001600160a01b038316903090600080516020611ec08339815191529060200160405180910390a3604080514381524260208201526001600160a01b03841681830152606081018390526080810186905260a0810185905260e060c08201819052600690820152653a3cb832901960d11b61010082015290517f4d315dfcc35aa11408cca3a114c93773b09adf1d2e88fdbcbd5df15a55371786918190036101200190a160148054906000611aa283611e62565b91905055508460145410611ab65760006014555b5050508080611ac490611e62565b91505061192b565b6000826000018281548110611ae357611ae3611e93565b9060005260206000200154905092915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611b4657602002820191906000526020600020905b815481526020019060010190808311611b32575b50505050509050919050565b80356001600160a01b0381168114611b6957600080fd5b919050565b600060208284031215611b8057600080fd5b610f0582611b52565b60008060408385031215611b9c57600080fd5b611ba583611b52565b9150611bb360208401611b52565b90509250929050565b600080600060608486031215611bd157600080fd5b611bda84611b52565b9250611be860208501611b52565b9150604084013590509250925092565b60008060408385031215611c0b57600080fd5b611c1483611b52565b946020939093013593505050565b60006020808385031215611c3557600080fd5b823567ffffffffffffffff80821115611c4d57600080fd5b818501915085601f830112611c6157600080fd5b813581811115611c7357611c73611ea9565b8060051b604051601f19603f83011681018181108582111715611c9857611c98611ea9565b604052828152858101935084860182860187018a1015611cb757600080fd5b600095505b83861015611cda578035855260019590950194938601938601611cbc565b5098975050505050505050565b600080600060608486031215611cfc57600080fd5b8351925060208401519150604084015190509250925092565b6020808252825182820181905260009190848201906040850190845b81811015611d565783516001600160a01b031683529284019291840191600101611d31565b50909695505050505050565b600060208083528351808285015260005b81811015611d8f57858101830151858201604001528201611d73565b81811115611da1576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115611dca57611dca611e7d565b500190565b600082611dec57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611e0b57611e0b611e7d565b500290565b600082821015611e2257611e22611e7d565b500390565b600181811c90821680611e3b57607f821691505b60208210811415611e5c57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611e7657611e76611e7d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a8fd28f8b59b88c001f772e7fbe116653d3da9f54ff23f362f1eba3e1fee5b6664736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000004504550450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045045504500000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): PEPE
Arg [1] : symbol_ (string): PEPE
Arg [2] : _swapRouter (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [3] : _WETH (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [3] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 5045504500000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 5045504500000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
1146:14268:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15272:12;;15253:15;:31;;:64;;;;;15307:10;;15288:15;:29;;15253:64;15249:155;;;15334:5;:3;:5::i;:::-;1146:14268;15249:155;15372:20;;-1:-1:-1;;;15372:20:3;;7897:2:6;15372:20:3;;;7879:21:6;7936:2;7916:18;;;7909:30;-1:-1:-1;;;7955:18:6;;;7948:40;8005:18;;15372:20:3;;;;;;;;1146:14268;;;;5213:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2455:27;;;;;;;;;;;;;;;;;;;10339:25:6;;;10327:2;10312:18;2455:27:3;10193:177:6;5915:217:3;;;;;;;;;;-1:-1:-1;5915:217:3;;;;;:::i;:::-;;:::i;:::-;;;4330:14:6;;4323:22;4305:41;;4293:2;4278:18;5915:217:3;4165:187:6;2489:28:3;;;;;;;;;;;;;;;;5507:99;;;;;;;;;;-1:-1:-1;5586:12:3;;5507:99;;6140:388;;;;;;;;;;-1:-1:-1;6140:388:3;;;;;:::i;:::-;;:::i;14616:368::-;;;;;;;;;;-1:-1:-1;14616:368:3;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2062:23::-;;;;;;;;;;-1:-1:-1;2062:23:3;;;;-1:-1:-1;;;;;2062:23:3;;;;;;-1:-1:-1;;;;;2846:32:6;;;2828:51;;2816:2;2801:18;2062:23:3;2682:203:6;5415:84:3;;;;;;;;;;-1:-1:-1;5415:84:3;;5489:2;12515:36:6;;12503:2;12488:18;5415:84:3;12373:184:6;1508:31:3;;;;;;;;;;-1:-1:-1;1508:31:3;;;;-1:-1:-1;;;;;1508:31:3;;;2632;;;;;;;;;;;;;;;;2559:33;;;;;;;;;;;;;;;;2291:53;;;;;;;;;;;;;;;;14377:107;;;;;;;;;;;;;:::i;14992:211::-;;;;;;;;;;;;;:::i;5614:118::-;;;;;;;;;;-1:-1:-1;5614:118:3;;;;;:::i;:::-;-1:-1:-1;;;;;5706:18:3;5679:7;5706:18;;;:9;:18;;;;;;;5614:118;2239:45;;;;;;;;;;;;;;;;648:103:5;;;;;;;;;;;;;:::i;2524:28:3:-;;;;;;;;;;;;;;;;413:87:5;;;;;;;;;;-1:-1:-1;459:7:5;486:6;-1:-1:-1;;;;;486:6:5;413:87;;2670:32:3;;;;;;;;;;;;;;;;2887:51;;;;;;;;;;-1:-1:-1;2887:51:3;;;;;:::i;:::-;;;;;;;;;;;;;;1473:28;;;;;;;;;;-1:-1:-1;1473:28:3;;;;-1:-1:-1;;;;;1473:28:3;;;5312:95;;;;;;;;;;;;;:::i;2784:46::-;;;;;;;;;;;;;;;;6536:259;;;;;;;;;;-1:-1:-1;6536:259:3;;;;;:::i;:::-;;:::i;2198:34::-;;;;;;;;;;;;;;;;1546:19;;;;;;;;;;-1:-1:-1;1546:19:3;;;;-1:-1:-1;;;;;1546:19:3;;;2748:29;;;;;;;;;;;;;;;;1572:25;;;;;;;;;;-1:-1:-1;1572:25:3;;;;-1:-1:-1;;;;;1572:25:3;;;2351:33;;;;;;;;;;;;;;;;2391:57;;;;;;;;;;;;;;;;14492:116;;;;;;;;;;;;;:::i;5740:167::-;;;;;;;;;;-1:-1:-1;5740:167:3;;;;;:::i;:::-;-1:-1:-1;;;;;5872:18:3;;;5845:7;5872:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5740:167;2709:32;;;;;;;;;;;;;;;;2599:26;;;;;;;;;;;;;;;;759:201:5;;;;;;;;;;-1:-1:-1;759:201:5;;;;;:::i;:::-;;:::i;12255:1455:3:-;173:10:1;12314:9:3;12298:25;12290:65;;;;-1:-1:-1;;;12290:65:3;;8941:2:6;12290:65:3;;;8923:21:6;8980:2;8960:18;;;8953:30;9019:29;8999:18;;;8992:57;9066:18;;12290:65:3;8739:351:6;12290:65:3;12438:8;;173:10:1;;12366:13:3;;12426:20;;:9;:20;:::i;:::-;12405:41;;12473:10;12457:12;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;12518:9:3;;12502:12;;:25;;12494:54;;;;-1:-1:-1;;;12494:54:3;;7145:2:6;12494:54:3;;;7127:21:6;7184:2;7164:18;;;7157:30;-1:-1:-1;;;7203:18:6;;;7196:46;7259:18;;12494:54:3;6943:340:6;12494:54:3;12577:4;12559:24;;;;:9;:24;;;;;;;;:37;;;12612:47;10339:25:6;;;-1:-1:-1;;;;;;;;;;;12612:47:3;10312:18:6;12612:47:3;;;;;;;12670:19;12722:3;12706:13;;12693:9;12692:27;;;;:::i;:::-;:33;;;;:::i;:::-;12670:55;;12736:20;12788:3;12772:13;;12759:10;:26;;;;:::i;:::-;:32;;;;:::i;:::-;12826:10;;12736:55;;-1:-1:-1;12802:49:3;;12819:4;;-1:-1:-1;;;;;12826:10:3;12736:55;12802:8;:49::i;:::-;12874:10;;13023:16;;12862:218;;-1:-1:-1;;;12862:218:3;;12944:4;12862:218;;;3231:34:6;3281:18;;;3274:34;;;12874:10:3;3324:18:6;;;3317:34;;;3367:18;;;3360:34;-1:-1:-1;;;;;13023:16:3;;;3410:19:6;;;3403:44;13054:15:3;3463:19:6;;;3456:35;12874:10:3;;;12862:39;;12909:11;;3165:19:6;;12862:218:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13091:19;13136:3;13126:7;;13113:10;:20;;;;:::i;:::-;:26;;;;:::i;:::-;-1:-1:-1;;;;;13150:16:3;;;;;;:9;:16;;;;;:31;;13091:48;;-1:-1:-1;13091:48:3;;13150:16;;;:31;;13091:48;;13150:31;:::i;:::-;;;;-1:-1:-1;;13210:4:3;13192:24;;;;:9;:24;;;;;:39;;13220:11;;13192:24;:39;;13220:11;;13192:39;:::i;:::-;;;;-1:-1:-1;;13247:43:3;;10339:25:6;;;-1:-1:-1;;;;;13247:43:3;;;13264:4;;-1:-1:-1;;;;;;;;;;;13247:43:3;10327:2:6;10312:18;13247:43:3;;;;;;;-1:-1:-1;;;;;13301:23:3;;;;;;:16;:23;;;;;:38;;13328:11;;13301:23;:38;;13328:11;;13301:38;:::i;:::-;;;;-1:-1:-1;;13381:9:3;;-1:-1:-1;;;;;13354:23:3;;;;;;:16;:23;;;;;;:36;13350:296;;13411:28;:12;13433:5;13411:21;:28::i;:::-;13407:228;;;13481:11;13460:17;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;13407:228:3;;-1:-1:-1;13407:228:3;;13533:23;:12;13550:5;13533:16;:23::i;:::-;-1:-1:-1;;;;;;13596:23:3;;;;;;:16;:23;;;;;;13575:17;:44;;13596:23;;13575:17;;:44;;13596:23;;13575:44;:::i;:::-;;;;-1:-1:-1;;13407:228:3;13661:41;;;13673:9;4604:25:6;;13684:1:3;4660:2:6;4645:18;;4638:34;;;4688:18;;;4681:34;4746:2;4731:18;;4724:34;;;13661:41:3;;-1:-1:-1;;;;;13661:41:3;;;;;;;;;4591:3:6;13661:41:3;;;12279:1431;;;;;12255:1455::o;5213:91::-;5258:13;5291:5;5284:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5213:91;:::o;5915:217::-;6014:4;173:10:1;6070:32:3;173:10:1;6086:7:3;6095:6;6070:8;:32::i;:::-;6120:4;6113:11;;;5915:217;;;;;:::o;6140:388::-;6262:4;173:10:1;6320:38:3;6336:4;173:10:1;6351:6:3;6320:15;:38::i;:::-;-1:-1:-1;;;;;6373:19:3;;6387:4;6373:19;6369:130;;;6409:18;6414:4;6420:6;6409:4;:18::i;:::-;6369:130;;;6460:27;6470:4;6476:2;6480:6;6460:9;:27::i;:::-;-1:-1:-1;6516:4:3;;6140:388;-1:-1:-1;;;;6140:388:3:o;14616:368::-;14759:17;;14702:29;;14759:17;14802:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14802:19:3;;14787:34;;14837:6;14832:145;14853:4;14849:1;:8;14832:145;;;14879:14;14896:10;14907:1;14896:13;;;;;;;;:::i;:::-;;;;;;;14879:30;;14942:23;14958:6;14942:12;:15;;:23;;;;:::i;:::-;14924:12;14937:1;14924:15;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14924:41:3;;;:15;;;;;;;;;;;:41;-1:-1:-1;14859:3:3;;;;:::i;:::-;;;;14832:145;;;;14733:251;14616:368;;;:::o;14377:107::-;14428:7;14455:21;:12;:19;:21::i;:::-;14448:28;;14377:107;:::o;14992:211::-;459:7:5;486:6;-1:-1:-1;;;;;486:6:5;15038:10:3;:21;;:52;;-1:-1:-1;15077:13:3;;-1:-1:-1;;;;;15077:13:3;15063:10;:27;15038:52;:86;;;-1:-1:-1;15108:16:3;;-1:-1:-1;;;;;15108:16:3;15094:10;:30;15038:86;15030:103;;;;-1:-1:-1;;;15030:103:3;;;;;;10063:2:6;10045:21;;;10102:1;10082:18;;;10075:29;-1:-1:-1;;;10135:2:6;10120:18;;10113:34;10179:2;10164:18;;9861:327;15030:103:3;15144:51;;15152:10;;15173:21;15144:51;;;;;;;;;15173:21;15152:10;15144:51;;;;;;;;;;;;;;;;;;;;;14992:211::o;648:103:5:-;372:13;:11;:13::i;:::-;713:30:::1;740:1;713:18;:30::i;:::-;648:103::o:0;5312:95:3:-;5359:13;5392:7;5385:14;;;;;:::i;6536:259::-;6605:4;-1:-1:-1;;;;;6626:19:3;;6640:4;6626:19;6622:144;;;6662:25;173:10:1;6681:5:3;6662:4;:25::i;:::-;6622:144;;;6720:34;173:10:1;6744:2:3;6748:5;6720:9;:34::i;:::-;-1:-1:-1;6783:4:3;6536:259;;;;:::o;14492:116::-;14543:16;14579:21;:12;:19;:21::i;759:201:5:-;372:13;:11;:13::i;:::-;-1:-1:-1;;;;;848:22:5;::::1;840:73;;;::::0;-1:-1:-1;;;840:73:5;;5977:2:6;840:73:5::1;::::0;::::1;5959:21:6::0;6016:2;5996:18;;;5989:30;6055:34;6035:18;;;6028:62;-1:-1:-1;;;6106:18:6;;;6099:36;6152:19;;840:73:5::1;5775:402:6::0;840:73:5::1;924:28;943:8;924:18;:28::i;6803:380:3:-:0;-1:-1:-1;;;;;6939:19:3;;6931:68;;;;-1:-1:-1;;;6931:68:3;;9658:2:6;6931:68:3;;;9640:21:6;9697:2;9677:18;;;9670:30;9736:34;9716:18;;;9709:62;-1:-1:-1;;;9787:18:6;;;9780:34;9831:19;;6931:68:3;9456:400:6;6931:68:3;-1:-1:-1;;;;;7018:21:3;;7010:68;;;;-1:-1:-1;;;7010:68:3;;6384:2:6;7010:68:3;;;6366:21:6;6423:2;6403:18;;;6396:30;6462:34;6442:18;;;6435:62;-1:-1:-1;;;6513:18:6;;;6506:32;6555:19;;7010:68:3;6182:398:6;7010:68:3;-1:-1:-1;;;;;7091:18:3;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7143:32;;10339:25:6;;;7143:32:3;;10312:18:6;7143:32:3;;;;;;;6803:380;;;:::o;3058:167:2:-;-1:-1:-1;;;;;3192:23:2;;3138:4;1260:19;;;:12;;;:19;;;;;;:24;;3162:55;3155:62;3058:167;-1:-1:-1;;;3058:167:2:o;2732:152::-;2802:4;2826:50;2831:3;-1:-1:-1;;;;;2851:23:2;;2826:4;:50::i;7191:502:3:-;-1:-1:-1;;;;;5872:18:3;;;7326:24;5872:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;7393:37:3;;7389:297;;7493:6;7473:16;:26;;7447:117;;;;-1:-1:-1;;;7447:117:3;;6787:2:6;7447:117:3;;;6769:21:6;6826:2;6806:18;;;6799:30;6865:31;6845:18;;;6838:59;6914:18;;7447:117:3;6585:353:6;7447:117:3;7608:51;7617:5;7624:7;7652:6;7633:16;:25;7608:8;:51::i;:::-;7315:378;7191:502;;;:::o;13718:651::-;173:10:1;13867:9:3;13851:25;13843:65;;;;-1:-1:-1;;;13843:65:3;;8941:2:6;13843:65:3;;;8923:21:6;8980:2;8960:18;;;8953:30;9019:29;8999:18;;;8992:57;9066:18;;13843:65:3;8739:351:6;13843:65:3;13919:17;13948:8;;13939:6;:17;;;;:::i;:::-;13919:37;;13987:1;13975:9;:13;13967:45;;;;-1:-1:-1;;;13967:45:3;;8236:2:6;13967:45:3;;;8218:21:6;8275:2;8255:18;;;8248:30;-1:-1:-1;;;8294:18:6;;;8287:49;8353:18;;13967:45:3;8034:343:6;13967:45:3;14070:9;14045:21;:34;;14023:112;;;;-1:-1:-1;;;14023:112:3;;8584:2:6;14023:112:3;;;8566:21:6;8623:2;8603:18;;;8596:30;8662;8642:18;;;8635:58;8710:18;;14023:112:3;8382:352:6;14023:112:3;-1:-1:-1;;;;;14146:16:3;;;;;;:9;:16;;;;;:26;;14166:6;;14146:16;:26;;14166:6;;14146:26;:::i;:::-;;;;-1:-1:-1;;14183:21:3;;;;:9;:21;;;;;:30;;;:21;14229:35;10339:25:6;;;-1:-1:-1;;;;;14229:35:3;;;-1:-1:-1;;;;;;;;;;;14229:35:3;10312:18:6;14229:35:3;;;;;;;14275:34;;-1:-1:-1;;;;;14275:23:3;;;:34;;;;;14299:9;;14275:34;;;;14299:9;14275:23;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14325:36:3;;;14337:1;4604:25:6;;;4660:2;4645:18;;4638:34;;;4688:18;;;4681:34;;;4746:2;4731:18;;4724:34;14325:36:3;;-1:-1:-1;;;;;14325:36:3;;;;;;;;;4591:3:6;14325:36:3;;;13772:597;13718:651;;:::o;10815:1432::-;-1:-1:-1;;;;;10946:16:3;;10938:64;;;;-1:-1:-1;;;10938:64:3;;5573:2:6;10938:64:3;;;5555:21:6;5612:2;5592:18;;;5585:30;5651:34;5631:18;;;5624:62;-1:-1:-1;;;5702:18:6;;;5695:33;5745:19;;10938:64:3;5371:399:6;10938:64:3;11013:11;-1:-1:-1;;;;;11027:21:3;;11043:4;11027:21;:39;;;;-1:-1:-1;11058:8:3;;-1:-1:-1;;;;;11052:14:3;;;11058:8;;11052:14;11027:39;11100:8;;11013:53;;-1:-1:-1;11077:11:3;;-1:-1:-1;;;;;11092:16:3;;;11100:8;;11092:16;:39;;;;-1:-1:-1;;;;;;11112:19:3;;11126:4;11112:19;;11092:39;11091:86;;;-1:-1:-1;11143:8:3;;-1:-1:-1;;;;;11137:14:3;;;11143:8;;11137:14;:39;;;;-1:-1:-1;;;;;;11155:21:3;;11171:4;11155:21;;11137:39;11077:100;;11210:10;;11192:15;:28;11188:114;;;11242:6;11237:54;;11269:7;;10815:1432;;;:::o;11237:54::-;-1:-1:-1;;;;;11334:15:3;;11312:19;11334:15;;;:9;:15;;;;;;11382:21;;;;11360:109;;;;-1:-1:-1;;;11360:109:3;;7490:2:6;11360:109:3;;;7472:21:6;7529:2;7509:18;;;7502:30;7568:34;7548:18;;;7541:62;-1:-1:-1;;;7619:18:6;;;7612:36;7665:19;;11360:109:3;7288:402:6;11360:109:3;11486:6;11482:736;;;11527:20;11541:6;11527:11;:20;:::i;:::-;-1:-1:-1;;;;;11509:15:3;;;;;;:9;:15;;;;;:38;11607:9;;11595;;11620:3;;11607:9;11589:15;;11620:3;11589:15;:::i;:::-;:27;;;;:::i;:::-;11579:38;;:6;:38;:::i;:::-;:44;;;;:::i;:::-;-1:-1:-1;;;;;11562:13:3;;;;;;:9;:13;;;;;:61;;:13;;;:61;;;;;:::i;:::-;;;;-1:-1:-1;;11675:9:3;;11687:3;;11666:18;;:6;:18;:::i;:::-;:24;;;;:::i;:::-;11648:13;;-1:-1:-1;;;;;11648:13:3;11638:24;;;;:9;:24;;;;;:52;;:24;;;:52;;;;;:::i;:::-;;;;-1:-1:-1;;11742:9:3;;11754:3;;11733:18;;:6;:18;:::i;:::-;:24;;;;:::i;:::-;11723:4;11705:24;;;;:9;:24;;;;;:52;;:24;;;:52;;;;;:::i;:::-;;;;-1:-1:-1;;11802:9:3;;11814:3;;11793:18;;:6;:18;:::i;:::-;:24;;;;:::i;:::-;11772:17;;:45;;;;;;;:::i;:::-;;;;;;;;11852:2;-1:-1:-1;;;;;11837:64:3;11846:4;-1:-1:-1;;;;;11837:64:3;-1:-1:-1;;;;;;;;;;;11897:3:3;11884:9;;11872;;11866:3;:15;;;;:::i;:::-;:27;;;;:::i;:::-;11856:38;;:6;:38;:::i;:::-;:44;;;;:::i;:::-;11837:64;;10339:25:6;;;10327:2;10312:18;11837:64:3;;;;;;;11936:13;;11960:9;;-1:-1:-1;;;;;11936:13:3;;;;11921:55;;;-1:-1:-1;;;;;;;;;;;11921:55:3;11972:3;;11951:18;;:6;:18;:::i;:::-;:24;;;;:::i;:::-;11921:55;;10339:25:6;;;10327:2;10312:18;11921:55:3;;;;;;;12019:4;-1:-1:-1;;;;;11996:55:3;12005:4;-1:-1:-1;;;;;11996:55:3;-1:-1:-1;;;;;;;;;;;12047:3:3;12035:9;;12026:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;11996:55;;10339:25:6;;;10327:2;10312:18;11996:55:3;;;;;;;11482:736;;;12102:20;12116:6;12102:11;:20;:::i;:::-;-1:-1:-1;;;;;12084:15:3;;;;;;;:9;:15;;;;;;:38;;;;12137:13;;;;;;;;:23;;12154:6;;12084:15;12137:23;;12154:6;;12137:23;:::i;:::-;;;;;;;;12195:2;-1:-1:-1;;;;;12180:26:3;12189:4;-1:-1:-1;;;;;12180:26:3;-1:-1:-1;;;;;;;;;;;12199:6:3;12180:26;;;;10339:25:6;;10327:2;10312:18;;10193:177;12180:26:3;;;;;;;;11482:736;12230:9;:7;:9::i;:::-;10927:1320;;;10815:1432;;;:::o;3358:158:2:-;3432:7;3483:22;3487:3;3499:5;3483:3;:22::i;3233:117::-;3296:7;3323:19;3331:3;1383:18;;1300:109;508:132:5;459:7;486:6;-1:-1:-1;;;;;486:6:5;173:10:1;572:23:5;564:68;;;;-1:-1:-1;;;564:68:5;;9297:2:6;564:68:5;;;9279:21:6;;;9316:18;;;9309:30;9375:34;9355:18;;;9348:62;9427:18;;564:68:5;9095:356:6;968:191:5;1042:16;1061:6;;-1:-1:-1;;;;;1078:17:5;;;-1:-1:-1;;;;;;1078:17:5;;;;;;1111:40;;1061:6;;;;;;;1111:40;;1042:16;1111:40;1031:128;968:191;:::o;3524:262:2:-;3587:16;3616:22;3641:19;3649:3;3641:7;:19::i;191:291::-;254:4;1260:19;;;:12;;;:19;;;;;;271:204;;-1:-1:-1;314:23:2;;;;;;;;:11;:23;;;;;;;;;;;;;374:18;;352:19;;;:12;;;:19;;;;;;:40;;;;407:11;;271:204;-1:-1:-1;458:5:2;451:12;;8990:1817:3;9051:10;;9033:15;:28;9029:67;;;8990:1817::o;9029:67::-;9125:15;;:19;;9143:1;9125:19;:::i;:::-;9110:12;:34;9106:136;;;8990:1817::o;9106:136::-;9218:12;9200:15;:30;9252:17;9292:14;;9272:17;;:34;;;;:::i;:::-;9252:54;;9317:12;9332:21;:12;:19;:21::i;:::-;9317:36;-1:-1:-1;9368:9:3;;;:35;;-1:-1:-1;9381:17:3;;:22;9368:35;:61;;;-1:-1:-1;9407:17:3;;:22;9368:61;9364:100;;;9446:7;;8990:1817::o;9364:100::-;9486:12;;9478:4;:20;9474:574;;9520:9;9515:501;9539:4;9535:1;:8;9515:501;;;9569:13;9585:18;:12;9601:1;9585:15;:18::i;:::-;9678:17;;-1:-1:-1;;;;;9652:23:3;;9622:15;9652:23;;;:16;:23;;;;;;9569:34;;-1:-1:-1;9622:15:3;9640:35;;:9;:35;:::i;:::-;:55;;;;:::i;:::-;-1:-1:-1;;;;;9714:16:3;;;;;;:9;:16;;;;;:27;;9622:73;;-1:-1:-1;9622:73:3;;9714:16;;;:27;;9622:73;;9714:27;:::i;:::-;;;;-1:-1:-1;;9778:4:3;9760:24;;;;:9;:24;;;;;:35;;9788:7;;9760:24;:35;;9788:7;;9760:35;:::i;:::-;;;;;;;;9832:7;9814:14;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;9863:39:3;;10339:25:6;;;-1:-1:-1;;;;;9863:39:3;;;9880:4;;-1:-1:-1;;;;;;;;;;;9863:39:3;10327:2:6;10312:18;9863:39:3;;;;;;;9926:74;;;9938:12;11932:25:6;;9952:15:3;11988:2:6;11973:18;;11966:34;-1:-1:-1;;;;;12036:32:6;;12016:18;;;12009:60;12100:2;12085:18;;12078:34;;;12143:3;12128:19;;12121:35;;;12056:3;12172:19;;12165:35;;;12237:3;12231;12216:19;;12209:32;;;12278:1;12257:19;;;12250:30;-1:-1:-1;;;12311:3:6;12296:19;;12289:37;9926:74:3;;;;;;;12358:3:6;9926:74:3;;;9550:466;;9545:3;;;;;:::i;:::-;;;;9515:501;;;;10030:7;;8990:1817::o;9474:574::-;10077:4;10062:11;;:19;10058:67;;10112:1;10098:11;:15;10058:67;10140:9;10135:665;10159:12;;10155:1;:16;10135:665;;;10216:11;;10193:20;10258:29;:12;10216:11;10258:15;:29::i;:::-;10358:17;;-1:-1:-1;;;;;10332:23:3;;10302:15;10332:23;;;:16;:23;;;;;;10242:45;;-1:-1:-1;10302:15:3;10320:35;;:9;:35;:::i;:::-;:55;;;;:::i;:::-;-1:-1:-1;;;;;10390:16:3;;;;;;:9;:16;;;;;:27;;10302:73;;-1:-1:-1;10302:73:3;;10390:16;;;:27;;10302:73;;10390:27;:::i;:::-;;;;-1:-1:-1;;10450:4:3;10432:24;;;;:9;:24;;;;;:35;;10460:7;;10432:24;:35;;10460:7;;10432:35;:::i;:::-;;;;;;;;10500:7;10482:14;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;10527:39:3;;10339:25:6;;;-1:-1:-1;;;;;10527:39:3;;;10544:4;;-1:-1:-1;;;;;;;;;;;10527:39:3;10327:2:6;10312:18;10527:39:3;;;;;;;10586:85;;;10598:12;11139:25:6;;10612:15:3;11195:2:6;11180:18;;11173:34;-1:-1:-1;;;;;11243:32:6;;11223:18;;;11216:60;11307:2;11292:18;;11285:34;;;11350:3;11335:19;;11328:35;;;11263:3;11379:19;;11372:35;;;11444:3;11438;11423:19;;11416:32;;;11485:1;11464:19;;;11457:30;-1:-1:-1;;;11518:3:6;11503:19;;11496:37;10586:85:3;;;;;;;11565:3:6;10586:85:3;;;10686:11;:13;;;:11;:13;;;:::i;:::-;;;;;;10733:4;10718:11;;:19;10714:75;;10772:1;10758:11;:15;10714:75;10178:622;;;10173:3;;;;;:::i;:::-;;;;10135:665;;1417:120:2;1484:7;1511:3;:11;;1523:5;1511:18;;;;;;;;:::i;:::-;;;;;;;;;1504:25;;1417:120;;;;:::o;1545:111::-;1601:16;1637:3;:11;;1630:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1545:111;;;:::o;14:173:6:-;82:20;;-1:-1:-1;;;;;131:31:6;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;383:260;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:52;;;810:1;807;800:12;762:52;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;648:328;;;;;:::o;981:254::-;1049:6;1057;1110:2;1098:9;1089:7;1085:23;1081:32;1078:52;;;1126:1;1123;1116:12;1078:52;1149:29;1168:9;1149:29;:::i;:::-;1139:39;1225:2;1210:18;;;;1197:32;;-1:-1:-1;;;981:254:6:o;1240:1126::-;1324:6;1355:2;1398;1386:9;1377:7;1373:23;1369:32;1366:52;;;1414:1;1411;1404:12;1366:52;1454:9;1441:23;1483:18;1524:2;1516:6;1513:14;1510:34;;;1540:1;1537;1530:12;1510:34;1578:6;1567:9;1563:22;1553:32;;1623:7;1616:4;1612:2;1608:13;1604:27;1594:55;;1645:1;1642;1635:12;1594:55;1681:2;1668:16;1703:2;1699;1696:10;1693:36;;;1709:18;;:::i;:::-;1755:2;1752:1;1748:10;1787:2;1781:9;1850:2;1846:7;1841:2;1837;1833:11;1829:25;1821:6;1817:38;1905:6;1893:10;1890:22;1885:2;1873:10;1870:18;1867:46;1864:72;;;1916:18;;:::i;:::-;1952:2;1945:22;2002:18;;;2036:15;;;;-1:-1:-1;2071:11:6;;;2101;;;2097:20;;2094:33;-1:-1:-1;2091:53:6;;;2140:1;2137;2130:12;2091:53;2162:1;2153:10;;2172:163;2186:2;2183:1;2180:9;2172:163;;;2243:17;;2231:30;;2204:1;2197:9;;;;;2281:12;;;;2313;;2172:163;;;-1:-1:-1;2354:6:6;1240:1126;-1:-1:-1;;;;;;;;1240:1126:6:o;2371:306::-;2459:6;2467;2475;2528:2;2516:9;2507:7;2503:23;2499:32;2496:52;;;2544:1;2541;2534:12;2496:52;2573:9;2567:16;2557:26;;2623:2;2612:9;2608:18;2602:25;2592:35;;2667:2;2656:9;2652:18;2646:25;2636:35;;2371:306;;;;;:::o;3502:658::-;3673:2;3725:21;;;3795:13;;3698:18;;;3817:22;;;3644:4;;3673:2;3896:15;;;;3870:2;3855:18;;;3644:4;3939:195;3953:6;3950:1;3947:13;3939:195;;;4018:13;;-1:-1:-1;;;;;4014:39:6;4002:52;;4109:15;;;;4074:12;;;;4050:1;3968:9;3939:195;;;-1:-1:-1;4151:3:6;;3502:658;-1:-1:-1;;;;;;3502:658:6:o;4769:597::-;4881:4;4910:2;4939;4928:9;4921:21;4971:6;4965:13;5014:6;5009:2;4998:9;4994:18;4987:34;5039:1;5049:140;5063:6;5060:1;5057:13;5049:140;;;5158:14;;;5154:23;;5148:30;5124:17;;;5143:2;5120:26;5113:66;5078:10;;5049:140;;;5207:6;5204:1;5201:13;5198:91;;;5277:1;5272:2;5263:6;5252:9;5248:22;5244:31;5237:42;5198:91;-1:-1:-1;5350:2:6;5329:15;-1:-1:-1;;5325:29:6;5310:45;;;;5357:2;5306:54;;4769:597;-1:-1:-1;;;4769:597:6:o;12562:128::-;12602:3;12633:1;12629:6;12626:1;12623:13;12620:39;;;12639:18;;:::i;:::-;-1:-1:-1;12675:9:6;;12562:128::o;12695:217::-;12735:1;12761;12751:132;;12805:10;12800:3;12796:20;12793:1;12786:31;12840:4;12837:1;12830:15;12868:4;12865:1;12858:15;12751:132;-1:-1:-1;12897:9:6;;12695:217::o;12917:168::-;12957:7;13023:1;13019;13015:6;13011:14;13008:1;13005:21;13000:1;12993:9;12986:17;12982:45;12979:71;;;13030:18;;:::i;:::-;-1:-1:-1;13070:9:6;;12917:168::o;13090:125::-;13130:4;13158:1;13155;13152:8;13149:34;;;13163:18;;:::i;:::-;-1:-1:-1;13200:9:6;;13090:125::o;13220:380::-;13299:1;13295:12;;;;13342;;;13363:61;;13417:4;13409:6;13405:17;13395:27;;13363:61;13470:2;13462:6;13459:14;13439:18;13436:38;13433:161;;;13516:10;13511:3;13507:20;13504:1;13497:31;13551:4;13548:1;13541:15;13579:4;13576:1;13569:15;13433:161;;13220:380;;;:::o;13605:135::-;13644:3;-1:-1:-1;;13665:17:6;;13662:43;;;13685:18;;:::i;:::-;-1:-1:-1;13732:1:6;13721:13;;13605:135::o;13745:127::-;13806:10;13801:3;13797:20;13794:1;13787:31;13837:4;13834:1;13827:15;13861:4;13858:1;13851:15;13877:127;13938:10;13933:3;13929:20;13926:1;13919:31;13969:4;13966:1;13959:15;13993:4;13990:1;13983:15;14009:127;14070:10;14065:3;14061:20;14058:1;14051:31;14101:4;14098:1;14091:15;14125:4;14122:1;14115:15
Swarm Source
ipfs://a8fd28f8b59b88c001f772e7fbe116653d3da9f54ff23f362f1eba3e1fee5b66
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.10
Net Worth in ETH
0.000049
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,035.47 | 0.00004931 | $0.100379 |
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.