Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 82 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 18901880 | 788 days ago | IN | 0 ETH | 0.00070682 | ||||
| Transfer | 18174438 | 890 days ago | IN | 0 ETH | 0.00078261 | ||||
| Transfer | 18174419 | 890 days ago | IN | 0 ETH | 0.00259105 | ||||
| Approve | 18172894 | 890 days ago | IN | 0 ETH | 0.00066679 | ||||
| Transfer | 18172863 | 890 days ago | IN | 0 ETH | 0.00064033 | ||||
| Approve | 18168704 | 891 days ago | IN | 0 ETH | 0.00029898 | ||||
| Approve | 18167594 | 891 days ago | IN | 0 ETH | 0.0003567 | ||||
| Approve | 18167479 | 891 days ago | IN | 0 ETH | 0.00026577 | ||||
| Approve | 18167474 | 891 days ago | IN | 0 ETH | 0.00022222 | ||||
| Approve | 18167470 | 891 days ago | IN | 0 ETH | 0.00038993 | ||||
| Transfer | 18167167 | 891 days ago | IN | 0 ETH | 0.00047629 | ||||
| Transfer | 18167084 | 891 days ago | IN | 0 ETH | 0.00025811 | ||||
| Transfer | 18167083 | 891 days ago | IN | 0 ETH | 0.00243085 | ||||
| Transfer | 18167068 | 891 days ago | IN | 0 ETH | 0.00066137 | ||||
| Approve | 18154426 | 893 days ago | IN | 0 ETH | 0.00039427 | ||||
| Transfer | 18154420 | 893 days ago | IN | 0 ETH | 0.00244298 | ||||
| Transfer | 18154412 | 893 days ago | IN | 0 ETH | 0.00025498 | ||||
| Transfer | 18154377 | 893 days ago | IN | 0 ETH | 0.0002646 | ||||
| Approve | 18085693 | 903 days ago | IN | 0 ETH | 0.00150445 | ||||
| Approve | 18003177 | 914 days ago | IN | 0 ETH | 0.00061437 | ||||
| Approve | 17921012 | 926 days ago | IN | 0 ETH | 0.00230068 | ||||
| Approve | 17917865 | 926 days ago | IN | 0 ETH | 0.00078323 | ||||
| Approve | 17917685 | 926 days ago | IN | 0 ETH | 0.00068996 | ||||
| Approve | 17916304 | 926 days ago | IN | 0 ETH | 0.00146766 | ||||
| Approve | 17915817 | 926 days ago | IN | 0 ETH | 0.00106338 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 23715395 | 115 days ago | 0.00000598 ETH | ||||
| Transfer | 23715395 | 115 days ago | 0.00007265 ETH | ||||
| Transfer | 23715395 | 115 days ago | 0.00000199 ETH | ||||
| Add Liquidity ET... | 23715395 | 115 days ago | 0.00000319 ETH | ||||
| Transfer | 23715395 | 115 days ago | 0.00007983 ETH | ||||
| Transfer | 18901882 | 788 days ago | 0.00008718 ETH | ||||
| Transfer | 18901882 | 788 days ago | 0.00104306 ETH | ||||
| Transfer | 18901882 | 788 days ago | 0.00002987 ETH | ||||
| Add Liquidity ET... | 18901882 | 788 days ago | 0.00004584 ETH | ||||
| Transfer | 18901882 | 788 days ago | 0.00114621 ETH | ||||
| Transfer | 18174419 | 890 days ago | 0.00004603 ETH | ||||
| Transfer | 18174419 | 890 days ago | 0.0005617 ETH | ||||
| Transfer | 18174419 | 890 days ago | 0.00001517 ETH | ||||
| Add Liquidity ET... | 18174419 | 890 days ago | 0.00002469 ETH | ||||
| Transfer | 18174419 | 890 days ago | 0.00061725 ETH | ||||
| Transfer | 18174152 | 890 days ago | 0.00016979 ETH | ||||
| Transfer | 18174152 | 890 days ago | 0.00206497 ETH | ||||
| Transfer | 18174152 | 890 days ago | 0.00005633 ETH | ||||
| Add Liquidity ET... | 18174152 | 890 days ago | 0.00009076 ETH | ||||
| Transfer | 18174152 | 890 days ago | 0.00226919 ETH | ||||
| Transfer | 18167083 | 891 days ago | 0.00042604 ETH | ||||
| Transfer | 18167083 | 891 days ago | 0.00519859 ETH | ||||
| Transfer | 18167083 | 891 days ago | 0.0001404 ETH | ||||
| Add Liquidity ET... | 18167083 | 891 days ago | 0.0002285 ETH | ||||
| Transfer | 18167083 | 891 days ago | 0.00571274 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Olympus
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-08-14
*/
// SPDX-License-Identifier: MIT
/* ( ` ) ( /( (
)\))( ( /( )\()) )\ ( ) (
((_)()\ )\()) ((_)\ ((_))\ ) ( ` ) ( ))\ (
(_()((_)(_))/ ((_) _ (()/( )\ ' /(/( )\ /((_) )\
| \/ || |_ / _ \ | | )(_)) _((_)) ((_)_\ ((_)(_))( ((_)
| |\/| || _| _| (_) || || || || ' \()| '_ \)/ _ \| || |(_-<
|_| |_| \__|(_)\___/ |_| \_, ||_|_|_| | .__/ \___/ \_,_|/__/
|__/ |_|
*/
pragma solidity ^0.8.18;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this;
return msg.data;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
uint256 size;
assembly { size := extcodesize(account) }
return size > 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 functionCall(target, data, "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");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{ value: value }(data);
return _verifyCallResult(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) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return _verifyCallResult(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) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
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 Olympus is Context, IERC20 {
using SafeMath for uint256;
using Address for address;
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
function owner() public view virtual returns (address) {
return _owner;
}
modifier whenNotPaused() {
require(!paused, "Pausable: paused");
_;
}
modifier whenPaused() {
require(paused, "Pausable: not paused");
_;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function pause() public {
require(msg.sender == owner(), "Pausable: only owner can pause");
paused = true;
}
function renounceOwnership() public virtual {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
mapping (address => bool) private _isBot;
mapping (address => uint256) private _tOwned;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) public _isExcludedFromFee;
address payable public Wallet_Marketing = payable(0x233d0576Af0b14B84c1F0272E5b90D11c548bD26);
address payable public Wallet_Dev = payable(0x247328330aa2A442Aad1C68A166557a1FC088802);
address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD);
uint256 private constant MAX = ~uint256(0);
uint8 private constant _decimals = 18;
uint256 private _tTotal =10000000000 * 10**_decimals;
string private constant _name = "Olympus";
string private constant _symbol = unicode"OLYMPUS";
uint8 private txCount = 0;
uint8 private swapTrigger = 3;
uint256 public _Tax_On_Buy = 60;
uint256 public _Tax_On_Sell = 60;
uint256 public Percent_Marketing = 90;
uint256 public Percent_Dev = 5;
uint256 public Percent_Burn = 2;
uint256 public Percent_AutoLP = 3;
uint256 public _maxWalletToken = _tTotal * 15 / 100;
uint256 private _previousMaxWalletToken = _maxWalletToken;
uint256 public _maxTxAmount = _tTotal * 15 / 100;
uint256 private _previousMaxTxAmount = _maxTxAmount;
IUniswapV2Router02 public uniswapV2Router;
address public uniswapV2Pair;
bool public inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public paused = false;
event SwapAndLiquifyEnabledUpdated(bool true_or_false);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
modifier lockTheSwap {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor () {
_owner =0x233d0576Af0b14B84c1F0272E5b90D11c548bD26;
emit OwnershipTransferred(address(0), _owner);
_tOwned[owner()] = _tTotal;
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
uniswapV2Router = _uniswapV2Router;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[Wallet_Marketing] = true;
_isExcludedFromFee[Wallet_Burn] = true;
emit Transfer(address(0), owner(), _tTotal);
}
function setAntibot(address account, bool state) external onlyOwner{
require(_isBot[account] != state, 'Value already set');
_isBot[account] = state;
}
function bulkAntiBot(address[] memory accounts, bool state) external onlyOwner{
for(uint256 i = 0; i < accounts.length; i++){
_isBot[accounts[i]] = state;
}
}
function isBot(address account) public view returns(bool){
return _isBot[account];
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function setTaxes(uint256 buyTax, uint256 sellTax) public onlyOwner {
_Tax_On_Buy = buyTax;
_Tax_On_Sell = sellTax;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _tOwned[account];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address theOwner, address theSpender) public view override returns (uint256) {
return _allowances[theOwner][theSpender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
return true;
}
receive() external payable {}
function _getCurrentSupply() private view returns(uint256) {
return (_tTotal);
}
function _approve(address theOwner, address theSpender, uint256 amount) private {
require(theOwner != address(0) && theSpender != address(0), "ERR: zero address");
_allowances[theOwner][theSpender] = amount;
emit Approval(theOwner, theSpender, amount);
}
function _transfer(
address from,
address to,
uint256 amount
) private {
if (to != owner() &&
to != Wallet_Burn &&
to != address(this) &&
to != uniswapV2Pair &&
from != owner()){
uint256 heldTokens = balanceOf(to);
require((heldTokens + amount) <= _maxWalletToken,"Over wallet limit.");}
if (from != owner())
require(amount <= _maxTxAmount, "Over transaction limit.");
require(from != address(0) && to != address(0), "ERR: Using 0 address!");
require(amount > 0, "Token value must be higher than zero.");
require(!_isBot[from] && !_isBot[to], "You are a bot");
if(
txCount >= swapTrigger &&
!inSwapAndLiquify &&
from != uniswapV2Pair &&
swapAndLiquifyEnabled
)
{
uint256 contractTokenBalance = balanceOf(address(this));
if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
txCount = 0;
swapAndLiquify(contractTokenBalance);
}
bool takeFee = true;
bool isBuy;
if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
takeFee = false;
} else {
if(from == uniswapV2Pair){
isBuy = true;
}
txCount++;
}
_tokenTransfer(from, to, amount, takeFee, isBuy);
}
function sendToWallet(address payable wallet, uint256 amount) private {
wallet.transfer(amount);
}
function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
uint256 tokens_to_Burn = contractTokenBalance * Percent_Burn / 100;
_tTotal = _tTotal - tokens_to_Burn;
_tOwned[Wallet_Burn] = _tOwned[Wallet_Burn] + tokens_to_Burn;
_tOwned[address(this)] = _tOwned[address(this)] - tokens_to_Burn;
uint256 tokens_to_M = contractTokenBalance * Percent_Marketing / 100;
uint256 tokens_to_D = contractTokenBalance * Percent_Dev / 100;
uint256 tokens_to_LP_Half = contractTokenBalance * Percent_AutoLP / 200;
uint256 balanceBeforeSwap = address(this).balance;
swapTokensForETH(tokens_to_LP_Half + tokens_to_M + tokens_to_D);
uint256 ETH_Total = address(this).balance - balanceBeforeSwap;
uint256 split_M = Percent_Marketing * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
uint256 ETH_M = ETH_Total * split_M / 100;
uint256 split_D = Percent_Dev * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
uint256 ETH_D = ETH_Total * split_D / 100;
addLiquidity(tokens_to_LP_Half, (ETH_Total - ETH_M - ETH_D));
emit SwapAndLiquify(tokens_to_LP_Half, (ETH_Total - ETH_M - ETH_D), tokens_to_LP_Half);
sendToWallet(Wallet_Marketing, ETH_M);
ETH_Total = address(this).balance;
sendToWallet(Wallet_Dev, ETH_Total);
}
function swapTokensForETH(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.addLiquidityETH{value: ETHAmount}(
address(this),
tokenAmount,
0,
0,
Wallet_Burn,
block.timestamp
);
}
function remove_Random_Tokens(address random_Token_Address, uint256 percent_of_Tokens) public returns(bool _sent){
require(random_Token_Address != address(this), "Can not remove native token");
uint256 totalRandom = IERC20(random_Token_Address).balanceOf(address(this));
uint256 removeRandom = totalRandom*percent_of_Tokens/100;
_sent = IERC20(random_Token_Address).transfer(Wallet_Dev, removeRandom);
}
function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
if(!takeFee){
_tOwned[sender] = _tOwned[sender]-tAmount;
_tOwned[recipient] = _tOwned[recipient]+tAmount;
emit Transfer(sender, recipient, tAmount);
if(recipient == Wallet_Burn)
_tTotal = _tTotal-tAmount;
} else if (isBuy){
uint256 buyFEE = tAmount*_Tax_On_Buy/100;
uint256 tTransferAmount = tAmount-buyFEE;
_tOwned[sender] = _tOwned[sender]-tAmount;
_tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
_tOwned[address(this)] = _tOwned[address(this)]+buyFEE;
emit Transfer(sender, recipient, tTransferAmount);
if(recipient == Wallet_Burn)
_tTotal = _tTotal-tTransferAmount;
} else {
uint256 sellFEE = tAmount*_Tax_On_Sell/100;
uint256 tTransferAmount = tAmount-sellFEE;
_tOwned[sender] = _tOwned[sender]-tAmount;
_tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
_tOwned[address(this)] = _tOwned[address(this)]+sellFEE;
emit Transfer(sender, recipient, tTransferAmount);
if(recipient == Wallet_Burn)
_tTotal = _tTotal-tTransferAmount;
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Percent_AutoLP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Burn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Burn","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Dev","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAntiBot","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":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052600580546001600160a01b031990811673233d0576af0b14b84c1f0272e5b90d11c548bd26179091556006805490911673247328330aa2a442aad1c68a166557a1fc0888021790556200005a6012600a62000550565b6200006b906402540be40062000568565b60078190556008805461ffff1916610300179055603c6009819055600a55605a600b556005600c556002600d556003600e55606490620000ad90600f62000568565b620000b9919062000582565b600f55600f546010556064600754600f620000d5919062000568565b620000e1919062000582565b60118190556012556014805461ffff60a81b1916600160a81b1790553480156200010a57600080fd5b50600080546001600160a01b03191673233d0576af0b14b84c1f0272e5b90d11c548bd2690811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360075460026000620001786000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021a9190620005a5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000268573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028e9190620005a5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003029190620005a5565b601480546001600160a01b03199081166001600160a01b0393841617909155601380549091169183169190911790556001600460006200034a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260049093528183208054851660019081179091556005549091168352908220805484168217905561dead9091527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd8054909216179055620003e46000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040516200042c91815260200190565b60405180910390a350620005d0565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004925781600019048211156200047657620004766200043b565b808516156200048457918102915b93841c939080029062000456565b509250929050565b600082620004ab575060016200054a565b81620004ba575060006200054a565b8160018114620004d35760028114620004de57620004fe565b60019150506200054a565b60ff841115620004f257620004f26200043b565b50506001821b6200054a565b5060208310610133831016604e8410600b841016171562000523575081810a6200054a565b6200052f838362000451565b80600019048211156200054657620005466200043b565b0290505b92915050565b60006200056160ff8416836200049a565b9392505050565b80820281158282048414176200054a576200054a6200043b565b600082620005a057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005b857600080fd5b81516001600160a01b03811681146200056157600080fd5b611d9480620005e06000396000f3fe6080604052600436106102135760003560e01c8063768dc71011610118578063b1cb1582116100a0578063c647b20e1161006f578063c647b20e14610630578063c6618d6014610650578063dafd18e914610666578063dd62ed3e14610686578063e1165545146106cc57600080fd5b8063b1cb1582146105ba578063b31470a4146105d0578063b43665e2146105f0578063bbb9f61f1461061057600080fd5b80638456cb59116100e75780638456cb59146105175780638da5cb5b1461052c57806395d89b411461054a578063a457c2d71461057a578063a9059cbb1461059a57600080fd5b8063768dc710146104a557806378109e54146104d55780637d1db4a5146104eb578063805c0e0f1461050157600080fd5b80633bbac5791161019b5780635c975abb1161016a5780635c975abb1461040b578063603176251461042c57806361c9a0dc1461044257806370a0823114610458578063715018a61461048e57600080fd5b80633bbac5791461037b5780633f70a495146103b457806349bd5a5e146103ca5780634a74bb02146103ea57600080fd5b806321dbd9eb116101e257806321dbd9eb146102e8578063220f6696146102fe57806323b872dd1461031f578063313ce5671461033f578063395093511461035b57600080fd5b806306fdde031461021f578063095ea7b3146102615780631694505e1461029157806318160ddd146102c957600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506040805180820190915260078152664f6c796d70757360c81b60208201525b6040516102589190611898565b60405180910390f35b34801561026d57600080fd5b5061028161027c36600461190e565b6106ec565b6040519015158152602001610258565b34801561029d57600080fd5b506013546102b1906001600160a01b031681565b6040516001600160a01b039091168152602001610258565b3480156102d557600080fd5b506007545b604051908152602001610258565b3480156102f457600080fd5b506102da600d5481565b34801561030a57600080fd5b5060145461028190600160a01b900460ff1681565b34801561032b57600080fd5b5061028161033a36600461193a565b610703565b34801561034b57600080fd5b5060405160128152602001610258565b34801561036757600080fd5b5061028161037636600461190e565b61076c565b34801561038757600080fd5b5061028161039636600461197b565b6001600160a01b031660009081526001602052604090205460ff1690565b3480156103c057600080fd5b506102da60095481565b3480156103d657600080fd5b506014546102b1906001600160a01b031681565b3480156103f657600080fd5b5060145461028190600160a81b900460ff1681565b34801561041757600080fd5b5060145461028190600160b01b900460ff1681565b34801561043857600080fd5b506102da600b5481565b34801561044e57600080fd5b506102da600e5481565b34801561046457600080fd5b506102da61047336600461197b565b6001600160a01b031660009081526002602052604090205490565b34801561049a57600080fd5b506104a36107a2565b005b3480156104b157600080fd5b506102816104c036600461197b565b60046020526000908152604090205460ff1681565b3480156104e157600080fd5b506102da600f5481565b3480156104f757600080fd5b506102da60115481565b34801561050d57600080fd5b506102b161dead81565b34801561052357600080fd5b506104a36107ec565b34801561053857600080fd5b506000546001600160a01b03166102b1565b34801561055657600080fd5b506040805180820190915260078152664f4c594d50555360c81b602082015261024b565b34801561058657600080fd5b5061028161059536600461190e565b610860565b3480156105a657600080fd5b506102816105b536600461190e565b6108af565b3480156105c657600080fd5b506102da600a5481565b3480156105dc57600080fd5b506104a36105eb3660046119c7565b6108bc565b3480156105fc57600080fd5b506005546102b1906001600160a01b031681565b34801561061c57600080fd5b506006546102b1906001600160a01b031681565b34801561063c57600080fd5b506104a361064b366004611a9e565b610952565b34801561065c57600080fd5b506102da600c5481565b34801561067257600080fd5b5061028161068136600461190e565b610987565b34801561069257600080fd5b506102da6106a1366004611ac0565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106d857600080fd5b506104a36106e7366004611af9565b610ae8565b60006106f9338484610ba1565b5060015b92915050565b6000610710848484610c62565b610762843361075d85604051806060016040528060288152602001611d12602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611025565b610ba1565b5060019392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916106f991859061075d9086611051565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461084b5760405162461bcd60e51b815260206004820152601e60248201527f5061757361626c653a206f6e6c79206f776e65722063616e207061757365000060448201526064015b60405180910390fd5b6014805460ff60b01b1916600160b01b179055565b60006106f9338461075d85604051806060016040528060258152602001611d3a602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611025565b60006106f9338484610c62565b6000546001600160a01b031633146108e65760405162461bcd60e51b815260040161084290611b27565b60005b825181101561094d57816001600085848151811061090957610909611b5c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061094581611b88565b9150506108e9565b505050565b6000546001600160a01b0316331461097c5760405162461bcd60e51b815260040161084290611b27565b600991909155600a55565b6000306001600160a01b038416036109e15760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e00000000006044820152606401610842565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611ba1565b905060006064610a5c8584611bba565b610a669190611bd1565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925086169063a9059cbb906044016020604051808303816000875af1158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190611bf3565b95945050505050565b6000546001600160a01b03163314610b125760405162461bcd60e51b815260040161084290611b27565b6001600160a01b03821660009081526001602052604090205481151560ff909116151503610b765760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610842565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6001600160a01b03831615801590610bc157506001600160a01b03821615155b610c015760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610842565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03838116911614801590610c8b57506001600160a01b03821661dead14155b8015610ca057506001600160a01b0382163014155b8015610cba57506014546001600160a01b03838116911614155b8015610cd457506000546001600160a01b03848116911614155b15610d44576001600160a01b038216600090815260026020526040902054600f54610cff8383611c10565b1115610d425760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b6044820152606401610842565b505b6000546001600160a01b03848116911614610dab57601154811115610dab5760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e0000000000000000006044820152606401610842565b6001600160a01b03831615801590610dcb57506001600160a01b03821615155b610e0f5760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b6044820152606401610842565b60008111610e6d5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610842565b6001600160a01b03831660009081526001602052604090205460ff16158015610eaf57506001600160a01b03821660009081526001602052604090205460ff16155b610eeb5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610842565b60085460ff61010082048116911610801590610f115750601454600160a01b900460ff16155b8015610f2b57506014546001600160a01b03848116911614155b8015610f405750601454600160a81b900460ff165b15610f795730600090815260026020526040902054601154811115610f6457506011545b6008805460ff19169055610f7781611064565b505b6001600160a01b0383166000908152600460205260408120546001919060ff1680610fbc57506001600160a01b03841660009081526004602052604090205460ff165b15610fca5760009150611011565b6014546001600160a01b0390811690861603610fe4575060015b6008805460ff16906000610ff783611c23565b91906101000a81548160ff021916908360ff160217905550505b61101e8585858585611316565b5050505050565b600081848411156110495760405162461bcd60e51b81526004016108429190611898565b505050900390565b600061105d8284611c10565b9392505050565b6014805460ff60a01b1916600160a01b179055600d5460009060649061108a9084611bba565b6110949190611bd1565b9050806007546110a49190611c42565b60075561dead60005260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc546110df908290611c10565b60026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc55306000908152604090205461111c908290611c42565b30600090815260026020526040812091909155600b5460649061113f9085611bba565b6111499190611bd1565b905060006064600c548561115d9190611bba565b6111679190611bd1565b9050600060c8600e548661117b9190611bba565b6111859190611bd1565b9050476111a5836111968685611c10565b6111a09190611c10565b61165d565b60006111b18247611c42565b90506000600c54600b54600e546111c89190611c10565b6111d29190611c10565b600b546111e0906064611bba565b6111ea9190611bd1565b9050600060646111fa8385611bba565b6112049190611bd1565b90506000600c54600b54600e5461121b9190611c10565b6112259190611c10565b600c54611233906064611bba565b61123d9190611bd1565b90506000606461124d8387611bba565b6112579190611bd1565b905061127787826112688689611c42565b6112729190611c42565b6117b7565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187826112a48689611c42565b6112ae9190611c42565b604080519283526020830191909152810189905260600160405180910390a16005546112e3906001600160a01b031684611862565b6006544795506112fc906001600160a01b031686611862565b50506014805460ff60a01b19169055505050505050505050565b816113f5576001600160a01b03851660009081526002602052604090205461133f908490611c42565b6001600160a01b03808716600090815260026020526040808220939093559086168152205461136f908490611c10565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113c39087815260200190565b60405180910390a361deac196001600160a01b038516016113f057826007546113ec9190611c42565b6007555b61101e565b801561152b57600060646009548561140d9190611bba565b6114179190611bd1565b905060006114258286611c42565b6001600160a01b03881660009081526002602052604090205490915061144c908690611c42565b6001600160a01b03808916600090815260026020526040808220939093559088168152205461147c908290611c10565b6001600160a01b0387166000908152600260205260408082209290925530815220546114a9908390611c10565b3060009081526002602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b0387160161152457806007546115209190611c42565b6007555b505061101e565b60006064600a548561153d9190611bba565b6115479190611bd1565b905060006115558286611c42565b6001600160a01b03881660009081526002602052604090205490915061157c908690611c42565b6001600160a01b0380891660009081526002602052604080822093909355908816815220546115ac908290611c10565b6001600160a01b0387166000908152600260205260408082209290925530815220546115d9908390611c10565b3060009081526002602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b0387160161165457806007546116509190611c42565b6007555b50505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061169257611692611b5c565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170f9190611c55565b8160018151811061172257611722611b5c565b6001600160a01b0392831660209182029290920101526013546117489130911684610ba1565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611781908590600090869030904290600401611c72565b600060405180830381600087803b15801561179b57600080fd5b505af11580156117af573d6000803e3d6000fd5b505050505050565b6013546117cf9030906001600160a01b031684610ba1565b60135460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561183d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061101e9190611ce3565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561094d573d6000803e3d6000fd5b600060208083528351808285015260005b818110156118c5578581018301518582016040015282016118a9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146118fb57600080fd5b50565b8035611909816118e6565b919050565b6000806040838503121561192157600080fd5b823561192c816118e6565b946020939093013593505050565b60008060006060848603121561194f57600080fd5b833561195a816118e6565b9250602084013561196a816118e6565b929592945050506040919091013590565b60006020828403121561198d57600080fd5b813561105d816118e6565b634e487b7160e01b600052604160045260246000fd5b80151581146118fb57600080fd5b8035611909816119ae565b600080604083850312156119da57600080fd5b823567ffffffffffffffff808211156119f257600080fd5b818501915085601f830112611a0657600080fd5b8135602082821115611a1a57611a1a611998565b8160051b604051601f19603f83011681018181108682111715611a3f57611a3f611998565b604052928352818301935084810182019289841115611a5d57600080fd5b948201945b83861015611a8257611a73866118fe565b85529482019493820193611a62565b9650611a9190508782016119bc565b9450505050509250929050565b60008060408385031215611ab157600080fd5b50508035926020909101359150565b60008060408385031215611ad357600080fd5b8235611ade816118e6565b91506020830135611aee816118e6565b809150509250929050565b60008060408385031215611b0c57600080fd5b8235611b17816118e6565b91506020830135611aee816119ae565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b9a57611b9a611b72565b5060010190565b600060208284031215611bb357600080fd5b5051919050565b80820281158282048414176106fd576106fd611b72565b600082611bee57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611c0557600080fd5b815161105d816119ae565b808201808211156106fd576106fd611b72565b600060ff821660ff8103611c3957611c39611b72565b60010192915050565b818103818111156106fd576106fd611b72565b600060208284031215611c6757600080fd5b815161105d816118e6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cc25784516001600160a01b031683529383019391830191600101611c9d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611cf857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f746d5b8a41a46a18a7ead3b0e410a20eba2d1abb1f541c82c3228c5cb6e8f9c64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106102135760003560e01c8063768dc71011610118578063b1cb1582116100a0578063c647b20e1161006f578063c647b20e14610630578063c6618d6014610650578063dafd18e914610666578063dd62ed3e14610686578063e1165545146106cc57600080fd5b8063b1cb1582146105ba578063b31470a4146105d0578063b43665e2146105f0578063bbb9f61f1461061057600080fd5b80638456cb59116100e75780638456cb59146105175780638da5cb5b1461052c57806395d89b411461054a578063a457c2d71461057a578063a9059cbb1461059a57600080fd5b8063768dc710146104a557806378109e54146104d55780637d1db4a5146104eb578063805c0e0f1461050157600080fd5b80633bbac5791161019b5780635c975abb1161016a5780635c975abb1461040b578063603176251461042c57806361c9a0dc1461044257806370a0823114610458578063715018a61461048e57600080fd5b80633bbac5791461037b5780633f70a495146103b457806349bd5a5e146103ca5780634a74bb02146103ea57600080fd5b806321dbd9eb116101e257806321dbd9eb146102e8578063220f6696146102fe57806323b872dd1461031f578063313ce5671461033f578063395093511461035b57600080fd5b806306fdde031461021f578063095ea7b3146102615780631694505e1461029157806318160ddd146102c957600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506040805180820190915260078152664f6c796d70757360c81b60208201525b6040516102589190611898565b60405180910390f35b34801561026d57600080fd5b5061028161027c36600461190e565b6106ec565b6040519015158152602001610258565b34801561029d57600080fd5b506013546102b1906001600160a01b031681565b6040516001600160a01b039091168152602001610258565b3480156102d557600080fd5b506007545b604051908152602001610258565b3480156102f457600080fd5b506102da600d5481565b34801561030a57600080fd5b5060145461028190600160a01b900460ff1681565b34801561032b57600080fd5b5061028161033a36600461193a565b610703565b34801561034b57600080fd5b5060405160128152602001610258565b34801561036757600080fd5b5061028161037636600461190e565b61076c565b34801561038757600080fd5b5061028161039636600461197b565b6001600160a01b031660009081526001602052604090205460ff1690565b3480156103c057600080fd5b506102da60095481565b3480156103d657600080fd5b506014546102b1906001600160a01b031681565b3480156103f657600080fd5b5060145461028190600160a81b900460ff1681565b34801561041757600080fd5b5060145461028190600160b01b900460ff1681565b34801561043857600080fd5b506102da600b5481565b34801561044e57600080fd5b506102da600e5481565b34801561046457600080fd5b506102da61047336600461197b565b6001600160a01b031660009081526002602052604090205490565b34801561049a57600080fd5b506104a36107a2565b005b3480156104b157600080fd5b506102816104c036600461197b565b60046020526000908152604090205460ff1681565b3480156104e157600080fd5b506102da600f5481565b3480156104f757600080fd5b506102da60115481565b34801561050d57600080fd5b506102b161dead81565b34801561052357600080fd5b506104a36107ec565b34801561053857600080fd5b506000546001600160a01b03166102b1565b34801561055657600080fd5b506040805180820190915260078152664f4c594d50555360c81b602082015261024b565b34801561058657600080fd5b5061028161059536600461190e565b610860565b3480156105a657600080fd5b506102816105b536600461190e565b6108af565b3480156105c657600080fd5b506102da600a5481565b3480156105dc57600080fd5b506104a36105eb3660046119c7565b6108bc565b3480156105fc57600080fd5b506005546102b1906001600160a01b031681565b34801561061c57600080fd5b506006546102b1906001600160a01b031681565b34801561063c57600080fd5b506104a361064b366004611a9e565b610952565b34801561065c57600080fd5b506102da600c5481565b34801561067257600080fd5b5061028161068136600461190e565b610987565b34801561069257600080fd5b506102da6106a1366004611ac0565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106d857600080fd5b506104a36106e7366004611af9565b610ae8565b60006106f9338484610ba1565b5060015b92915050565b6000610710848484610c62565b610762843361075d85604051806060016040528060288152602001611d12602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611025565b610ba1565b5060019392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916106f991859061075d9086611051565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461084b5760405162461bcd60e51b815260206004820152601e60248201527f5061757361626c653a206f6e6c79206f776e65722063616e207061757365000060448201526064015b60405180910390fd5b6014805460ff60b01b1916600160b01b179055565b60006106f9338461075d85604051806060016040528060258152602001611d3a602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611025565b60006106f9338484610c62565b6000546001600160a01b031633146108e65760405162461bcd60e51b815260040161084290611b27565b60005b825181101561094d57816001600085848151811061090957610909611b5c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061094581611b88565b9150506108e9565b505050565b6000546001600160a01b0316331461097c5760405162461bcd60e51b815260040161084290611b27565b600991909155600a55565b6000306001600160a01b038416036109e15760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e00000000006044820152606401610842565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611ba1565b905060006064610a5c8584611bba565b610a669190611bd1565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925086169063a9059cbb906044016020604051808303816000875af1158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190611bf3565b95945050505050565b6000546001600160a01b03163314610b125760405162461bcd60e51b815260040161084290611b27565b6001600160a01b03821660009081526001602052604090205481151560ff909116151503610b765760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610842565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6001600160a01b03831615801590610bc157506001600160a01b03821615155b610c015760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610842565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03838116911614801590610c8b57506001600160a01b03821661dead14155b8015610ca057506001600160a01b0382163014155b8015610cba57506014546001600160a01b03838116911614155b8015610cd457506000546001600160a01b03848116911614155b15610d44576001600160a01b038216600090815260026020526040902054600f54610cff8383611c10565b1115610d425760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b6044820152606401610842565b505b6000546001600160a01b03848116911614610dab57601154811115610dab5760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e0000000000000000006044820152606401610842565b6001600160a01b03831615801590610dcb57506001600160a01b03821615155b610e0f5760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b6044820152606401610842565b60008111610e6d5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610842565b6001600160a01b03831660009081526001602052604090205460ff16158015610eaf57506001600160a01b03821660009081526001602052604090205460ff16155b610eeb5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610842565b60085460ff61010082048116911610801590610f115750601454600160a01b900460ff16155b8015610f2b57506014546001600160a01b03848116911614155b8015610f405750601454600160a81b900460ff165b15610f795730600090815260026020526040902054601154811115610f6457506011545b6008805460ff19169055610f7781611064565b505b6001600160a01b0383166000908152600460205260408120546001919060ff1680610fbc57506001600160a01b03841660009081526004602052604090205460ff165b15610fca5760009150611011565b6014546001600160a01b0390811690861603610fe4575060015b6008805460ff16906000610ff783611c23565b91906101000a81548160ff021916908360ff160217905550505b61101e8585858585611316565b5050505050565b600081848411156110495760405162461bcd60e51b81526004016108429190611898565b505050900390565b600061105d8284611c10565b9392505050565b6014805460ff60a01b1916600160a01b179055600d5460009060649061108a9084611bba565b6110949190611bd1565b9050806007546110a49190611c42565b60075561dead60005260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc546110df908290611c10565b60026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc55306000908152604090205461111c908290611c42565b30600090815260026020526040812091909155600b5460649061113f9085611bba565b6111499190611bd1565b905060006064600c548561115d9190611bba565b6111679190611bd1565b9050600060c8600e548661117b9190611bba565b6111859190611bd1565b9050476111a5836111968685611c10565b6111a09190611c10565b61165d565b60006111b18247611c42565b90506000600c54600b54600e546111c89190611c10565b6111d29190611c10565b600b546111e0906064611bba565b6111ea9190611bd1565b9050600060646111fa8385611bba565b6112049190611bd1565b90506000600c54600b54600e5461121b9190611c10565b6112259190611c10565b600c54611233906064611bba565b61123d9190611bd1565b90506000606461124d8387611bba565b6112579190611bd1565b905061127787826112688689611c42565b6112729190611c42565b6117b7565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187826112a48689611c42565b6112ae9190611c42565b604080519283526020830191909152810189905260600160405180910390a16005546112e3906001600160a01b031684611862565b6006544795506112fc906001600160a01b031686611862565b50506014805460ff60a01b19169055505050505050505050565b816113f5576001600160a01b03851660009081526002602052604090205461133f908490611c42565b6001600160a01b03808716600090815260026020526040808220939093559086168152205461136f908490611c10565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113c39087815260200190565b60405180910390a361deac196001600160a01b038516016113f057826007546113ec9190611c42565b6007555b61101e565b801561152b57600060646009548561140d9190611bba565b6114179190611bd1565b905060006114258286611c42565b6001600160a01b03881660009081526002602052604090205490915061144c908690611c42565b6001600160a01b03808916600090815260026020526040808220939093559088168152205461147c908290611c10565b6001600160a01b0387166000908152600260205260408082209290925530815220546114a9908390611c10565b3060009081526002602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b0387160161152457806007546115209190611c42565b6007555b505061101e565b60006064600a548561153d9190611bba565b6115479190611bd1565b905060006115558286611c42565b6001600160a01b03881660009081526002602052604090205490915061157c908690611c42565b6001600160a01b0380891660009081526002602052604080822093909355908816815220546115ac908290611c10565b6001600160a01b0387166000908152600260205260408082209290925530815220546115d9908390611c10565b3060009081526002602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b0387160161165457806007546116509190611c42565b6007555b50505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061169257611692611b5c565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170f9190611c55565b8160018151811061172257611722611b5c565b6001600160a01b0392831660209182029290920101526013546117489130911684610ba1565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611781908590600090869030904290600401611c72565b600060405180830381600087803b15801561179b57600080fd5b505af11580156117af573d6000803e3d6000fd5b505050505050565b6013546117cf9030906001600160a01b031684610ba1565b60135460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561183d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061101e9190611ce3565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561094d573d6000803e3d6000fd5b600060208083528351808285015260005b818110156118c5578581018301518582016040015282016118a9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146118fb57600080fd5b50565b8035611909816118e6565b919050565b6000806040838503121561192157600080fd5b823561192c816118e6565b946020939093013593505050565b60008060006060848603121561194f57600080fd5b833561195a816118e6565b9250602084013561196a816118e6565b929592945050506040919091013590565b60006020828403121561198d57600080fd5b813561105d816118e6565b634e487b7160e01b600052604160045260246000fd5b80151581146118fb57600080fd5b8035611909816119ae565b600080604083850312156119da57600080fd5b823567ffffffffffffffff808211156119f257600080fd5b818501915085601f830112611a0657600080fd5b8135602082821115611a1a57611a1a611998565b8160051b604051601f19603f83011681018181108682111715611a3f57611a3f611998565b604052928352818301935084810182019289841115611a5d57600080fd5b948201945b83861015611a8257611a73866118fe565b85529482019493820193611a62565b9650611a9190508782016119bc565b9450505050509250929050565b60008060408385031215611ab157600080fd5b50508035926020909101359150565b60008060408385031215611ad357600080fd5b8235611ade816118e6565b91506020830135611aee816118e6565b809150509250929050565b60008060408385031215611b0c57600080fd5b8235611b17816118e6565b91506020830135611aee816119ae565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b9a57611b9a611b72565b5060010190565b600060208284031215611bb357600080fd5b5051919050565b80820281158282048414176106fd576106fd611b72565b600082611bee57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611c0557600080fd5b815161105d816119ae565b808201808211156106fd576106fd611b72565b600060ff821660ff8103611c3957611c39611b72565b60010192915050565b818103818111156106fd576106fd611b72565b600060208284031215611c6757600080fd5b815161105d816118e6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cc25784516001600160a01b031683529383019391830191600101611c9d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611cf857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f746d5b8a41a46a18a7ead3b0e410a20eba2d1abb1f541c82c3228c5cb6e8f9c64736f6c63430008120033
Deployed Bytecode Sourcemap
13462:12239:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17462:83;;;;;;;;;;-1:-1:-1;17532:5:0;;;;;;;;;;;;-1:-1:-1;;;17532:5:0;;;;17462:83;;;;;;;:::i;:::-;;;;;;;;18437:161;;;;;;;;;;-1:-1:-1;18437:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;18437:161:0;1162:187:1;15721:41:0;;;;;;;;;;-1:-1:-1;15721:41:0;;;;-1:-1:-1;;;;;15721:41:0;;;;;;-1:-1:-1;;;;;1545:32:1;;;1527:51;;1515:2;1500:18;15721:41:0;1354:230:1;17879:95:0;;;;;;;;;;-1:-1:-1;17959:7:0;;17879:95;;;1735:25:1;;;1723:2;1708:18;17879:95:0;1589:177:1;15406:31:0;;;;;;;;;;;;;;;;15804:28;;;;;;;;;;-1:-1:-1;15804:28:0;;;;-1:-1:-1;;;15804:28:0;;;;;;18604:313;;;;;;;;;;-1:-1:-1;18604:313:0;;;;;:::i;:::-;;:::i;17790:83::-;;;;;;;;;;-1:-1:-1;17790:83:0;;15004:2;2374:36:1;;2362:2;2347:18;17790:83:0;2232:184:1;18923:218:0;;;;;;;;;;-1:-1:-1;18923:218:0;;;;;:::i;:::-;;:::i;17358:98::-;;;;;;;;;;-1:-1:-1;17358:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;17433:15:0;17410:4;17433:15;;;:6;:15;;;;;;;;;17358:98;15248:31;;;;;;;;;;;;;;;;15769:28;;;;;;;;;;-1:-1:-1;15769:28:0;;;;-1:-1:-1;;;;;15769:28:0;;;15839:40;;;;;;;;;;-1:-1:-1;15839:40:0;;;;-1:-1:-1;;;15839:40:0;;;;;;15886:26;;;;;;;;;;-1:-1:-1;15886:26:0;;;;-1:-1:-1;;;15886:26:0;;;;;;15325:37;;;;;;;;;;;;;;;;15444:33;;;;;;;;;;;;;;;;17980:117;;;;;;;;;;-1:-1:-1;17980:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;18073:16:0;18046:7;18073:16;;;:7;:16;;;;;;;17980:117;14243:138;;;;;;;;;;;;;:::i;:::-;;14561:51;;;;;;;;;;-1:-1:-1;14561:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15485;;;;;;;;;;;;;;;;15607:48;;;;;;;;;;;;;;;;14815:97;;;;;;;;;;;;14869:42;14815:97;;14106:131;;;;;;;;;;;;;:::i;13690:87::-;;;;;;;;;;-1:-1:-1;13736:7:0;13763:6;-1:-1:-1;;;;;13763:6:0;13690:87;;17551;;;;;;;;;;-1:-1:-1;17623:7:0;;;;;;;;;;;;-1:-1:-1;;;17623:7:0;;;;17551:87;;19147:269;;;;;;;;;;-1:-1:-1;19147:269:0;;;;;:::i;:::-;;:::i;18103:167::-;;;;;;;;;;-1:-1:-1;18103:167:0;;;;;:::i;:::-;;:::i;15286:32::-;;;;;;;;;;;;;;;;17150:199;;;;;;;;;;-1:-1:-1;17150:199:0;;;;;:::i;:::-;;:::i;14620:93::-;;;;;;;;;;-1:-1:-1;14620:93:0;;;;-1:-1:-1;;;;;14620:93:0;;;14721:87;;;;;;;;;;-1:-1:-1;14721:87:0;;;;-1:-1:-1;;;;;14721:87:0;;;17644:140;;;;;;;;;;-1:-1:-1;17644:140:0;;;;;:::i;:::-;;:::i;15369:30::-;;;;;;;;;;;;;;;;23856:444;;;;;;;;;;-1:-1:-1;23856:444:0;;;;;:::i;:::-;;:::i;18276:155::-;;;;;;;;;;-1:-1:-1;18276:155:0;;;;;:::i;:::-;-1:-1:-1;;;;;18390:21:0;;;18363:7;18390:21;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;18276:155;16964:174;;;;;;;;;;-1:-1:-1;16964:174:0;;;;;:::i;:::-;;:::i;18437:161::-;18512:4;18529:39;2249:10;18552:7;18561:6;18529:8;:39::i;:::-;-1:-1:-1;18586:4:0;18437:161;;;;;:::o;18604:313::-;18702:4;18719:36;18729:6;18737:9;18748:6;18719:9;:36::i;:::-;18766:121;18775:6;2249:10;18797:89;18835:6;18797:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18797:19:0;;;;;;:11;:19;;;;;;;;2249:10;18797:33;;;;;;;;;;:37;:89::i;:::-;18766:8;:121::i;:::-;-1:-1:-1;18905:4:0;18604:313;;;;;:::o;18923:218::-;2249:10;19011:4;19060:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19060:34:0;;;;;;;;;;19011:4;;19028:83;;19051:7;;19060:50;;19099:10;19060:38;:50::i;14243:138::-;14340:1;14324:6;;14303:40;;-1:-1:-1;;;;;14324:6:0;;;;14303:40;;14340:1;;14303:40;14371:1;14354:19;;-1:-1:-1;;;;;;14354:19:0;;;14243:138::o;14106:131::-;13736:7;13763:6;-1:-1:-1;;;;;13763:6:0;14149:10;:21;14141:64;;;;-1:-1:-1;;;14141:64:0;;5924:2:1;14141:64:0;;;5906:21:1;5963:2;5943:18;;;5936:30;6002:32;5982:18;;;5975:60;6052:18;;14141:64:0;;;;;;;;;14216:6;:13;;-1:-1:-1;;;;14216:13:0;-1:-1:-1;;;14216:13:0;;;14106:131::o;19147:269::-;19240:4;19257:129;2249:10;19280:7;19289:96;19328:15;19289:96;;;;;;;;;;;;;;;;;2249:10;19289:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19289:34:0;;;;;;;;;;;;:38;:96::i;18103:167::-;18181:4;18198:42;2249:10;18222:9;18233:6;18198:9;:42::i;17150:199::-;13736:7;13763:6;-1:-1:-1;;;;;13763:6:0;2249:10;14020:23;14012:68;;;;-1:-1:-1;;;14012:68:0;;;;;;;:::i;:::-;17243:9:::1;17239:99;17262:8;:15;17258:1;:19;17239:99;;;17320:5;17298:6;:19;17305:8;17314:1;17305:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17298:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17298:19:0;:27;;-1:-1:-1;;17298:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17279:3;::::1;::::0;::::1;:::i;:::-;;;;17239:99;;;;17150:199:::0;;:::o;17644:140::-;13736:7;13763:6;-1:-1:-1;;;;;13763:6:0;2249:10;14020:23;14012:68;;;;-1:-1:-1;;;14012:68:0;;;;;;;:::i;:::-;17723:11:::1;:20:::0;;;;17754:12:::1;:22:::0;17644:140::o;23856:444::-;23958:10;24020:4;-1:-1:-1;;;;;23988:37:0;;;23980:77;;;;-1:-1:-1;;;23980:77:0;;7048:2:1;23980:77:0;;;7030:21:1;7087:2;7067:18;;;7060:30;7126:29;7106:18;;;7099:57;7173:18;;23980:77:0;6846:351:1;23980:77:0;24090:53;;-1:-1:-1;;;24090:53:0;;24137:4;24090:53;;;1527:51:1;24068:19:0;;-1:-1:-1;;;;;24090:38:0;;;;;1500:18:1;;24090:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24068:75;-1:-1:-1;24154:20:0;24207:3;24177:29;24189:17;24068:75;24177:29;:::i;:::-;:33;;;;:::i;:::-;24267:10;;24229:63;;-1:-1:-1;;;24229:63:0;;-1:-1:-1;;;;;24267:10:0;;;24229:63;;;7968:51:1;8035:18;;;8028:34;;;24154:56:0;;-1:-1:-1;24229:37:0;;;;;7941:18:1;;24229:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24221:71;23856:444;-1:-1:-1;;;;;23856:444:0:o;16964:174::-;13736:7;13763:6;-1:-1:-1;;;;;13763:6:0;2249:10;14020:23;14012:68;;;;-1:-1:-1;;;14012:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17050:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;:24;::::1;;:15;::::0;;::::1;:24;;::::0;17042:54:::1;;;::::0;-1:-1:-1;;;17042:54:0;;8525:2:1;17042:54:0::1;::::0;::::1;8507:21:1::0;8564:2;8544:18;;;8537:30;-1:-1:-1;;;8583:18:1;;;8576:47;8640:18;;17042:54:0::1;8323:341:1::0;17042:54:0::1;-1:-1:-1::0;;;;;17107:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;17107:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16964:174::o;19557:286::-;-1:-1:-1;;;;;19656:22:0;;;;;;:50;;-1:-1:-1;;;;;;19682:24:0;;;;19656:50;19648:80;;;;-1:-1:-1;;;19648:80:0;;8871:2:1;19648:80:0;;;8853:21:1;8910:2;8890:18;;;8883:30;-1:-1:-1;;;8929:18:1;;;8922:47;8986:18;;19648:80:0;8669:341:1;19648:80:0;-1:-1:-1;;;;;19739:21:0;;;;;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;:42;;;19797:38;;1735:25:1;;;19797:38:0;;1708:18:1;19797:38:0;;;;;;;19557:286;;;:::o;19859:1519::-;13736:7;13763:6;-1:-1:-1;;;;;19977:13:0;;;13763:6;;19977:13;;;;:47;;-1:-1:-1;;;;;;20007:17:0;;14869:42;20007:17;;19977:47;:83;;;;-1:-1:-1;;;;;;20041:19:0;;20055:4;20041:19;;19977:83;:119;;;;-1:-1:-1;20083:13:0;;-1:-1:-1;;;;;20077:19:0;;;20083:13;;20077:19;;19977:119;:151;;;;-1:-1:-1;13736:7:0;13763:6;-1:-1:-1;;;;;20113:15:0;;;13763:6;;20113:15;;19977:151;19973:292;;;-1:-1:-1;;;;;18073:16:0;;20144:18;18073:16;;;:7;:16;;;;;;20226:15;;20202:19;20215:6;18073:16;20202:19;:::i;:::-;20201:40;;20193:70;;;;-1:-1:-1;;;20193:70:0;;9347:2:1;20193:70:0;;;9329:21:1;9386:2;9366:18;;;9359:30;-1:-1:-1;;;9405:18:1;;;9398:48;9463:18;;20193:70:0;9145:342:1;20193:70:0;20129:136;19973:292;13736:7;13763:6;-1:-1:-1;;;;;20279:15:0;;;13763:6;;20279:15;20275:92;;20327:12;;20317:6;:22;;20309:58;;;;-1:-1:-1;;;20309:58:0;;9694:2:1;20309:58:0;;;9676:21:1;9733:2;9713:18;;;9706:30;9772:25;9752:18;;;9745:53;9815:18;;20309:58:0;9492:347:1;20309:58:0;-1:-1:-1;;;;;20386:18:0;;;;;;:38;;-1:-1:-1;;;;;;20408:16:0;;;;20386:38;20378:72;;;;-1:-1:-1;;;20378:72:0;;10046:2:1;20378:72:0;;;10028:21:1;10085:2;10065:18;;;10058:30;-1:-1:-1;;;10104:18:1;;;10097:51;10165:18;;20378:72:0;9844:345:1;20378:72:0;20478:1;20469:6;:10;20461:60;;;;-1:-1:-1;;;20461:60:0;;10396:2:1;20461:60:0;;;10378:21:1;10435:2;10415:18;;;10408:30;10474:34;10454:18;;;10447:62;-1:-1:-1;;;10525:18:1;;;10518:35;10570:19;;20461:60:0;10194:401:1;20461:60:0;-1:-1:-1;;;;;20542:12:0;;;;;;:6;:12;;;;;;;;20541:13;:28;;;;-1:-1:-1;;;;;;20559:10:0;;;;;;:6;:10;;;;;;;;20558:11;20541:28;20533:54;;;;-1:-1:-1;;;20533:54:0;;10802:2:1;20533:54:0;;;10784:21:1;10841:2;10821:18;;;10814:30;-1:-1:-1;;;10860:18:1;;;10853:43;10913:18;;20533:54:0;10600:337:1;20533:54:0;20627:11;;;;;;;;20616:7;;:22;;;;:57;;-1:-1:-1;20657:16:0;;-1:-1:-1;;;20657:16:0;;;;20656:17;20616:57;:95;;;;-1:-1:-1;20698:13:0;;-1:-1:-1;;;;;20690:21:0;;;20698:13;;20690:21;;20616:95;:133;;;;-1:-1:-1;20728:21:0;;-1:-1:-1;;;20728:21:0;;;;20616:133;20599:428;;;20840:4;20791:28;18073:16;;;:7;:16;;;;;;20887:12;;20864:35;;20861:78;;;-1:-1:-1;20925:12:0;;20861:78;20953:7;:11;;-1:-1:-1;;20953:11:0;;;20979:36;20994:20;20979:14;:36::i;:::-;20774:253;20599:428;-1:-1:-1;;;;;21091:24:0;;21037:12;21091:24;;;:18;:24;;;;;;21052:4;;21037:12;21091:24;;;:50;;-1:-1:-1;;;;;;21119:22:0;;;;;;:18;:22;;;;;;;;21091:50;21088:224;;;21167:5;21157:15;;21088:224;;;21216:13;;-1:-1:-1;;;;;21216:13:0;;;21208:21;;;;21205:72;;-1:-1:-1;21257:4:0;21205:72;21291:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;21088:224;21322:48;21337:4;21343:2;21347:6;21355:7;21364:5;21322:14;:48::i;:::-;19962:1416;;19859:1519;;;:::o;1714:206::-;1800:7;1861:12;1853:6;;;;1845:29;;;;-1:-1:-1;;;1845:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1896:5:0;;;1714:206::o;1298:98::-;1356:7;1383:5;1387:1;1383;:5;:::i;:::-;1376:12;1298:98;-1:-1:-1;;;1298:98:0:o;21510:1489::-;16147:16;:23;;-1:-1:-1;;;;16147:23:0;-1:-1:-1;;;16147:23:0;;;21647:12:::1;::::0;16147:23;;21662:3:::1;::::0;21624:35:::1;::::0;:20;:35:::1;:::i;:::-;:41;;;;:::i;:::-;21599:66;;21700:14;21690:7;;:24;;;;:::i;:::-;21680:7;:34:::0;14869:42:::1;21752:20;::::0;:7:::1;:20;::::0;;;:37:::1;::::0;21775:14;;21752:37:::1;:::i;:::-;21729:7;:20;::::0;;:60;21845:4:::1;21729:20;21829:22:::0;;;21729:20;21829:22;;;:39:::1;::::0;21854:14;;21829:39:::1;:::i;:::-;21820:4;21804:22;::::0;;;:7:::1;:22;::::0;;;;:64;;;;21929:17:::1;::::0;21949:3:::1;::::0;21906:40:::1;::::0;:20;:40:::1;:::i;:::-;:46;;;;:::i;:::-;21884:68;;21967:19;22026:3;22012:11;;21989:20;:34;;;;:::i;:::-;:40;;;;:::i;:::-;21967:62;;22044:25;22112:3;22095:14;;22072:20;:37;;;;:::i;:::-;:43;;;;:::i;:::-;22044:71:::0;-1:-1:-1;22158:21:0::1;22194:63;22245:11:::0;22211:31:::1;22231:11:::0;22044:71;22211:31:::1;:::i;:::-;:45;;;;:::i;:::-;22194:16;:63::i;:::-;22272:17;22292:41;22316:17:::0;22292:21:::1;:41;:::i;:::-;22272:61;;22348:15;22430:11;;22410:17;;22393:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;22366:17;::::0;:23:::1;::::0;22386:3:::1;22366:23;:::i;:::-;:76;;;;:::i;:::-;22348:94:::0;-1:-1:-1;22457:13:0::1;22495:3;22473:19;22348:94:::0;22473:9;:19:::1;:::i;:::-;:25;;;;:::i;:::-;22457:41;;22513:15;22589:11;;22569:17;;22552:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;22531:11;::::0;:17:::1;::::0;22545:3:::1;22531:17;:::i;:::-;:70;;;;:::i;:::-;22513:88:::0;-1:-1:-1;22616:13:0::1;22654:3;22632:19;22513:88:::0;22632:9;:19:::1;:::i;:::-;:25;;;;:::i;:::-;22616:41:::0;-1:-1:-1;22672:60:0::1;22685:17:::0;22616:41;22705:17:::1;22717:5:::0;22705:9;:17:::1;:::i;:::-;:25;;;;:::i;:::-;22672:12;:60::i;:::-;22752:81;22767:17:::0;22807:5;22787:17:::1;22799:5:::0;22787:9;:17:::1;:::i;:::-;:25;;;;:::i;:::-;22752:81;::::0;;11457:25:1;;;11513:2;11498:18;;11491:34;;;;11541:18;;11534:34;;;11445:2;11430:18;22752:81:0::1;;;;;;;22861:16;::::0;22848:37:::1;::::0;-1:-1:-1;;;;;22861:16:0::1;22879:5:::0;22848:12:::1;:37::i;:::-;22961:10;::::0;22912:21:::1;::::0;-1:-1:-1;22948:35:0::1;::::0;-1:-1:-1;;;;;22961:10:0::1;22912:21:::0;22948:12:::1;:35::i;:::-;-1:-1:-1::0;;16193:16:0;:24;;-1:-1:-1;;;;16193:24:0;;;-1:-1:-1;;;;;;;;;21510:1489:0:o;24306:1392::-;24431:7;24427:1264;;-1:-1:-1;;;;;24472:15:0;;;;;;:7;:15;;;;;;:23;;24488:7;;24472:23;:::i;:::-;-1:-1:-1;;;;;24454:15:0;;;;;;;:7;:15;;;;;;:41;;;;24531:18;;;;;;;:26;;24550:7;;24531:26;:::i;:::-;-1:-1:-1;;;;;24510:18:0;;;;;;;:7;:18;;;;;;;:47;;;;24577:36;;;;;;;;;;24605:7;1735:25:1;;1723:2;1708:18;;1589:177;24577:36:0;;;;;;;;-1:-1:-1;;;;;;;24631:24:0;;;24628:67;;24688:7;24680;;:15;;;;:::i;:::-;24670:7;:25;24628:67;24427:1264;;;24721:5;24717:974;;;24742:14;24779:3;24767:11;;24759:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;24742:40;-1:-1:-1;24797:23:0;24823:14;24742:40;24823:7;:14;:::i;:::-;-1:-1:-1;;;;;24870:15:0;;;;;;:7;:15;;;;;;24797:40;;-1:-1:-1;24870:23:0;;24886:7;;24870:23;:::i;:::-;-1:-1:-1;;;;;24852:15:0;;;;;;;:7;:15;;;;;;:41;;;;24929:18;;;;;;;:34;;24948:15;;24929:34;:::i;:::-;-1:-1:-1;;;;;24908:18:0;;;;;;:7;:18;;;;;;:55;;;;25019:4;25003:22;;;;:29;;25026:6;;25003:29;:::i;:::-;24994:4;24978:22;;;;:7;:22;;;;;;;;;:54;;;;25054:44;1735:25:1;;;-1:-1:-1;;;;;25054:44:0;;;;;;;;;;1708:18:1;25054:44:0;;;;;;;-1:-1:-1;;;;;;;25116:24:0;;;25113:75;;25173:15;25165:7;;:23;;;;:::i;:::-;25155:7;:33;25113:75;24727:477;;24717:974;;;25225:15;25264:3;25251:12;;25243:7;:20;;;;:::i;:::-;:24;;;;:::i;:::-;25225:42;-1:-1:-1;25282:23:0;25308:15;25225:42;25308:7;:15;:::i;:::-;-1:-1:-1;;;;;25356:15:0;;;;;;:7;:15;;;;;;25282:41;;-1:-1:-1;25356:23:0;;25372:7;;25356:23;:::i;:::-;-1:-1:-1;;;;;25338:15:0;;;;;;;:7;:15;;;;;;:41;;;;25415:18;;;;;;;:34;;25434:15;;25415:34;:::i;:::-;-1:-1:-1;;;;;25394:18:0;;;;;;:7;:18;;;;;;:55;;;;25505:4;25489:22;;;;:30;;25512:7;;25489:30;:::i;:::-;25480:4;25464:22;;;;:7;:22;;;;;;;;;:55;;;;25541:44;1735:25:1;;;-1:-1:-1;;;;;25541:44:0;;;;;;;;;;1708:18:1;25541:44:0;;;;;;;-1:-1:-1;;;;;;;25603:24:0;;;25600:75;;25660:15;25652:7;;:23;;;;:::i;:::-;25642:7;:33;25600:75;25210:481;;24306:1392;;;;;:::o;23005:472::-;23095:16;;;23109:1;23095:16;;;;;;;;23071:21;;23095:16;;;;;;;;;;-1:-1:-1;23095:16:0;23071:40;;23140:4;23122;23127:1;23122:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23122:23:0;;;:7;;;;;;;;;;:23;;;;23166:15;;:22;;;-1:-1:-1;;;23166:22:0;;;;:15;;;;;:20;;:22;;;;;23122:7;;23166:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23156:4;23161:1;23156:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23156:32:0;;;:7;;;;;;;;;:32;23231:15;;23199:62;;23216:4;;23231:15;23249:11;23199:8;:62::i;:::-;23272:15;;:197;;-1:-1:-1;;;23272:197:0;;-1:-1:-1;;;;;23272:15:0;;;;:66;;:197;;23353:11;;23272:15;;23396:4;;23423;;23443:15;;23272:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23060:417;23005:472;:::o;23483:366::-;23596:15;;23564:62;;23581:4;;-1:-1:-1;;;;;23596:15:0;23614:11;23564:8;:62::i;:::-;23637:15;;:204;;-1:-1:-1;;;23637:204:0;;23709:4;23637:204;;;13169:34:1;13219:18;;;13212:34;;;23637:15:0;13262:18:1;;;13255:34;;;13305:18;;;13298:34;14869:42:0;13348:19:1;;;13341:44;23815:15:0;13401:19:1;;;13394:35;-1:-1:-1;;;;;23637:15:0;;;;:31;;23676:9;;13103:19:1;;23637:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21384:120::-;21469:23;;-1:-1:-1;;;;;21469:15:0;;;:23;;;;;21485:6;;21469:23;;;;21485:6;21469:15;:23;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1771:456::-;1848:6;1856;1864;1917:2;1905:9;1896:7;1892:23;1888:32;1885:52;;;1933:1;1930;1923:12;1885:52;1972:9;1959:23;1991:31;2016:5;1991:31;:::i;:::-;2041:5;-1:-1:-1;2098:2:1;2083:18;;2070:32;2111:33;2070:32;2111:33;:::i;:::-;1771:456;;2163:7;;-1:-1:-1;;;2217:2:1;2202:18;;;;2189:32;;1771:456::o;2421:247::-;2480:6;2533:2;2521:9;2512:7;2508:23;2504:32;2501:52;;;2549:1;2546;2539:12;2501:52;2588:9;2575:23;2607:31;2632:5;2607:31;:::i;3105:127::-;3166:10;3161:3;3157:20;3154:1;3147:31;3197:4;3194:1;3187:15;3221:4;3218:1;3211:15;3237:118;3323:5;3316:13;3309:21;3302:5;3299:32;3289:60;;3345:1;3342;3335:12;3360:128;3425:20;;3454:28;3425:20;3454:28;:::i;3493:1191::-;3583:6;3591;3644:2;3632:9;3623:7;3619:23;3615:32;3612:52;;;3660:1;3657;3650:12;3612:52;3700:9;3687:23;3729:18;3770:2;3762:6;3759:14;3756:34;;;3786:1;3783;3776:12;3756:34;3824:6;3813:9;3809:22;3799:32;;3869:7;3862:4;3858:2;3854:13;3850:27;3840:55;;3891:1;3888;3881:12;3840:55;3927:2;3914:16;3949:4;3972:2;3968;3965:10;3962:36;;;3978:18;;:::i;:::-;4024:2;4021:1;4017:10;4056:2;4050:9;4119:2;4115:7;4110:2;4106;4102:11;4098:25;4090:6;4086:38;4174:6;4162:10;4159:22;4154:2;4142:10;4139:18;4136:46;4133:72;;;4185:18;;:::i;:::-;4221:2;4214:22;4271:18;;;4305:15;;;;-1:-1:-1;4347:11:1;;;4343:20;;;4375:19;;;4372:39;;;4407:1;4404;4397:12;4372:39;4431:11;;;;4451:148;4467:6;4462:3;4459:15;4451:148;;;4533:23;4552:3;4533:23;:::i;:::-;4521:36;;4484:12;;;;4577;;;;4451:148;;;4618:6;-1:-1:-1;4643:35:1;;-1:-1:-1;4659:18:1;;;4643:35;:::i;:::-;4633:45;;;;;;3493:1191;;;;;:::o;4689:248::-;4757:6;4765;4818:2;4806:9;4797:7;4793:23;4789:32;4786:52;;;4834:1;4831;4824:12;4786:52;-1:-1:-1;;4857:23:1;;;4927:2;4912:18;;;4899:32;;-1:-1:-1;4689:248:1:o;4942:388::-;5010:6;5018;5071:2;5059:9;5050:7;5046:23;5042:32;5039:52;;;5087:1;5084;5077:12;5039:52;5126:9;5113:23;5145:31;5170:5;5145:31;:::i;:::-;5195:5;-1:-1:-1;5252:2:1;5237:18;;5224:32;5265:33;5224:32;5265:33;:::i;:::-;5317:7;5307:17;;;4942:388;;;;;:::o;5335:382::-;5400:6;5408;5461:2;5449:9;5440:7;5436:23;5432:32;5429:52;;;5477:1;5474;5467:12;5429:52;5516:9;5503:23;5535:31;5560:5;5535:31;:::i;:::-;5585:5;-1:-1:-1;5642:2:1;5627:18;;5614:32;5655:30;5614:32;5655:30;:::i;6081:356::-;6283:2;6265:21;;;6302:18;;;6295:30;6361:34;6356:2;6341:18;;6334:62;6428:2;6413:18;;6081:356::o;6442:127::-;6503:10;6498:3;6494:20;6491:1;6484:31;6534:4;6531:1;6524:15;6558:4;6555:1;6548:15;6574:127;6635:10;6630:3;6626:20;6623:1;6616:31;6666:4;6663:1;6656:15;6690:4;6687:1;6680:15;6706:135;6745:3;6766:17;;;6763:43;;6786:18;;:::i;:::-;-1:-1:-1;6833:1:1;6822:13;;6706:135::o;7202:184::-;7272:6;7325:2;7313:9;7304:7;7300:23;7296:32;7293:52;;;7341:1;7338;7331:12;7293:52;-1:-1:-1;7364:16:1;;7202:184;-1:-1:-1;7202:184:1:o;7391:168::-;7464:9;;;7495;;7512:15;;;7506:22;;7492:37;7482:71;;7533:18;;:::i;7564:217::-;7604:1;7630;7620:132;;7674:10;7669:3;7665:20;7662:1;7655:31;7709:4;7706:1;7699:15;7737:4;7734:1;7727:15;7620:132;-1:-1:-1;7766:9:1;;7564:217::o;8073:245::-;8140:6;8193:2;8181:9;8172:7;8168:23;8164:32;8161:52;;;8209:1;8206;8199:12;8161:52;8241:9;8235:16;8260:28;8282:5;8260:28;:::i;9015:125::-;9080:9;;;9101:10;;;9098:36;;;9114:18;;:::i;10942:175::-;10979:3;11023:4;11016:5;11012:16;11052:4;11043:7;11040:17;11037:43;;11060:18;;:::i;:::-;11109:1;11096:15;;10942:175;-1:-1:-1;;10942:175:1:o;11122:128::-;11189:9;;;11210:11;;;11207:37;;;11224:18;;:::i;11579:251::-;11649:6;11702:2;11690:9;11681:7;11677:23;11673:32;11670:52;;;11718:1;11715;11708:12;11670:52;11750:9;11744:16;11769:31;11794:5;11769:31;:::i;11835:980::-;12097:4;12145:3;12134:9;12130:19;12176:6;12165:9;12158:25;12202:2;12240:6;12235:2;12224:9;12220:18;12213:34;12283:3;12278:2;12267:9;12263:18;12256:31;12307:6;12342;12336:13;12373:6;12365;12358:22;12411:3;12400:9;12396:19;12389:26;;12450:2;12442:6;12438:15;12424:29;;12471:1;12481:195;12495:6;12492:1;12489:13;12481:195;;;12560:13;;-1:-1:-1;;;;;12556:39:1;12544:52;;12651:15;;;;12616:12;;;;12592:1;12510:9;12481:195;;;-1:-1:-1;;;;;;;12732:32:1;;;;12727:2;12712:18;;12705:60;-1:-1:-1;;;12796:3:1;12781:19;12774:35;12693:3;11835:980;-1:-1:-1;;;11835:980:1:o;13440:306::-;13528:6;13536;13544;13597:2;13585:9;13576:7;13572:23;13568:32;13565:52;;;13613:1;13610;13603:12;13565:52;13642:9;13636:16;13626:26;;13692:2;13681:9;13677:18;13671:25;13661:35;;13736:2;13725:9;13721:18;13715:25;13705:35;;13440:306;;;;;:::o
Swarm Source
ipfs://f746d5b8a41a46a18a7ead3b0e410a20eba2d1abb1f541c82c3228c5cb6e8f9c
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.