Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 58 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 15486069 | 1269 days ago | IN | 0 ETH | 0.00153069 | ||||
| Approve | 15484591 | 1269 days ago | IN | 0 ETH | 0.00089096 | ||||
| Approve | 15484565 | 1269 days ago | IN | 0 ETH | 0.00060835 | ||||
| Approve | 15484532 | 1269 days ago | IN | 0 ETH | 0.00057258 | ||||
| Approve | 15484508 | 1269 days ago | IN | 0 ETH | 0.00091927 | ||||
| Approve | 15484505 | 1269 days ago | IN | 0 ETH | 0.00085576 | ||||
| Approve | 15484505 | 1269 days ago | IN | 0 ETH | 0.00085576 | ||||
| Approve | 15484396 | 1269 days ago | IN | 0 ETH | 0.00030845 | ||||
| Approve | 15484395 | 1269 days ago | IN | 0 ETH | 0.00055536 | ||||
| Approve | 15484356 | 1269 days ago | IN | 0 ETH | 0.00048576 | ||||
| Approve | 15484323 | 1269 days ago | IN | 0 ETH | 0.00117419 | ||||
| Approve | 15484315 | 1269 days ago | IN | 0 ETH | 0.00093712 | ||||
| Approve | 15484291 | 1269 days ago | IN | 0 ETH | 0.00099854 | ||||
| Approve | 15484291 | 1269 days ago | IN | 0 ETH | 0.00107842 | ||||
| Approve | 15484283 | 1269 days ago | IN | 0 ETH | 0.00100399 | ||||
| Approve | 15484279 | 1269 days ago | IN | 0 ETH | 0.00090621 | ||||
| Approve | 15484272 | 1269 days ago | IN | 0 ETH | 0.00102204 | ||||
| Approve | 15484252 | 1269 days ago | IN | 0 ETH | 0.00052239 | ||||
| Approve | 15484251 | 1269 days ago | IN | 0 ETH | 0.00049546 | ||||
| Approve | 15484243 | 1269 days ago | IN | 0 ETH | 0.00068587 | ||||
| Approve | 15484241 | 1269 days ago | IN | 0 ETH | 0.00064055 | ||||
| Approve | 15484235 | 1269 days ago | IN | 0 ETH | 0.00064578 | ||||
| Approve | 15484231 | 1269 days ago | IN | 0 ETH | 0.00052419 | ||||
| Approve | 15484230 | 1269 days ago | IN | 0 ETH | 0.00047376 | ||||
| Approve | 15484227 | 1269 days ago | IN | 0 ETH | 0.00045061 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 15486073 | 1269 days ago | 0.00243494 ETH | ||||
| Transfer | 15486073 | 1269 days ago | 0.00243494 ETH | ||||
| Transfer | 15485548 | 1269 days ago | 0.00247413 ETH | ||||
| Transfer | 15485548 | 1269 days ago | 0.00247413 ETH | ||||
| Add Liquidity ET... | 15484732 | 1269 days ago | 0.00126167 ETH | ||||
| Transfer | 15484732 | 1269 days ago | 0.00126167 ETH | ||||
| Transfer | 15484731 | 1269 days ago | 0.00268055 ETH | ||||
| Transfer | 15484731 | 1269 days ago | 0.00268055 ETH | ||||
| Transfer | 15484611 | 1269 days ago | 0.00274162 ETH | ||||
| Transfer | 15484611 | 1269 days ago | 0.00274162 ETH | ||||
| Transfer | 15484606 | 1269 days ago | 0.00278488 ETH | ||||
| Transfer | 15484606 | 1269 days ago | 0.00278488 ETH | ||||
| Transfer | 15484592 | 1269 days ago | 0.0027937 ETH | ||||
| Transfer | 15484592 | 1269 days ago | 0.0027937 ETH | ||||
| Add Liquidity ET... | 15484587 | 1269 days ago | 0.00149338 ETH | ||||
| Transfer | 15484587 | 1269 days ago | 0.00149338 ETH | ||||
| Add Liquidity ET... | 15484573 | 1269 days ago | 0.00149338 ETH | ||||
| Transfer | 15484573 | 1269 days ago | 0.00149338 ETH | ||||
| Transfer | 15484573 | 1269 days ago | 0.00322225 ETH | ||||
| Transfer | 15484573 | 1269 days ago | 0.00322225 ETH | ||||
| Transfer | 15484572 | 1269 days ago | 0.00322225 ETH | ||||
| Transfer | 15484572 | 1269 days ago | 0.00322225 ETH | ||||
| Transfer | 15484572 | 1269 days ago | 0.00348429 ETH | ||||
| Transfer | 15484572 | 1269 days ago | 0.00348429 ETH | ||||
| Transfer | 15484565 | 1269 days ago | 0.00373732 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
VoltChain
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-09-06
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.1;
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
);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes memory) {
this;
return msg.data;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
assembly {
codehash := extcodehash(account)
}
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(
address(this).balance >= amount,
"Address: insufficient balance"
);
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(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"
);
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(
address target,
bytes memory data,
uint256 weiValue,
string memory errorMessage
) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: weiValue}(
data
);
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
contract Ownable is Context {
address private _owner;
address private _previousOwner;
uint256 private _lockTime;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
// pragma solidity >=0.5.0;
interface IUniswapV2Factory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB)
external
view
returns (address pair);
function allPairs(uint256) external view returns (address pair);
function allPairsLength() external view returns (uint256);
function createPair(address tokenA, address tokenB)
external
returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
// pragma solidity >=0.5.0;
interface IUniswapV2Pair {
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
event Transfer(address indexed from, address indexed to, uint256 value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address owner) external view returns (uint256);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(
address from,
address to,
uint256 value
) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint256);
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
event Mint(address indexed sender, uint256 amount0, uint256 amount1);
event Burn(
address indexed sender,
uint256 amount0,
uint256 amount1,
address indexed to
);
event Swap(
address indexed sender,
uint256 amount0In,
uint256 amount1In,
uint256 amount0Out,
uint256 amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint256);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves()
external
view
returns (
uint112 reserve0,
uint112 reserve1,
uint32 blockTimestampLast
);
function price0CumulativeLast() external view returns (uint256);
function price1CumulativeLast() external view returns (uint256);
function kLast() external view returns (uint256);
function mint(address to) external returns (uint256 liquidity);
function burn(address to)
external
returns (uint256 amount0, uint256 amount1);
function swap(
uint256 amount0Out,
uint256 amount1Out,
address to,
bytes calldata data
) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
// pragma solidity >=0.6.2;
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
)
external
returns (
uint256 amountA,
uint256 amountB,
uint256 liquidity
);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
function removeLiquidity(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETH(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountToken, uint256 amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETHWithPermit(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountToken, uint256 amountETH);
function swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapTokensForExactTokens(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactETHForTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function swapTokensForExactETH(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactTokensForETH(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapETHForExactTokens(
uint256 amountOut,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function quote(
uint256 amountA,
uint256 reserveA,
uint256 reserveB
) external pure returns (uint256 amountB);
function getAmountOut(
uint256 amountIn,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountOut);
function getAmountIn(
uint256 amountOut,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountIn);
function getAmountsOut(uint256 amountIn, address[] calldata path)
external
view
returns (uint256[] memory amounts);
function getAmountsIn(uint256 amountOut, address[] calldata path)
external
view
returns (uint256[] memory amounts);
}
// pragma solidity >=0.6.2;
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
contract VoltChain is Context, IERC20, Ownable {
using Address for address;
string private _name = "Volt Chain";
string private _symbol = "VoltChain";
uint8 private _decimals = 9;
uint256 private initialsupply = 1_000_000_000;
uint256 private _tTotal = initialsupply * 10**_decimals;
address payable public marketingWallet;
address public liquidityWallet;
mapping(address => uint256) private _tOwned;
mapping(address => uint256) private buycooldown;
mapping(address => uint256) private sellcooldown;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) public isExcludedFromFee;
mapping(address => bool) public isBlacklisted;
struct Icooldown {
bool buycooldownEnabled;
bool sellcooldownEnabled;
uint256 cooldown;
uint256 cooldownLimit;
}
Icooldown public cooldownInfo =
Icooldown({
buycooldownEnabled: true,
sellcooldownEnabled: true,
cooldown: 30 seconds,
cooldownLimit: 60 seconds
});
struct ILaunch {
uint256 launchedAt;
bool launched;
bool launchProtection;
}
ILaunch public wenLaunch =
ILaunch({
launchedAt: 0,
launched: false,
launchProtection: true
});
struct ItxSettings {
uint256 maxTxAmount;
uint256 maxWalletAmount;
uint256 numTokensToSwap;
bool limited;
}
ItxSettings public txSettings;
uint256 public _transferLiquidityFee;
uint256 public _transferMarketingFee;
uint256 public _transferBurnFee;
uint256 public _buyLiquidityFee;
uint256 public _buyMarketingFee;
uint256 public _buyBurnFee;
uint256 public _sellLiquidityFee;
uint256 public _sellMarketingFee;
uint256 public _sellBurnFee;
uint256 public lpFeeAccumulated;
uint256 public antiBlocks = 3;
IUniswapV2Router02 public immutable uniswapV2Router;
address public immutable uniswapV2Pair;
bool private inSwapAndLiquify;
bool public swapAndLiquifyEnabled;
bool public tradeEnabled;
mapping(address => bool) public tradeAllowedList;
modifier lockTheSwap() {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
event SniperStatus(address account, bool blacklisted);
event ToMarketing(uint256 marketingBalance);
event SwapAndLiquify(uint256 liquidityTokens, uint256 liquidityFees);
event Launch();
constructor(address _marketingWallet) {
marketingWallet = payable(_marketingWallet);
// IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); // bsc pancake router
// IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3); //bsc test net router kiem
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //eth unisawp router
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
uniswapV2Router = _uniswapV2Router;
_approve(_msgSender(), address(_uniswapV2Router), type(uint256).max);
_approve(address(this), address(_uniswapV2Router), type(uint256).max);
isExcludedFromFee[owner()] = true;
isExcludedFromFee[address(this)] = true;
setSellFee(10,50, 0);
setBuyFee(10,50, 0);
setTransferFee(10,30, 0);
setTxSettings(1,100,2,100,1,1000,true);
_tOwned[_msgSender()] = _tTotal;
emit Transfer(address(0), _msgSender(), _tTotal);
tradeEnabled = false;
tradeAllowedList[owner()] = true;
tradeAllowedList[address(this)] = true;
liquidityWallet = _msgSender();
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _tTotal;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function balanceOf(address account) public view override returns (uint256) {
return _tOwned[account];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function setSellFee(uint256 liquidityFee, uint256 marketingFee, uint256 burnFee) public onlyOwner {
require(liquidityFee + marketingFee + burnFee <= 250);
_sellLiquidityFee = liquidityFee;
_sellMarketingFee = marketingFee;
_sellBurnFee = burnFee;
}
function setBuyFee(uint256 liquidityFee, uint256 marketingFee, uint256 burnFee) public onlyOwner {
require(liquidityFee + marketingFee + burnFee <= 250);
_buyMarketingFee = marketingFee;
_buyLiquidityFee = liquidityFee;
_buyBurnFee = burnFee;
}
function setTransferFee(uint256 liquidityFee, uint256 marketingFee, uint256 burnFee) public onlyOwner {
require(liquidityFee + marketingFee + burnFee <= 250);
_transferLiquidityFee = liquidityFee;
_transferMarketingFee = marketingFee;
_transferBurnFee = burnFee;
}
function setLiquidityFees(uint256 newTransfer, uint256 newBuy, uint256 newSell) public onlyOwner {
_transferLiquidityFee = newTransfer;
_buyLiquidityFee = newBuy;
_sellLiquidityFee = newSell;
}
function setMarketingFees(uint256 newTransfer, uint256 newBuy, uint256 newSell) public onlyOwner {
_transferMarketingFee = newTransfer;
_buyMarketingFee = newBuy;
_sellMarketingFee = newSell;
}
function setBurnFees(uint256 newTransfer, uint256 newBuy, uint256 newSell) public onlyOwner {
_transferBurnFee = newTransfer;
_buyBurnFee = newBuy;
_sellBurnFee = newSell;
}
function setCooldown(uint256 amount) external onlyOwner {
require(amount <= cooldownInfo.cooldownLimit);
cooldownInfo.cooldown = amount;
}
function setMarketingWallet(address payable newMarketingWallet) external onlyOwner {
marketingWallet = payable(newMarketingWallet);
}
function setLiquidityWallet(address newLpWallet) external onlyOwner {
liquidityWallet = newLpWallet;
}
function setTxSettings(uint256 txp, uint256 txd, uint256 mwp, uint256 mwd, uint256 sp, uint256 sd, bool limiter) public onlyOwner {
require((_tTotal * txp) / txd >= (_tTotal / 1000), "Max Transaction must be above 0.1% of total supply.");
require((_tTotal * mwp) / mwd >= (_tTotal / 1000), "Max Wallet must be above 0.1% of total supply.");
uint256 newTx = (_tTotal * txp) / (txd);
uint256 newMw = (_tTotal * mwp) / mwd;
uint256 swapAmount = (_tTotal * sp) / (sd);
txSettings = ItxSettings ({
numTokensToSwap: swapAmount,
maxTxAmount: newTx,
maxWalletAmount: newMw,
limited: limiter
});
}
function setTradeEnabled(bool onoff) external onlyOwner {
if (!wenLaunch.launched) {
wenLaunch.launchedAt = block.number;
wenLaunch.launched = true;
swapAndLiquifyEnabled = true;
}
tradeEnabled = onoff;
if (!wenLaunch.launched) {
emit Launch();
}
}
function setAntiBlocks(uint256 _block) external onlyOwner {
antiBlocks = _block;
}
function setTradeAllowedAddress(address who, bool status) external onlyOwner {
tradeAllowedList[who] = status;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool){
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] + (addedValue)
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] - (subtractedValue)
);
return true;
}
function setBlacklistStatus(address account, bool blacklisted) external onlyOwner {
if(account == uniswapV2Pair || account == address(this) || account == address(uniswapV2Router)) {revert();}
isBlacklisted[account] = blacklisted;
}
function SniperDestroyer(address [] calldata accounts, bool blacklisted) external onlyOwner {
for (uint256 i; i < accounts.length; i++) {
address account = accounts[i];
if(account != uniswapV2Pair && account != address(this) && account != address(uniswapV2Router)) {
isBlacklisted[account] = blacklisted;
}
}
}
function setSniperStatus(address account, bool blacklisted) private{
if(account == uniswapV2Pair || account == address(this) || account == address(uniswapV2Router)) {revert();}
if (blacklisted == true) {
isBlacklisted[account] = true;
emit SniperStatus(account, blacklisted);
}
}
function limits(bool onoff) public onlyOwner {
txSettings.limited = onoff;
}
function excludeFromFee(address account) public onlyOwner {
isExcludedFromFee[account] = true;
}
function includeInFee(address account) public onlyOwner {
isExcludedFromFee[account] = false;
}
function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
swapAndLiquifyEnabled = _enabled;
}
//to receive ETH from uniswapV2Router when swapping
receive() external payable {}
function _approve(address owner,address spender,uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function swapAndLiquify(uint256 tokenBalance) private lockTheSwap {
uint256 initialBalance = address(this).balance;
uint256 tokensToSwap = tokenBalance / 2;
uint256 liquidityTokens = tokenBalance - tokensToSwap;
if (tokensToSwap > 0) {
swapTokensForEth(tokensToSwap);
}
uint256 newBalance = address(this).balance;
uint256 liquidityBalance = uint256(newBalance - initialBalance);
if (liquidityTokens > 0 && liquidityBalance > 0) {
addLiquidity(liquidityTokens, liquidityBalance);
emit SwapAndLiquify(liquidityTokens, liquidityBalance);
}
lpFeeAccumulated -= tokenBalance;
}
function swapAndMarketing(uint256 tokenBalance) private lockTheSwap {
if (tokenBalance > 0) {
swapTokensForEth(tokenBalance);
}
uint256 marketingBalance = address(this).balance;
if (marketingBalance > 0) {
marketingWallet.transfer(marketingBalance);
emit ToMarketing(marketingBalance);
}
}
function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
require(amountPercentage <= 100);
uint256 amountETH = address(this).balance;
payable(marketingWallet).transfer(
(amountETH * (amountPercentage)) / (100)
);
}
function clearStuckToken(address to) external onlyOwner {
uint256 _balance = balanceOf(address(this));
lpFeeAccumulated = 0;
_transfer(address(this), to, _balance);
}
function clearStuckTokens(address _token, address _to) external onlyOwner returns (bool _sent) {
require(_token != address(0));
uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
_sent = IERC20(_token).transfer(_to, _contractBalance);
}
function swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
if(_allowances[address(this)][address(uniswapV2Router)] < tokenAmount) {
_approve(address(this), address(uniswapV2Router), type(uint256).max);
}
// make the swap
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
if(_allowances[address(this)][address(uniswapV2Router)] < tokenAmount) {
_approve(address(this), address(uniswapV2Router), type(uint256).max);
}
// add the liquidity
uniswapV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
liquidityWallet,
block.timestamp
);
}
function transferFrom(address sender,address recipient,uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()] - (
amount
)
);
return true;
}
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
require(isBlacklisted[from] == false, "Hehe");
require(isBlacklisted[to] == false, "Hehe");
if (!tradeEnabled) {
require(tradeAllowedList[from] || tradeAllowedList[to], "Transfer: not allowed");
require(balanceOf(uniswapV2Pair) == 0 || to != uniswapV2Pair, "Transfer: no body can sell now");
}
if (txSettings.limited) {
if(from != owner() && to != owner() || to != address(0xdead) && to != address(0))
{
if (from == uniswapV2Pair || to == uniswapV2Pair
) {
if(!isExcludedFromFee[to] && !isExcludedFromFee[from]) {
require(amount <= txSettings.maxTxAmount);
}
}
if(to != address(uniswapV2Router) && to != uniswapV2Pair) {
if(!isExcludedFromFee[to]) {
require(balanceOf(to) + amount <= txSettings.maxWalletAmount);
}
}
}
}
if (from == uniswapV2Pair && to != address(uniswapV2Router) && !isExcludedFromFee[to]
) {
if (cooldownInfo.buycooldownEnabled) {
require(buycooldown[to] < block.timestamp);
buycooldown[to] = block.timestamp + (cooldownInfo.cooldown);
}
} else if (from != uniswapV2Pair && !isExcludedFromFee[from]){
if (cooldownInfo.sellcooldownEnabled) {
require(sellcooldown[from] <= block.timestamp);
sellcooldown[from] = block.timestamp + (cooldownInfo.cooldown);
}
}
if (
!inSwapAndLiquify &&
from != uniswapV2Pair &&
swapAndLiquifyEnabled
) {
uint256 contractTokenBalance = balanceOf(address(this));
if (contractTokenBalance > txSettings.numTokensToSwap) {
if (lpFeeAccumulated > txSettings.numTokensToSwap) {
swapAndLiquify(txSettings.numTokensToSwap);
} else if ((_transferMarketingFee + _buyMarketingFee + _sellMarketingFee) > 0) {
swapAndMarketing(txSettings.numTokensToSwap);
}
}
}
//indicates if fee should be deducted from transfer
bool takeFee = true;
//if any account belongs to isExcludedFromFee account then remove the fee
if (isExcludedFromFee[from] || isExcludedFromFee[to]) {
takeFee = false;
}
//transfer amount, it will take tax, marketing, liquidity fee
_tokenTransfer(from, to, amount, takeFee);
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
//this method is responsible for taking all fee, if takeFee is true
function _tokenTransfer(address sender,address recipient,uint256 amount,bool takeFee) private {
uint256 liquidityFee;
uint256 marketingFee;
uint256 burnFee;
uint256 liquidityFeeAmount = 0;
uint256 marketingFeeAmount = 0;
uint256 burnFeeAmount = 0;
uint256 feeAmount = 0;
bool highFee = false;
if (wenLaunch.launchProtection) {
if (wenLaunch.launched && wenLaunch.launchedAt > 0 && block.number > (wenLaunch.launchedAt + antiBlocks)) {
wenLaunch.launchProtection = false;
} else {
if (
sender == uniswapV2Pair &&
recipient != address(uniswapV2Router) &&
!isExcludedFromFee[recipient]
) {
setSniperStatus(recipient, true);
highFee = true;
}
}
}
if (takeFee) {
if (sender == uniswapV2Pair) {
liquidityFee = _buyLiquidityFee;
marketingFee = _buyMarketingFee;
burnFee = _buyBurnFee;
} else if (recipient == uniswapV2Pair) {
liquidityFee = _sellLiquidityFee;
marketingFee = _sellMarketingFee;
burnFee = _sellBurnFee;
} else {
liquidityFee = _transferLiquidityFee;
marketingFee = _transferMarketingFee;
burnFee = _transferBurnFee;
}
if (highFee) {
liquidityFee = 950;
marketingFee = 0;
burnFee = 0;
}
feeAmount = (amount * (liquidityFee + marketingFee + burnFee)) / (1000);
if ((liquidityFee + marketingFee + burnFee) > 0) {
liquidityFeeAmount = feeAmount * liquidityFee / (liquidityFee + marketingFee + burnFee);
marketingFeeAmount = feeAmount * marketingFee / (liquidityFee + marketingFee + burnFee);
burnFeeAmount = feeAmount * burnFee / (liquidityFee + marketingFee + burnFee);
}
lpFeeAccumulated += liquidityFeeAmount;
}
uint256 tAmount = amount - (liquidityFeeAmount + marketingFeeAmount + burnFeeAmount);
_tOwned[sender] -= amount;
_tOwned[address(this)] += (liquidityFeeAmount + marketingFeeAmount);
emit Transfer(sender, address(this), (liquidityFeeAmount + marketingFeeAmount));
_tOwned[recipient] += tAmount;
emit Transfer(sender, recipient, tAmount);
if (burnFeeAmount > 0) {
_tOwned[address(0xdead)] += burnFeeAmount;
emit Transfer(sender, address(0xdead), burnFeeAmount);
}
}
function setCooldownEnabled(bool onoff, bool offon) external onlyOwner {
cooldownInfo.buycooldownEnabled = onoff;
cooldownInfo.sellcooldownEnabled = offon;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_marketingWallet","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":[],"name":"Launch","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":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"blacklisted","type":"bool"}],"name":"SniperStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityFees","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketingBalance","type":"uint256"}],"name":"ToMarketing","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"blacklisted","type":"bool"}],"name":"SniperDestroyer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"antiBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"clearStuckTokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownInfo","outputs":[{"internalType":"bool","name":"buycooldownEnabled","type":"bool"},{"internalType":"bool","name":"sellcooldownEnabled","type":"bool"},{"internalType":"uint256","name":"cooldown","type":"uint256"},{"internalType":"uint256","name":"cooldownLimit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"limits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpFeeAccumulated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_block","type":"uint256"}],"name":"setAntiBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"blacklisted","type":"bool"}],"name":"setBlacklistStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTransfer","type":"uint256"},{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"}],"name":"setBurnFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"},{"internalType":"bool","name":"offon","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTransfer","type":"uint256"},{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"}],"name":"setLiquidityFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLpWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTransfer","type":"uint256"},{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"}],"name":"setMarketingFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setTradeAllowedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setTradeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"txp","type":"uint256"},{"internalType":"uint256","name":"txd","type":"uint256"},{"internalType":"uint256","name":"mwp","type":"uint256"},{"internalType":"uint256","name":"mwd","type":"uint256"},{"internalType":"uint256","name":"sp","type":"uint256"},{"internalType":"uint256","name":"sd","type":"uint256"},{"internalType":"bool","name":"limiter","type":"bool"}],"name":"setTxSettings","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":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tradeAllowedList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txSettings","outputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"},{"internalType":"uint256","name":"numTokensToSwap","type":"uint256"},{"internalType":"bool","name":"limited","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wenLaunch","outputs":[{"internalType":"uint256","name":"launchedAt","type":"uint256"},{"internalType":"bool","name":"launched","type":"bool"},{"internalType":"bool","name":"launchProtection","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
610100604052600a60c0819052692b37b63a1021b430b4b760b11b60e09081526200002e9160039190620009c9565b50604080518082019091526009808252682b37b63a21b430b4b760b91b60209092019182526200006191600491620009c9565b506005805460ff19166009908117909155633b9aca006006556200008790600a62000b28565b60065462000096919062000be9565b6007556040805160808101825260018082526020808301829052601e838501819052603c60609485018190526010805461010161ffff199182161790915560119290925560125584519384018552600080855291840182905292909301526013919091556014805490911661010017905560036023553480156200011957600080fd5b5060405162004003380380620040038339810160408190526200013c9162000a6f565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600880546001600160a01b0319166001600160a01b0383161790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a015591600480820192602092909190829003018186803b158015620001e757600080fd5b505afa158015620001fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000222919062000a6f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200026b57600080fd5b505afa15801562000280573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a6919062000a6f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002ef57600080fd5b505af115801562000304573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032a919062000a6f565b6001600160601b0319606091821b811660a0529082901b166080526200035b620003513390565b82600019620004ec565b6200036a3082600019620004ec565b6001600e6000620003836000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600e90925281208054909216600117909155620003d590600a9060329062000618565b620003e5600a6032600062000698565b620003f5600a601e60006200071b565b6200040b60016064600281836103e8816200079b565b600754336000818152600a6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36024805462ff0000191690556001602560006200047b6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526025909252902080549091166001179055620004c33390565b600980546001600160a01b0319166001600160a01b03929092169190911790555062000c5e9050565b6001600160a01b038316620005545760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620005b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200054b565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03163314620006635760405162461bcd60e51b8152602060048201819052602482015260008051602062003fe383398151915260448201526064016200054b565b60fa8162000672848662000aa1565b6200067e919062000aa1565b11156200068a57600080fd5b601f92909255602055602155565b6000546001600160a01b03163314620006e35760405162461bcd60e51b8152602060048201819052602482015260008051602062003fe383398151915260448201526064016200054b565b60fa81620006f2848662000aa1565b620006fe919062000aa1565b11156200070a57600080fd5b601d91909155601c91909155601e55565b6000546001600160a01b03163314620007665760405162461bcd60e51b8152602060048201819052602482015260008051602062003fe383398151915260448201526064016200054b565b60fa8162000775848662000aa1565b62000781919062000aa1565b11156200078d57600080fd5b601992909255601a55601b55565b6000546001600160a01b03163314620007e65760405162461bcd60e51b8152602060048201819052602482015260008051602062003fe383398151915260448201526064016200054b565b6103e8600754620007f8919062000abc565b868860075462000809919062000be9565b62000815919062000abc565b10156200088b5760405162461bcd60e51b815260206004820152603360248201527f4d6178205472616e73616374696f6e206d7573742062652061626f766520302e60448201527f3125206f6620746f74616c20737570706c792e0000000000000000000000000060648201526084016200054b565b6103e86007546200089d919062000abc565b8486600754620008ae919062000be9565b620008ba919062000abc565b1015620009215760405162461bcd60e51b815260206004820152602e60248201527f4d61782057616c6c6574206d7573742062652061626f766520302e3125206f6660448201526d103a37ba30b61039bab838363c9760911b60648201526084016200054b565b6000868860075462000934919062000be9565b62000940919062000abc565b90506000858760075462000955919062000be9565b62000961919062000abc565b90506000848660075462000976919062000be9565b62000982919062000abc565b60408051608081018252858152602081018590529081018290529415156060909501859052601593909355506016556017556018805460ff19169091179055505050505050565b828054620009d79062000c0b565b90600052602060002090601f016020900481019282620009fb576000855562000a46565b82601f1062000a1657805160ff191683800117855562000a46565b8280016001018555821562000a46579182015b8281111562000a4657825182559160200191906001019062000a29565b5062000a5492915062000a58565b5090565b5b8082111562000a54576000815560010162000a59565b60006020828403121562000a8257600080fd5b81516001600160a01b038116811462000a9a57600080fd5b9392505050565b6000821982111562000ab75762000ab762000c48565b500190565b60008262000ada57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111562000b2057816000190482111562000b045762000b0462000c48565b8085161562000b1257918102915b93841c939080029062000ae4565b509250929050565b600062000a9a60ff84168360008262000b445750600162000be3565b8162000b535750600062000be3565b816001811462000b6c576002811462000b775762000b97565b600191505062000be3565b60ff84111562000b8b5762000b8b62000c48565b50506001821b62000be3565b5060208310610133831016604e8410600b841016171562000bbc575081810a62000be3565b62000bc8838362000adf565b806000190482111562000bdf5762000bdf62000c48565b0290505b92915050565b600081600019048311821515161562000c065762000c0662000c48565b500290565b600181811c9082168062000c2057607f821691505b6020821081141562000c4257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c60a05160601c61329c62000d476000396000818161069901528181610c1c0152818161102e01528181611d9301528181611dcb01528181611eb301528181611eee01528181611fbc015281816120500152818161214801528181612212015281816124f7015281816125a9015281816125f70152612c7e01526000818161047601528181610c6a0152818161108001528181611f7f0152818161208c015281816125330152818161298401528181612a5101528181612a8801528181612ac601528181612b4e01528181612b8b01528181612bf50152612ccc015261329c6000f3fe60806040526004361061039b5760003560e01c806370a08231116101dc578063c40fedc611610102578063dc44b6a0116100a0578063ea2f0b371161006f578063ea2f0b3714610b57578063f23175ff14610b77578063f2fde38b14610b97578063fe575a8714610bb757600080fd5b8063dc44b6a014610ac5578063dd62ed3e14610adb578063e7c8923214610b21578063ea08d30b14610b4157600080fd5b8063c8607952116100dc578063c860795214610a27578063d469801614610a3d578063d621e81314610a5d578063d8913ae314610a7d57600080fd5b8063c40fedc6146109d1578063c49b9a80146109f1578063c5d2418914610a1157600080fd5b806395f93d481161017a578063a457c2d711610149578063a457c2d714610951578063a9059cbb14610971578063b18e984014610991578063b5ec1941146109b157600080fd5b806395f93d48146108ae578063980ba05e146108fb5780639be953b314610911578063a16df9d81461093157600080fd5b80637abdc1ca116101b65780637abdc1ca1461084f57806388790a68146108655780638da5cb5b1461087b57806395d89b411461089957600080fd5b806370a08231146107e4578063715018a61461081a57806375f0a8741461082f57600080fd5b80632e0563a3116102c15780634a74bb021161025f5780635d098b381161022e5780635d098b381461074a5780635db447571461076a578063645b2571146107ae5780636cbdd5e3146107ce57600080fd5b80634a74bb02146106bb5780634fc3f41a146106da5780635342acb4146106fa5780635b8138f61461072a57600080fd5b8063395093511161029b57806339509351146106275780633bec2bf314610647578063437823ec1461066757806349bd5a5e1461068757600080fd5b80632e0563a3146105cf578063313ce567146105ef578063350e96c81461061157600080fd5b806318160ddd1161033957806323b872dd1161030857806323b872dd1461055957806325519cf214610579578063296f0a0c146105995780632aff03b7146105b957600080fd5b806318160ddd146104d45780631c66cb6d146104e95780631d865c30146105195780631da1db5e1461053957600080fd5b8063098b306611610375578063098b3066146104245780630e4e411c146104445780631694505e1461046457806316f2f1a8146104b057600080fd5b806303d29d28146103a757806306fdde03146103c9578063095ea7b3146103f457600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103c76103c2366004612e32565b610be7565b005b3480156103d557600080fd5b506103de610cd3565b6040516103eb9190613056565b60405180910390f35b34801561040057600080fd5b5061041461040f366004612e60565b610d65565b60405190151581526020016103eb565b34801561043057600080fd5b506103c761043f366004612f9c565b610d7b565b34801561045057600080fd5b506103c761045f366004612f9c565b610db3565b34801561047057600080fd5b506104987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103eb565b3480156104bc57600080fd5b506104c6601e5481565b6040519081526020016103eb565b3480156104e057600080fd5b506007546104c6565b3480156104f557600080fd5b50610414610504366004612d77565b60256020526000908152604090205460ff1681565b34801561052557600080fd5b506103c7610534366004612f9c565b610deb565b34801561054557600080fd5b506103c7610554366004612f6a565b610e45565b34801561056557600080fd5b50610414610574366004612df1565b610ed1565b34801561058557600080fd5b506103c7610594366004612f9c565b610f23565b3480156105a557600080fd5b506103c76105b4366004612d77565b610f80565b3480156105c557600080fd5b506104c660225481565b3480156105db57600080fd5b506103c76105ea366004612e8c565b610fcc565b3480156105fb57600080fd5b5060055460405160ff90911681526020016103eb565b34801561061d57600080fd5b506104c660235481565b34801561063357600080fd5b50610414610642366004612e60565b6110f8565b34801561065357600080fd5b506103c7610662366004612f12565b61112f565b34801561067357600080fd5b506103c7610682366004612d77565b6111d0565b34801561069357600080fd5b506104987f000000000000000000000000000000000000000000000000000000000000000081565b3480156106c757600080fd5b5060245461041490610100900460ff1681565b3480156106e657600080fd5b506103c76106f5366004612f6a565b61121e565b34801561070657600080fd5b50610414610715366004612d77565b600e6020526000908152604090205460ff1681565b34801561073657600080fd5b506103c7610745366004612e32565b61125c565b34801561075657600080fd5b506103c7610765366004612d77565b6112b1565b34801561077657600080fd5b50601354601454610791919060ff8082169161010090041683565b6040805193845291151560208401521515908201526060016103eb565b3480156107ba57600080fd5b506103c76107c9366004612f9c565b6112fd565b3480156107da57600080fd5b506104c6601a5481565b3480156107f057600080fd5b506104c66107ff366004612d77565b6001600160a01b03166000908152600a602052604090205490565b34801561082657600080fd5b506103c7611335565b34801561083b57600080fd5b50600854610498906001600160a01b031681565b34801561085b57600080fd5b506104c660215481565b34801561087157600080fd5b506104c6601f5481565b34801561088757600080fd5b506000546001600160a01b0316610498565b3480156108a557600080fd5b506103de6113a9565b3480156108ba57600080fd5b506010546011546012546108d99260ff80821693610100909204169184565b60408051941515855292151560208501529183015260608201526080016103eb565b34801561090757600080fd5b506104c6601b5481565b34801561091d57600080fd5b506103c761092c366004612d77565b6113b8565b34801561093d57600080fd5b506103c761094c366004612ff6565b611408565b34801561095d57600080fd5b5061041461096c366004612e60565b6115ef565b34801561097d57600080fd5b5061041461098c366004612e60565b611626565b34801561099d57600080fd5b506103c76109ac366004612f6a565b611633565b3480156109bd57600080fd5b506103c76109cc366004612f12565b611662565b3480156109dd57600080fd5b506104146109ec366004612db8565b61169f565b3480156109fd57600080fd5b506103c7610a0c366004612f12565b6117e5565b348015610a1d57600080fd5b506104c6601d5481565b348015610a3357600080fd5b506104c660205481565b348015610a4957600080fd5b50600954610498906001600160a01b031681565b348015610a6957600080fd5b506024546104149062010000900460ff1681565b348015610a8957600080fd5b50601554601654601754601854610aa39392919060ff1684565b60408051948552602085019390935291830152151560608201526080016103eb565b348015610ad157600080fd5b506104c6601c5481565b348015610ae757600080fd5b506104c6610af6366004612db8565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b348015610b2d57600080fd5b506103c7610b3c366004612f9c565b611829565b348015610b4d57600080fd5b506104c660195481565b348015610b6357600080fd5b506103c7610b72366004612d77565b611883565b348015610b8357600080fd5b506103c7610b92366004612f4c565b6118ce565b348015610ba357600080fd5b506103c7610bb2366004612d77565b61191c565b348015610bc357600080fd5b50610414610bd2366004612d77565b600f6020526000908152604090205460ff1681565b6000546001600160a01b03163314610c1a5760405162461bcd60e51b8152600401610c11906130ab565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480610c6257506001600160a01b03821630145b80610c9e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b15610ca857600080fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b606060038054610ce2906131c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0e906131c1565b8015610d5b5780601f10610d3057610100808354040283529160200191610d5b565b820191906000526020600020905b815481529060010190602001808311610d3e57829003601f168201915b5050505050905090565b6000610d72338484611a06565b50600192915050565b6000546001600160a01b03163314610da55760405162461bcd60e51b8152600401610c11906130ab565b601992909255601c55601f55565b6000546001600160a01b03163314610ddd5760405162461bcd60e51b8152600401610c11906130ab565b601b92909255601e55602155565b6000546001600160a01b03163314610e155760405162461bcd60e51b8152600401610c11906130ab565b60fa81610e228486613151565b610e2c9190613151565b1115610e3757600080fd5b601f92909255602055602155565b6000546001600160a01b03163314610e6f5760405162461bcd60e51b8152600401610c11906130ab565b6064811115610e7d57600080fd5b60085447906001600160a01b03166108fc6064610e9a858561318b565b610ea49190613169565b6040518115909202916000818181858888f19350505050158015610ecc573d6000803e3d6000fd5b505050565b6000610ede848484611b2a565b6001600160a01b0384166000908152600d6020908152604080832033808552925290912054610f19918691610f149086906131aa565b611a06565b5060019392505050565b6000546001600160a01b03163314610f4d5760405162461bcd60e51b8152600401610c11906130ab565b60fa81610f5a8486613151565b610f649190613151565b1115610f6f57600080fd5b601d91909155601c91909155601e55565b6000546001600160a01b03163314610faa5760405162461bcd60e51b8152600401610c11906130ab565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ff65760405162461bcd60e51b8152600401610c11906130ab565b60005b828110156110f25760008484838181106110155761101561322d565b905060200201602081019061102a9190612d77565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03161415801561107757506001600160a01b0381163014155b80156110b557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b156110df576001600160a01b0381166000908152600f60205260409020805460ff19168415151790555b50806110ea816131fc565b915050610ff9565b50505050565b336000818152600d602090815260408083206001600160a01b03871684529091528120549091610d72918590610f14908690613151565b6000546001600160a01b031633146111595760405162461bcd60e51b8152600401610c11906130ab565b60145460ff1661118457436013556014805460ff191660011790556024805461ff0019166101001790555b6024805462ff00001916620100008315150217905560145460ff166111cd576040517f02ac8168caf2f254b394bd39e19417c5c28124ab89c9bc2d44921b19808e266990600090a15b50565b6000546001600160a01b031633146111fa5760405162461bcd60e51b8152600401610c11906130ab565b6001600160a01b03166000908152600e60205260409020805460ff19166001179055565b6000546001600160a01b031633146112485760405162461bcd60e51b8152600401610c11906130ab565b60125481111561125757600080fd5b601155565b6000546001600160a01b031633146112865760405162461bcd60e51b8152600401610c11906130ab565b6001600160a01b03919091166000908152602560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112db5760405162461bcd60e51b8152600401610c11906130ab565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113275760405162461bcd60e51b8152600401610c11906130ab565b601a92909255601d55602055565b6000546001600160a01b0316331461135f5760405162461bcd60e51b8152600401610c11906130ab565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060048054610ce2906131c1565b6000546001600160a01b031633146113e25760405162461bcd60e51b8152600401610c11906130ab565b306000908152600a602052604081205460006022559050611404308383611b2a565b5050565b6000546001600160a01b031633146114325760405162461bcd60e51b8152600401610c11906130ab565b6103e86007546114429190613169565b8688600754611451919061318b565b61145b9190613169565b10156114c55760405162461bcd60e51b815260206004820152603360248201527f4d6178205472616e73616374696f6e206d7573742062652061626f766520302e60448201527218929037b3103a37ba30b61039bab838363c9760691b6064820152608401610c11565b6103e86007546114d59190613169565b84866007546114e4919061318b565b6114ee9190613169565b10156115535760405162461bcd60e51b815260206004820152602e60248201527f4d61782057616c6c6574206d7573742062652061626f766520302e3125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610c11565b60008688600754611564919061318b565b61156e9190613169565b905060008587600754611581919061318b565b61158b9190613169565b90506000848660075461159e919061318b565b6115a89190613169565b60408051608081018252858152602081018590529081018290529415156060909501859052601593909355506016556017556018805460ff19169091179055505050505050565b336000818152600d602090815260408083206001600160a01b03871684529091528120549091610d72918590610f149086906131aa565b6000610d72338484611b2a565b6000546001600160a01b0316331461165d5760405162461bcd60e51b8152600401610c11906130ab565b602355565b6000546001600160a01b0316331461168c5760405162461bcd60e51b8152600401610c11906130ab565b6018805460ff1916911515919091179055565b600080546001600160a01b031633146116ca5760405162461bcd60e51b8152600401610c11906130ab565b6001600160a01b0383166116dd57600080fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a082319060240160206040518083038186803b15801561171f57600080fd5b505afa158015611733573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117579190612f83565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb90604401602060405180830381600087803b1580156117a557600080fd5b505af11580156117b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117dd9190612f2f565b949350505050565b6000546001600160a01b0316331461180f5760405162461bcd60e51b8152600401610c11906130ab565b602480549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146118535760405162461bcd60e51b8152600401610c11906130ab565b60fa816118608486613151565b61186a9190613151565b111561187557600080fd5b601992909255601a55601b55565b6000546001600160a01b031633146118ad5760405162461bcd60e51b8152600401610c11906130ab565b6001600160a01b03166000908152600e60205260409020805460ff19169055565b6000546001600160a01b031633146118f85760405162461bcd60e51b8152600401610c11906130ab565b6010805461ffff191692151561ff0019169290921761010091151591909102179055565b6000546001600160a01b031633146119465760405162461bcd60e51b8152600401610c11906130ab565b6001600160a01b0381166119ab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c11565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611a685760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c11565b6001600160a01b038216611ac95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c11565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611b8e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c11565b6001600160a01b038216611bf05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c11565b60008111611c525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c11565b6001600160a01b0383166000908152600f602052604090205460ff1615611ca45760405162461bcd60e51b8152600401610c11906020808252600490820152634865686560e01b604082015260600190565b6001600160a01b0382166000908152600f602052604090205460ff1615611cf65760405162461bcd60e51b8152600401610c11906020808252600490820152634865686560e01b604082015260600190565b60245462010000900460ff16611e4c576001600160a01b03831660009081526025602052604090205460ff1680611d4557506001600160a01b03821660009081526025602052604090205460ff165b611d895760405162461bcd60e51b8152602060048201526015602482015274151c985b9cd9995c8e881b9bdd08185b1b1bddd959605a1b6044820152606401610c11565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600a60205260409020541580611e0057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b611e4c5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665723a206e6f20626f64792063616e2073656c6c206e6f7700006044820152606401610c11565b60185460ff161561204e576000546001600160a01b03848116911614801590611e8357506000546001600160a01b03838116911614155b80611eac57506001600160a01b03821661dead14801590611eac57506001600160a01b03821615155b1561204e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480611f2257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b15611f7d576001600160a01b0382166000908152600e602052604090205460ff16158015611f6957506001600160a01b0383166000908152600e602052604090205460ff16155b15611f7d57601554811115611f7d57600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614158015611ff157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b1561204e576001600160a01b0382166000908152600e602052604090205460ff1661204e5760165481612039846001600160a01b03166000908152600a602052604090205490565b6120439190613151565b111561204e57600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480156120c157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b80156120e657506001600160a01b0382166000908152600e602052604090205460ff16155b156121465760105460ff1615612141576001600160a01b0382166000908152600b6020526040902054421161211a57600080fd5b6011546121279042613151565b6001600160a01b0383166000908152600b60205260409020555b612202565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141580156121a157506001600160a01b0383166000908152600e602052604090205460ff16155b1561220257601054610100900460ff1615612202576001600160a01b0383166000908152600c60205260409020544210156121db57600080fd5b6011546121e89042613151565b6001600160a01b0384166000908152600c60205260409020555b60245460ff1615801561224757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b801561225a5750602454610100900460ff165b156122c957306000908152600a60205260409020546017548111156122c75760175460225411156122965760175461229190612320565b6122c7565b6000602054601d54601a546122ab9190613151565b6122b59190613151565b11156122c7576017546122c7906123eb565b505b6001600160a01b0383166000908152600e602052604090205460019060ff168061230b57506001600160a01b0383166000908152600e602052604090205460ff165b15612314575060005b6110f28484848461248b565b6024805460ff1916600117905547600061233b600284613169565b9050600061234982856131aa565b9050811561235a5761235a8261292d565b47600061236785836131aa565b90506000831180156123795750600081115b156123c2576123888382612b3a565b60408051848152602081018390527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15b85602260008282546123d491906131aa565b90915550506024805460ff19169055505050505050565b6024805460ff191660011790558015612407576124078161292d565b47801561247d576008546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612448573d6000803e3d6000fd5b506040518181527f4d5c7c4ddada689ed3a12644234d0a26ec361d8a6f55c9b05805a57bd636f14b9060200160405180910390a15b50506024805460ff19169055565b60008060008060009050600080600080601360010160019054906101000a900460ff16156125a15760145460ff1680156124c6575060135415155b80156124e057506023546013546124dd9190613151565b43115b156124f5576014805461ff00191690556125a1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168c6001600160a01b031614801561256857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b031614155b801561258d57506001600160a01b038b166000908152600e602052604090205460ff16155b156125a15761259d8b6001612c7c565b5060015b881561274c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168c6001600160a01b031614156125f557601c549750601d549650601e549550612653565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b0316141561264357601f54975060205496506021549550612653565b6019549750601a549650601b5495505b8015612667576103b6975060009650600095505b6103e886612675898b613151565b61267f9190613151565b612689908c61318b565b6126939190613169565b91506000866126a2898b613151565b6126ac9190613151565b111561273457856126bd888a613151565b6126c79190613151565b6126d1898461318b565b6126db9190613169565b9450856126e8888a613151565b6126f29190613151565b6126fc888461318b565b6127069190613169565b935085612713888a613151565b61271d9190613151565b612727878461318b565b6127319190613169565b92505b84602260008282546127469190613151565b90915550505b6000836127598688613151565b6127639190613151565b61276d908c6131aa565b6001600160a01b038e166000908152600a6020526040812080549293508d9290919061279a9084906131aa565b909155506127aa90508587613151565b306000908152600a6020526040812080549091906127c9908490613151565b909155503090506001600160a01b038e167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612805888a613151565b60405190815260200160405180910390a36001600160a01b038c166000908152600a60205260408120805483929061283e908490613151565b925050819055508b6001600160a01b03168d6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161288a91815260200190565b60405180910390a3831561291e5761dead6000908152600a6020527f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb80548692906128d6908490613151565b909155505060405184815261dead906001600160a01b038f16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505050505050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106129625761296261322d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156129db57600080fd5b505afa1580156129ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a139190612d9b565b81600181518110612a2657612a2661322d565b6001600160a01b03928316602091820292909201810191909152306000908152600d825260408082207f00000000000000000000000000000000000000000000000000000000000000009094168252929091522054821115612aaf57612aaf307f0000000000000000000000000000000000000000000000000000000000000000600019611a06565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612b049085906000908690309042906004016130e0565b600060405180830381600087803b158015612b1e57600080fd5b505af1158015612b32573d6000803e3d6000fd5b505050505050565b306000908152600d602090815260408083207f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168452909152902054821115612bb257612bb2307f0000000000000000000000000000000000000000000000000000000000000000600019611a06565b60095460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000009091169063f305d71990839060c4016060604051808303818588803b158015612c3c57600080fd5b505af1158015612c50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c759190612fc8565b5050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480612cc457506001600160a01b03821630145b80612d0057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b15612d0a57600080fd5b60018115151415611404576001600160a01b0382166000818152600f6020908152604091829020805460ff191660011790558151928352831515908301527f2a435d5b7631d89e0f8a99c9c5b5cf1a1e49e467b6a14ab37d5891cdeabde6a5910160405180910390a15050565b600060208284031215612d8957600080fd5b8135612d9481613243565b9392505050565b600060208284031215612dad57600080fd5b8151612d9481613243565b60008060408385031215612dcb57600080fd5b8235612dd681613243565b91506020830135612de681613243565b809150509250929050565b600080600060608486031215612e0657600080fd5b8335612e1181613243565b92506020840135612e2181613243565b929592945050506040919091013590565b60008060408385031215612e4557600080fd5b8235612e5081613243565b91506020830135612de681613258565b60008060408385031215612e7357600080fd5b8235612e7e81613243565b946020939093013593505050565b600080600060408486031215612ea157600080fd5b833567ffffffffffffffff80821115612eb957600080fd5b818601915086601f830112612ecd57600080fd5b813581811115612edc57600080fd5b8760208260051b8501011115612ef157600080fd5b60209283019550935050840135612f0781613258565b809150509250925092565b600060208284031215612f2457600080fd5b8135612d9481613258565b600060208284031215612f4157600080fd5b8151612d9481613258565b60008060408385031215612f5f57600080fd5b8235612e5081613258565b600060208284031215612f7c57600080fd5b5035919050565b600060208284031215612f9557600080fd5b5051919050565b600080600060608486031215612fb157600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215612fdd57600080fd5b8351925060208401519150604084015190509250925092565b600080600080600080600060e0888a03121561301157600080fd5b873596506020880135955060408801359450606088013593506080880135925060a0880135915060c088013561304681613258565b8091505092959891949750929550565b600060208083528351808285015260005b8181101561308357858101830151858201604001528201613067565b81811115613095576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131305784516001600160a01b03168352938301939183019160010161310b565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561316457613164613217565b500190565b60008261318657634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156131a5576131a5613217565b500290565b6000828210156131bc576131bc613217565b500390565b600181811c908216806131d557607f821691505b602082108114156131f657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561321057613210613217565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146111cd57600080fd5b80151581146111cd57600080fdfea26469706673582212205883e7c60a15c36f67efdda65237671435350d20b2ac5684ab60c8833718075164736f6c634300080700334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65720000000000000000000000004db1f45d31cbed842187d71962cd75eaad29f53d
Deployed Bytecode
0x60806040526004361061039b5760003560e01c806370a08231116101dc578063c40fedc611610102578063dc44b6a0116100a0578063ea2f0b371161006f578063ea2f0b3714610b57578063f23175ff14610b77578063f2fde38b14610b97578063fe575a8714610bb757600080fd5b8063dc44b6a014610ac5578063dd62ed3e14610adb578063e7c8923214610b21578063ea08d30b14610b4157600080fd5b8063c8607952116100dc578063c860795214610a27578063d469801614610a3d578063d621e81314610a5d578063d8913ae314610a7d57600080fd5b8063c40fedc6146109d1578063c49b9a80146109f1578063c5d2418914610a1157600080fd5b806395f93d481161017a578063a457c2d711610149578063a457c2d714610951578063a9059cbb14610971578063b18e984014610991578063b5ec1941146109b157600080fd5b806395f93d48146108ae578063980ba05e146108fb5780639be953b314610911578063a16df9d81461093157600080fd5b80637abdc1ca116101b65780637abdc1ca1461084f57806388790a68146108655780638da5cb5b1461087b57806395d89b411461089957600080fd5b806370a08231146107e4578063715018a61461081a57806375f0a8741461082f57600080fd5b80632e0563a3116102c15780634a74bb021161025f5780635d098b381161022e5780635d098b381461074a5780635db447571461076a578063645b2571146107ae5780636cbdd5e3146107ce57600080fd5b80634a74bb02146106bb5780634fc3f41a146106da5780635342acb4146106fa5780635b8138f61461072a57600080fd5b8063395093511161029b57806339509351146106275780633bec2bf314610647578063437823ec1461066757806349bd5a5e1461068757600080fd5b80632e0563a3146105cf578063313ce567146105ef578063350e96c81461061157600080fd5b806318160ddd1161033957806323b872dd1161030857806323b872dd1461055957806325519cf214610579578063296f0a0c146105995780632aff03b7146105b957600080fd5b806318160ddd146104d45780631c66cb6d146104e95780631d865c30146105195780631da1db5e1461053957600080fd5b8063098b306611610375578063098b3066146104245780630e4e411c146104445780631694505e1461046457806316f2f1a8146104b057600080fd5b806303d29d28146103a757806306fdde03146103c9578063095ea7b3146103f457600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103c76103c2366004612e32565b610be7565b005b3480156103d557600080fd5b506103de610cd3565b6040516103eb9190613056565b60405180910390f35b34801561040057600080fd5b5061041461040f366004612e60565b610d65565b60405190151581526020016103eb565b34801561043057600080fd5b506103c761043f366004612f9c565b610d7b565b34801561045057600080fd5b506103c761045f366004612f9c565b610db3565b34801561047057600080fd5b506104987f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016103eb565b3480156104bc57600080fd5b506104c6601e5481565b6040519081526020016103eb565b3480156104e057600080fd5b506007546104c6565b3480156104f557600080fd5b50610414610504366004612d77565b60256020526000908152604090205460ff1681565b34801561052557600080fd5b506103c7610534366004612f9c565b610deb565b34801561054557600080fd5b506103c7610554366004612f6a565b610e45565b34801561056557600080fd5b50610414610574366004612df1565b610ed1565b34801561058557600080fd5b506103c7610594366004612f9c565b610f23565b3480156105a557600080fd5b506103c76105b4366004612d77565b610f80565b3480156105c557600080fd5b506104c660225481565b3480156105db57600080fd5b506103c76105ea366004612e8c565b610fcc565b3480156105fb57600080fd5b5060055460405160ff90911681526020016103eb565b34801561061d57600080fd5b506104c660235481565b34801561063357600080fd5b50610414610642366004612e60565b6110f8565b34801561065357600080fd5b506103c7610662366004612f12565b61112f565b34801561067357600080fd5b506103c7610682366004612d77565b6111d0565b34801561069357600080fd5b506104987f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da8281565b3480156106c757600080fd5b5060245461041490610100900460ff1681565b3480156106e657600080fd5b506103c76106f5366004612f6a565b61121e565b34801561070657600080fd5b50610414610715366004612d77565b600e6020526000908152604090205460ff1681565b34801561073657600080fd5b506103c7610745366004612e32565b61125c565b34801561075657600080fd5b506103c7610765366004612d77565b6112b1565b34801561077657600080fd5b50601354601454610791919060ff8082169161010090041683565b6040805193845291151560208401521515908201526060016103eb565b3480156107ba57600080fd5b506103c76107c9366004612f9c565b6112fd565b3480156107da57600080fd5b506104c6601a5481565b3480156107f057600080fd5b506104c66107ff366004612d77565b6001600160a01b03166000908152600a602052604090205490565b34801561082657600080fd5b506103c7611335565b34801561083b57600080fd5b50600854610498906001600160a01b031681565b34801561085b57600080fd5b506104c660215481565b34801561087157600080fd5b506104c6601f5481565b34801561088757600080fd5b506000546001600160a01b0316610498565b3480156108a557600080fd5b506103de6113a9565b3480156108ba57600080fd5b506010546011546012546108d99260ff80821693610100909204169184565b60408051941515855292151560208501529183015260608201526080016103eb565b34801561090757600080fd5b506104c6601b5481565b34801561091d57600080fd5b506103c761092c366004612d77565b6113b8565b34801561093d57600080fd5b506103c761094c366004612ff6565b611408565b34801561095d57600080fd5b5061041461096c366004612e60565b6115ef565b34801561097d57600080fd5b5061041461098c366004612e60565b611626565b34801561099d57600080fd5b506103c76109ac366004612f6a565b611633565b3480156109bd57600080fd5b506103c76109cc366004612f12565b611662565b3480156109dd57600080fd5b506104146109ec366004612db8565b61169f565b3480156109fd57600080fd5b506103c7610a0c366004612f12565b6117e5565b348015610a1d57600080fd5b506104c6601d5481565b348015610a3357600080fd5b506104c660205481565b348015610a4957600080fd5b50600954610498906001600160a01b031681565b348015610a6957600080fd5b506024546104149062010000900460ff1681565b348015610a8957600080fd5b50601554601654601754601854610aa39392919060ff1684565b60408051948552602085019390935291830152151560608201526080016103eb565b348015610ad157600080fd5b506104c6601c5481565b348015610ae757600080fd5b506104c6610af6366004612db8565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b348015610b2d57600080fd5b506103c7610b3c366004612f9c565b611829565b348015610b4d57600080fd5b506104c660195481565b348015610b6357600080fd5b506103c7610b72366004612d77565b611883565b348015610b8357600080fd5b506103c7610b92366004612f4c565b6118ce565b348015610ba357600080fd5b506103c7610bb2366004612d77565b61191c565b348015610bc357600080fd5b50610414610bd2366004612d77565b600f6020526000908152604090205460ff1681565b6000546001600160a01b03163314610c1a5760405162461bcd60e51b8152600401610c11906130ab565b60405180910390fd5b7f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b0316826001600160a01b03161480610c6257506001600160a01b03821630145b80610c9e57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b0316145b15610ca857600080fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b606060038054610ce2906131c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0e906131c1565b8015610d5b5780601f10610d3057610100808354040283529160200191610d5b565b820191906000526020600020905b815481529060010190602001808311610d3e57829003601f168201915b5050505050905090565b6000610d72338484611a06565b50600192915050565b6000546001600160a01b03163314610da55760405162461bcd60e51b8152600401610c11906130ab565b601992909255601c55601f55565b6000546001600160a01b03163314610ddd5760405162461bcd60e51b8152600401610c11906130ab565b601b92909255601e55602155565b6000546001600160a01b03163314610e155760405162461bcd60e51b8152600401610c11906130ab565b60fa81610e228486613151565b610e2c9190613151565b1115610e3757600080fd5b601f92909255602055602155565b6000546001600160a01b03163314610e6f5760405162461bcd60e51b8152600401610c11906130ab565b6064811115610e7d57600080fd5b60085447906001600160a01b03166108fc6064610e9a858561318b565b610ea49190613169565b6040518115909202916000818181858888f19350505050158015610ecc573d6000803e3d6000fd5b505050565b6000610ede848484611b2a565b6001600160a01b0384166000908152600d6020908152604080832033808552925290912054610f19918691610f149086906131aa565b611a06565b5060019392505050565b6000546001600160a01b03163314610f4d5760405162461bcd60e51b8152600401610c11906130ab565b60fa81610f5a8486613151565b610f649190613151565b1115610f6f57600080fd5b601d91909155601c91909155601e55565b6000546001600160a01b03163314610faa5760405162461bcd60e51b8152600401610c11906130ab565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ff65760405162461bcd60e51b8152600401610c11906130ab565b60005b828110156110f25760008484838181106110155761101561322d565b905060200201602081019061102a9190612d77565b90507f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b0316816001600160a01b03161415801561107757506001600160a01b0381163014155b80156110b557507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316816001600160a01b031614155b156110df576001600160a01b0381166000908152600f60205260409020805460ff19168415151790555b50806110ea816131fc565b915050610ff9565b50505050565b336000818152600d602090815260408083206001600160a01b03871684529091528120549091610d72918590610f14908690613151565b6000546001600160a01b031633146111595760405162461bcd60e51b8152600401610c11906130ab565b60145460ff1661118457436013556014805460ff191660011790556024805461ff0019166101001790555b6024805462ff00001916620100008315150217905560145460ff166111cd576040517f02ac8168caf2f254b394bd39e19417c5c28124ab89c9bc2d44921b19808e266990600090a15b50565b6000546001600160a01b031633146111fa5760405162461bcd60e51b8152600401610c11906130ab565b6001600160a01b03166000908152600e60205260409020805460ff19166001179055565b6000546001600160a01b031633146112485760405162461bcd60e51b8152600401610c11906130ab565b60125481111561125757600080fd5b601155565b6000546001600160a01b031633146112865760405162461bcd60e51b8152600401610c11906130ab565b6001600160a01b03919091166000908152602560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112db5760405162461bcd60e51b8152600401610c11906130ab565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113275760405162461bcd60e51b8152600401610c11906130ab565b601a92909255601d55602055565b6000546001600160a01b0316331461135f5760405162461bcd60e51b8152600401610c11906130ab565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060048054610ce2906131c1565b6000546001600160a01b031633146113e25760405162461bcd60e51b8152600401610c11906130ab565b306000908152600a602052604081205460006022559050611404308383611b2a565b5050565b6000546001600160a01b031633146114325760405162461bcd60e51b8152600401610c11906130ab565b6103e86007546114429190613169565b8688600754611451919061318b565b61145b9190613169565b10156114c55760405162461bcd60e51b815260206004820152603360248201527f4d6178205472616e73616374696f6e206d7573742062652061626f766520302e60448201527218929037b3103a37ba30b61039bab838363c9760691b6064820152608401610c11565b6103e86007546114d59190613169565b84866007546114e4919061318b565b6114ee9190613169565b10156115535760405162461bcd60e51b815260206004820152602e60248201527f4d61782057616c6c6574206d7573742062652061626f766520302e3125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610c11565b60008688600754611564919061318b565b61156e9190613169565b905060008587600754611581919061318b565b61158b9190613169565b90506000848660075461159e919061318b565b6115a89190613169565b60408051608081018252858152602081018590529081018290529415156060909501859052601593909355506016556017556018805460ff19169091179055505050505050565b336000818152600d602090815260408083206001600160a01b03871684529091528120549091610d72918590610f149086906131aa565b6000610d72338484611b2a565b6000546001600160a01b0316331461165d5760405162461bcd60e51b8152600401610c11906130ab565b602355565b6000546001600160a01b0316331461168c5760405162461bcd60e51b8152600401610c11906130ab565b6018805460ff1916911515919091179055565b600080546001600160a01b031633146116ca5760405162461bcd60e51b8152600401610c11906130ab565b6001600160a01b0383166116dd57600080fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a082319060240160206040518083038186803b15801561171f57600080fd5b505afa158015611733573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117579190612f83565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb90604401602060405180830381600087803b1580156117a557600080fd5b505af11580156117b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117dd9190612f2f565b949350505050565b6000546001600160a01b0316331461180f5760405162461bcd60e51b8152600401610c11906130ab565b602480549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146118535760405162461bcd60e51b8152600401610c11906130ab565b60fa816118608486613151565b61186a9190613151565b111561187557600080fd5b601992909255601a55601b55565b6000546001600160a01b031633146118ad5760405162461bcd60e51b8152600401610c11906130ab565b6001600160a01b03166000908152600e60205260409020805460ff19169055565b6000546001600160a01b031633146118f85760405162461bcd60e51b8152600401610c11906130ab565b6010805461ffff191692151561ff0019169290921761010091151591909102179055565b6000546001600160a01b031633146119465760405162461bcd60e51b8152600401610c11906130ab565b6001600160a01b0381166119ab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c11565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611a685760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c11565b6001600160a01b038216611ac95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c11565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611b8e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c11565b6001600160a01b038216611bf05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c11565b60008111611c525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c11565b6001600160a01b0383166000908152600f602052604090205460ff1615611ca45760405162461bcd60e51b8152600401610c11906020808252600490820152634865686560e01b604082015260600190565b6001600160a01b0382166000908152600f602052604090205460ff1615611cf65760405162461bcd60e51b8152600401610c11906020808252600490820152634865686560e01b604082015260600190565b60245462010000900460ff16611e4c576001600160a01b03831660009081526025602052604090205460ff1680611d4557506001600160a01b03821660009081526025602052604090205460ff165b611d895760405162461bcd60e51b8152602060048201526015602482015274151c985b9cd9995c8e881b9bdd08185b1b1bddd959605a1b6044820152606401610c11565b6001600160a01b037f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da82166000908152600a60205260409020541580611e0057507f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b0316826001600160a01b031614155b611e4c5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665723a206e6f20626f64792063616e2073656c6c206e6f7700006044820152606401610c11565b60185460ff161561204e576000546001600160a01b03848116911614801590611e8357506000546001600160a01b03838116911614155b80611eac57506001600160a01b03821661dead14801590611eac57506001600160a01b03821615155b1561204e577f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b0316836001600160a01b03161480611f2257507f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b0316826001600160a01b0316145b15611f7d576001600160a01b0382166000908152600e602052604090205460ff16158015611f6957506001600160a01b0383166000908152600e602052604090205460ff16155b15611f7d57601554811115611f7d57600080fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614158015611ff157507f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b0316826001600160a01b031614155b1561204e576001600160a01b0382166000908152600e602052604090205460ff1661204e5760165481612039846001600160a01b03166000908152600a602052604090205490565b6120439190613151565b111561204e57600080fd5b7f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b0316836001600160a01b03161480156120c157507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b80156120e657506001600160a01b0382166000908152600e602052604090205460ff16155b156121465760105460ff1615612141576001600160a01b0382166000908152600b6020526040902054421161211a57600080fd5b6011546121279042613151565b6001600160a01b0383166000908152600b60205260409020555b612202565b7f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b0316836001600160a01b0316141580156121a157506001600160a01b0383166000908152600e602052604090205460ff16155b1561220257601054610100900460ff1615612202576001600160a01b0383166000908152600c60205260409020544210156121db57600080fd5b6011546121e89042613151565b6001600160a01b0384166000908152600c60205260409020555b60245460ff1615801561224757507f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b0316836001600160a01b031614155b801561225a5750602454610100900460ff165b156122c957306000908152600a60205260409020546017548111156122c75760175460225411156122965760175461229190612320565b6122c7565b6000602054601d54601a546122ab9190613151565b6122b59190613151565b11156122c7576017546122c7906123eb565b505b6001600160a01b0383166000908152600e602052604090205460019060ff168061230b57506001600160a01b0383166000908152600e602052604090205460ff165b15612314575060005b6110f28484848461248b565b6024805460ff1916600117905547600061233b600284613169565b9050600061234982856131aa565b9050811561235a5761235a8261292d565b47600061236785836131aa565b90506000831180156123795750600081115b156123c2576123888382612b3a565b60408051848152602081018390527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15b85602260008282546123d491906131aa565b90915550506024805460ff19169055505050505050565b6024805460ff191660011790558015612407576124078161292d565b47801561247d576008546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612448573d6000803e3d6000fd5b506040518181527f4d5c7c4ddada689ed3a12644234d0a26ec361d8a6f55c9b05805a57bd636f14b9060200160405180910390a15b50506024805460ff19169055565b60008060008060009050600080600080601360010160019054906101000a900460ff16156125a15760145460ff1680156124c6575060135415155b80156124e057506023546013546124dd9190613151565b43115b156124f5576014805461ff00191690556125a1565b7f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b03168c6001600160a01b031614801561256857507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03168b6001600160a01b031614155b801561258d57506001600160a01b038b166000908152600e602052604090205460ff16155b156125a15761259d8b6001612c7c565b5060015b881561274c577f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b03168c6001600160a01b031614156125f557601c549750601d549650601e549550612653565b7f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b03168b6001600160a01b0316141561264357601f54975060205496506021549550612653565b6019549750601a549650601b5495505b8015612667576103b6975060009650600095505b6103e886612675898b613151565b61267f9190613151565b612689908c61318b565b6126939190613169565b91506000866126a2898b613151565b6126ac9190613151565b111561273457856126bd888a613151565b6126c79190613151565b6126d1898461318b565b6126db9190613169565b9450856126e8888a613151565b6126f29190613151565b6126fc888461318b565b6127069190613169565b935085612713888a613151565b61271d9190613151565b612727878461318b565b6127319190613169565b92505b84602260008282546127469190613151565b90915550505b6000836127598688613151565b6127639190613151565b61276d908c6131aa565b6001600160a01b038e166000908152600a6020526040812080549293508d9290919061279a9084906131aa565b909155506127aa90508587613151565b306000908152600a6020526040812080549091906127c9908490613151565b909155503090506001600160a01b038e167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612805888a613151565b60405190815260200160405180910390a36001600160a01b038c166000908152600a60205260408120805483929061283e908490613151565b925050819055508b6001600160a01b03168d6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161288a91815260200190565b60405180910390a3831561291e5761dead6000908152600a6020527f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb80548692906128d6908490613151565b909155505060405184815261dead906001600160a01b038f16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505050505050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106129625761296261322d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156129db57600080fd5b505afa1580156129ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a139190612d9b565b81600181518110612a2657612a2661322d565b6001600160a01b03928316602091820292909201810191909152306000908152600d825260408082207f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9094168252929091522054821115612aaf57612aaf307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600019611a06565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790612b049085906000908690309042906004016130e0565b600060405180830381600087803b158015612b1e57600080fd5b505af1158015612b32573d6000803e3d6000fd5b505050505050565b306000908152600d602090815260408083207f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03168452909152902054821115612bb257612bb2307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600019611a06565b60095460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063f305d71990839060c4016060604051808303818588803b158015612c3c57600080fd5b505af1158015612c50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c759190612fc8565b5050505050565b7f000000000000000000000000498c67b88cdfe42c104d6be5316497532d83da826001600160a01b0316826001600160a01b03161480612cc457506001600160a01b03821630145b80612d0057507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b0316145b15612d0a57600080fd5b60018115151415611404576001600160a01b0382166000818152600f6020908152604091829020805460ff191660011790558151928352831515908301527f2a435d5b7631d89e0f8a99c9c5b5cf1a1e49e467b6a14ab37d5891cdeabde6a5910160405180910390a15050565b600060208284031215612d8957600080fd5b8135612d9481613243565b9392505050565b600060208284031215612dad57600080fd5b8151612d9481613243565b60008060408385031215612dcb57600080fd5b8235612dd681613243565b91506020830135612de681613243565b809150509250929050565b600080600060608486031215612e0657600080fd5b8335612e1181613243565b92506020840135612e2181613243565b929592945050506040919091013590565b60008060408385031215612e4557600080fd5b8235612e5081613243565b91506020830135612de681613258565b60008060408385031215612e7357600080fd5b8235612e7e81613243565b946020939093013593505050565b600080600060408486031215612ea157600080fd5b833567ffffffffffffffff80821115612eb957600080fd5b818601915086601f830112612ecd57600080fd5b813581811115612edc57600080fd5b8760208260051b8501011115612ef157600080fd5b60209283019550935050840135612f0781613258565b809150509250925092565b600060208284031215612f2457600080fd5b8135612d9481613258565b600060208284031215612f4157600080fd5b8151612d9481613258565b60008060408385031215612f5f57600080fd5b8235612e5081613258565b600060208284031215612f7c57600080fd5b5035919050565b600060208284031215612f9557600080fd5b5051919050565b600080600060608486031215612fb157600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215612fdd57600080fd5b8351925060208401519150604084015190509250925092565b600080600080600080600060e0888a03121561301157600080fd5b873596506020880135955060408801359450606088013593506080880135925060a0880135915060c088013561304681613258565b8091505092959891949750929550565b600060208083528351808285015260005b8181101561308357858101830151858201604001528201613067565b81811115613095576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131305784516001600160a01b03168352938301939183019160010161310b565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561316457613164613217565b500190565b60008261318657634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156131a5576131a5613217565b500290565b6000828210156131bc576131bc613217565b500390565b600181811c908216806131d557607f821691505b602082108114156131f657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561321057613210613217565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146111cd57600080fd5b80151581146111cd57600080fdfea26469706673582212205883e7c60a15c36f67efdda65237671435350d20b2ac5684ab60c8833718075164736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004db1f45d31cbed842187d71962cd75eaad29f53d
-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0x4DB1F45D31cBED842187d71962cd75eAAD29f53D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004db1f45d31cbed842187d71962cd75eaad29f53d
Deployed Bytecode Sourcemap
14487:20568:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23233:264;;;;;;;;;;-1:-1:-1;23233:264:0;;;;;:::i;:::-;;:::i;:::-;;18503:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19159:161;;;;;;;;;;-1:-1:-1;19159:161:0;;;;;:::i;:::-;;:::i;:::-;;;7416:14:1;;7409:22;7391:41;;7379:2;7364:18;19159:161:0;7251:187:1;20231:225:0;;;;;;;;;;-1:-1:-1;20231:225:0;;;;;:::i;:::-;;:::i;20697:205::-;;;;;;;;;;-1:-1:-1;20697:205:0;;;;;:::i;:::-;;:::i;16519:51::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5803:32:1;;;5785:51;;5773:2;5758:18;16519:51:0;5639:203:1;16292:26:0;;;;;;;;;;;;;;;;;;;13514:25:1;;;13502:2;13487:18;16292:26:0;13368:177:1;18780:95:0;;;;;;;;;;-1:-1:-1;18860:7:0;;18780:95;;16731:48;;;;;;;;;;-1:-1:-1;16731:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19328:289;;;;;;;;;;-1:-1:-1;19328:289:0;;;;;:::i;:::-;;:::i;26267:285::-;;;;;;;;;;-1:-1:-1;26267:285:0;;;;;:::i;:::-;;:::i;28332:348::-;;;;;;;;;;-1:-1:-1;28332:348:0;;;;;:::i;:::-;;:::i;19625:285::-;;;;;;;;;;-1:-1:-1;19625:285:0;;;;;:::i;:::-;;:::i;21234:116::-;;;;;;;;;;-1:-1:-1;21234:116:0;;;;;:::i;:::-;;:::i;16441:31::-;;;;;;;;;;;;;;;;23505:389;;;;;;;;;;-1:-1:-1;23505:389:0;;;;;:::i;:::-;;:::i;18689:83::-;;;;;;;;;;-1:-1:-1;18755:9:0;;18689:83;;18755:9;;;;15680:36:1;;15668:2;15653:18;18689:83:0;15538:184:1;16481:29:0;;;;;;;;;;;;;;;;22674:266;;;;;;;;;;-1:-1:-1;22674:266:0;;;;;:::i;:::-;;:::i;22074:354::-;;;;;;;;;;-1:-1:-1;22074:354:0;;;;;:::i;:::-;;:::i;24360:110::-;;;;;;;;;;-1:-1:-1;24360:110:0;;;;;:::i;:::-;;:::i;16577:38::-;;;;;;;;;;;;;;;16658:33;;;;;;;;;;-1:-1:-1;16658:33:0;;;;;;;;;;;20910:161;;;;;;;;;;-1:-1:-1;20910:161:0;;;;;:::i;:::-;;:::i;15127:49::-;;;;;;;;;;-1:-1:-1;15127:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22540:126;;;;;;;;;;-1:-1:-1;22540:126:0;;;;;:::i;:::-;;:::i;21079:147::-;;;;;;;;;;-1:-1:-1;21079:147:0;;;;;:::i;:::-;;:::i;15734:153::-;;;;;;;;;;-1:-1:-1;15734:153:0;;;;;;;;;;;;;;;;;;;;;;13740:25:1;;;13808:14;;13801:22;13796:2;13781:18;;13774:50;13867:14;13860:22;13840:18;;;13833:50;13728:2;13713:18;15734:153:0;13550:339:1;20464:225:0;;;;;;;;;;-1:-1:-1;20464:225:0;;;;;:::i;:::-;;:::i;16133:36::-;;;;;;;;;;;;;;;;19034:117;;;;;;;;;;-1:-1:-1;19034:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;19127:16:0;19100:7;19127:16;;;:7;:16;;;;;;;19034:117;4576:148;;;;;;;;;;;;;:::i;14810:38::-;;;;;;;;;;-1:-1:-1;14810:38:0;;;;-1:-1:-1;;;;;14810:38:0;;;16405:27;;;;;;;;;;;;;;;;16327:32;;;;;;;;;;;;;;;;4362:79;;;;;;;;;;-1:-1:-1;4400:7:0;4427:6;-1:-1:-1;;;;;4427:6:0;4362:79;;18594:87;;;;;;;;;;;;;:::i;15396:217::-;;;;;;;;;;-1:-1:-1;15396:217:0;;;;;;;;;;;;;;;;;;;;;;;;;7687:14:1;;7680:22;7662:41;;7746:14;;7739:22;7734:2;7719:18;;7712:50;7778:18;;;7771:34;7836:2;7821:18;;7814:34;7649:3;7634:19;15396:217:0;7443:411:1;16176:31:0;;;;;;;;;;;;;;;;26560:206;;;;;;;;;;-1:-1:-1;26560:206:0;;;;;:::i;:::-;;:::i;21358:708::-;;;;;;;;;;-1:-1:-1;21358:708:0;;;;;:::i;:::-;;:::i;22948:277::-;;;;;;;;;;-1:-1:-1;22948:277:0;;;;;:::i;:::-;;:::i;31759:167::-;;;;;;;;;;-1:-1:-1;31759:167:0;;;;;:::i;:::-;;:::i;22436:96::-;;;;;;;;;;-1:-1:-1;22436:96:0;;;;;:::i;:::-;;:::i;24262:90::-;;;;;;;;;;-1:-1:-1;24262:90:0;;;;;:::i;:::-;;:::i;26774:285::-;;;;;;;;;;-1:-1:-1;26774:285:0;;;;;:::i;:::-;;:::i;24595:117::-;;;;;;;;;;-1:-1:-1;24595:117:0;;;;;:::i;:::-;;:::i;16254:31::-;;;;;;;;;;;;;;;;16366:32;;;;;;;;;;;;;;;;14855:30;;;;;;;;;;-1:-1:-1;14855:30:0;;;;-1:-1:-1;;;;;14855:30:0;;;16700:24;;;;;;;;;;-1:-1:-1;16700:24:0;;;;;;;;;;;16052:29;;;;;;;;;;-1:-1:-1;16052:29:0;;;;;;;;;;;;;;;;;;;;;15357:25:1;;;15413:2;15398:18;;15391:34;;;;15441:18;;;15434:34;15511:14;15504:22;15499:2;15484:18;;15477:50;15344:3;15329:19;16052:29:0;15132:401:1;16216:31:0;;;;;;;;;;;;;;;;18883:143;;;;;;;;;;-1:-1:-1;18883:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;18991:18:0;;;18964:7;18991:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18883:143;19918:305;;;;;;;;;;-1:-1:-1;19918:305:0;;;;;:::i;:::-;;:::i;16090:36::-;;;;;;;;;;;;;;;;24478:109;;;;;;;;;;-1:-1:-1;24478:109:0;;;;;:::i;:::-;;:::i;34872:180::-;;;;;;;;;;-1:-1:-1;34872:180:0;;;;;:::i;:::-;;:::i;4732:281::-;;;;;;;;;;-1:-1:-1;4732:281:0;;;;;:::i;:::-;;:::i;15183:45::-;;;;;;;;;;-1:-1:-1;15183:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23233:264;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;;;;;;;;;23340:13:::1;-1:-1:-1::0;;;;;23329:24:0::1;:7;-1:-1:-1::0;;;;;23329:24:0::1;;:52;;;-1:-1:-1::0;;;;;;23357:24:0;::::1;23376:4;23357:24;23329:52;:91;;;;23404:15;-1:-1:-1::0;;;;;23385:35:0::1;:7;-1:-1:-1::0;;;;;23385:35:0::1;;23329:91;23326:107;;;23423:8;::::0;::::1;23326:107;-1:-1:-1::0;;;;;23453:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:36;;-1:-1:-1;;23453:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23233:264::o;18503:83::-;18540:13;18573:5;18566:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18503:83;:::o;19159:161::-;19234:4;19251:39;979:10;19274:7;19283:6;19251:8;:39::i;:::-;-1:-1:-1;19308:4:0;19159:161;;;;:::o;20231:225::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;20339:21:::1;:35:::0;;;;20385:16:::1;:25:::0;20421:17:::1;:27:::0;20231:225::o;20697:205::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;20800:16:::1;:30:::0;;;;20841:11:::1;:20:::0;20872:12:::1;:22:::0;20697:205::o;19328:289::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;19486:3:::1;19475:7:::0;19445:27:::1;19460:12:::0;19445;:27:::1;:::i;:::-;:37;;;;:::i;:::-;:44;;19437:53;;;::::0;::::1;;19501:17;:32:::0;;;;19544:17:::1;:32:::0;19587:12:::1;:22:::0;19328:289::o;26267:285::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;26378:3:::1;26358:16;:23;;26350:32;;;::::0;::::1;;26453:15;::::0;26413:21:::1;::::0;-1:-1:-1;;;;;26453:15:0::1;26445:99;26529:3;26494:30;26507:16:::0;26413:21;26494:30:::1;:::i;:::-;26493:40;;;;:::i;:::-;26445:99;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;26339:213;26267:285:::0;:::o;28332:348::-;28428:4;28445:36;28455:6;28463:9;28474:6;28445:9;:36::i;:::-;-1:-1:-1;;;;;28563:19:0;;;;;;:11;:19;;;;;;;;979:10;28563:33;;;;;;;;;28492:158;;28515:6;;28563:76;;28618:6;;28563:76;:::i;:::-;28492:8;:158::i;:::-;-1:-1:-1;28668:4:0;28332:348;;;;;:::o;19625:285::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;19782:3:::1;19771:7:::0;19741:27:::1;19756:12:::0;19741;:27:::1;:::i;:::-;:37;;;;:::i;:::-;:44;;19733:53;;;::::0;::::1;;19797:16;:31:::0;;;;19839:16:::1;:31:::0;;;;19881:11:::1;:21:::0;19625:285::o;21234:116::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;21313:15:::1;:29:::0;;-1:-1:-1;;;;;;21313:29:0::1;-1:-1:-1::0;;;;;21313:29:0;;;::::1;::::0;;;::::1;::::0;;21234:116::o;23505:389::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;23613:9:::1;23608:279;23624:19:::0;;::::1;23608:279;;;23665:15;23683:8;;23692:1;23683:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;23665:29;;23723:13;-1:-1:-1::0;;;;;23712:24:0::1;:7;-1:-1:-1::0;;;;;23712:24:0::1;;;:52;;;;-1:-1:-1::0;;;;;;23740:24:0;::::1;23759:4;23740:24;;23712:52;:91;;;;;23787:15;-1:-1:-1::0;;;;;23768:35:0::1;:7;-1:-1:-1::0;;;;;23768:35:0::1;;;23712:91;23709:167;;;-1:-1:-1::0;;;;;23824:22:0;::::1;;::::0;;;:13:::1;:22;::::0;;;;:36;;-1:-1:-1;;23824:36:0::1;::::0;::::1;;;::::0;;23709:167:::1;-1:-1:-1::0;23645:3:0;::::1;::::0;::::1;:::i;:::-;;;;23608:279;;;;23505:389:::0;;;:::o;22674:266::-;979:10;22762:4;22850:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;22850:34:0;;;;;;;;;;22762:4;;22778:132;;22828:7;;22850:49;;22888:10;;22850:49;:::i;22074:354::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;22146:18;;::::1;;22141:170;;22204:12;22181:9;:35:::0;22231:18;:25;;-1:-1:-1;;22231:25:0::1;22252:4;22231:25;::::0;;22271:21:::1;:28:::0;;-1:-1:-1;;22271:28:0::1;22231:25;22271:28;::::0;;22141:170:::1;22323:12;:20:::0;;-1:-1:-1;;22323:20:0::1;::::0;;::::1;;;;::::0;;22361:18;;22323:20:::1;22361:18;22356:65;;22401:8;::::0;::::1;::::0;;;::::1;22356:65;22074:354:::0;:::o;24360:110::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24429:26:0::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;24429:33:0::1;24458:4;24429:33;::::0;;24360:110::o;20910:161::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;20995:26;;20985:36;::::1;;20977:45;;;::::0;::::1;;21033:21:::0;:30;20910:161::o;22540:126::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22628:21:0;;;::::1;;::::0;;;:16:::1;:21;::::0;;;;:30;;-1:-1:-1;;22628:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22540:126::o;21079:147::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;21173:15:::1;:45:::0;;-1:-1:-1;;;;;;21173:45:0::1;-1:-1:-1::0;;;;;21173:45:0;;;::::1;::::0;;;::::1;::::0;;21079:147::o;20464:225::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;20572:21:::1;:35:::0;;;;20618:16:::1;:25:::0;20654:17:::1;:27:::0;20464:225::o;4576:148::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;4683:1:::1;4667:6:::0;;4646:40:::1;::::0;-1:-1:-1;;;;;4667:6:0;;::::1;::::0;4646:40:::1;::::0;4683:1;;4646:40:::1;4714:1;4697:19:::0;;-1:-1:-1;;;;;;4697:19:0::1;::::0;;4576:148::o;18594:87::-;18633:13;18666:7;18659:14;;;;;:::i;26560:206::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;26664:4:::1;26627:16;19127::::0;;;:7;:16;;;;;;26700:1:::1;26681:16;:20:::0;26627:43;-1:-1:-1;26712:38:0::1;26730:4;26737:2:::0;26627:43;26712:9:::1;:38::i;:::-;26616:150;26560:206:::0;:::o;21358:708::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;21543:4:::1;21533:7;;:14;;;;:::i;:::-;21525:3;21518;21508:7;;:13;;;;:::i;:::-;21507:21;;;;:::i;:::-;:41;;21499:105;;;::::0;-1:-1:-1;;;21499:105:0;;11980:2:1;21499:105:0::1;::::0;::::1;11962:21:1::0;12019:2;11999:18;;;11992:30;12058:34;12038:18;;;12031:62;-1:-1:-1;;;12109:18:1;;;12102:49;12168:19;;21499:105:0::1;11778:415:1::0;21499:105:0::1;21659:4;21649:7;;:14;;;;:::i;:::-;21641:3;21634;21624:7;;:13;;;;:::i;:::-;21623:21;;;;:::i;:::-;:41;;21615:100;;;::::0;-1:-1:-1;;;21615:100:0;;10112:2:1;21615:100:0::1;::::0;::::1;10094:21:1::0;10151:2;10131:18;;;10124:30;10190:34;10170:18;;;10163:62;-1:-1:-1;;;10241:18:1;;;10234:44;10295:19;;21615:100:0::1;9910:410:1::0;21615:100:0::1;21726:13;21761:3;21753;21743:7;;:13;;;;:::i;:::-;21742:23;;;;:::i;:::-;21726:39;;21776:13;21810:3;21803;21793:7;;:13;;;;:::i;:::-;21792:21;;;;:::i;:::-;21776:37;;21824:18;21863:2;21856;21846:7;;:12;;;;:::i;:::-;21845:21;;;;:::i;:::-;21890:168;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;::::1;;::::0;;;;;;;21877:10:::1;:181:::0;;;;-1:-1:-1;21877:181:0;;;;;;;-1:-1:-1;;21877:181:0::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;;21358:708:0:o;22948:277::-;979:10;23041:4;23130:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;23130:34:0;;;;;;;;;;23041:4;;23058:137;;23108:7;;23130:54;;23168:15;;23130:54;:::i;31759:167::-;31837:4;31854:42;979:10;31878:9;31889:6;31854:9;:42::i;22436:96::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;22505:10:::1;:19:::0;22436:96::o;24262:90::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;24318:18;:26;;-1:-1:-1;;24318:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24262:90::o;26774:285::-;26857:10;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26888:20:0;::::1;26880:29;;;::::0;::::1;;26947:39;::::0;-1:-1:-1;;;26947:39:0;;26980:4:::1;26947:39;::::0;::::1;5785:51:1::0;26920:24:0::1;::::0;-1:-1:-1;;;;;26947:24:0;::::1;::::0;::::1;::::0;5758:18:1;;26947:39:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27005:46;::::0;-1:-1:-1;;;27005:46:0;;-1:-1:-1;;;;;6552:32:1;;;27005:46:0::1;::::0;::::1;6534:51:1::0;6601:18;;;6594:34;;;26920:66:0;;-1:-1:-1;27005:23:0;;::::1;::::0;::::1;::::0;6507:18:1;;27005:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26997:54:::0;26774:285;-1:-1:-1;;;;26774:285:0:o;24595:117::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;24672:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;24672:32:0;;::::1;::::0;;;::::1;::::0;;24595:117::o;19918:305::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;20080:3:::1;20069:7:::0;20039:27:::1;20054:12:::0;20039;:27:::1;:::i;:::-;:37;;;;:::i;:::-;:44;;20031:53;;;::::0;::::1;;20095:21;:36:::0;;;;20142:21:::1;:36:::0;20189:16:::1;:26:::0;19918:305::o;24478:109::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24545:26:0::1;24574:5;24545:26:::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;24545:34:0::1;::::0;;24478:109::o;34872:180::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;34954:12:::1;:39:::0;;-1:-1:-1;;35004:40:0;34954:39;::::1;;-1:-1:-1::0;;35004:40:0;;;;;34954:39:::1;35004:40:::0;::::1;;::::0;;;::::1;;::::0;;34872:180::o;4732:281::-;4489:6;;-1:-1:-1;;;;;4489:6:0;979:10;4489:22;4481:67;;;;-1:-1:-1;;;4481:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4835:22:0;::::1;4813:110;;;::::0;-1:-1:-1;;;4813:110:0;;9302:2:1;4813:110:0::1;::::0;::::1;9284:21:1::0;9341:2;9321:18;;;9314:30;9380:34;9360:18;;;9353:62;-1:-1:-1;;;9431:18:1;;;9424:36;9477:19;;4813:110:0::1;9100:402:1::0;4813:110:0::1;4960:6;::::0;;4939:38:::1;::::0;-1:-1:-1;;;;;4939:38:0;;::::1;::::0;4960:6;::::1;::::0;4939:38:::1;::::0;::::1;4988:6;:17:::0;;-1:-1:-1;;;;;;4988:17:0::1;-1:-1:-1::0;;;;;4988:17:0;;;::::1;::::0;;;::::1;::::0;;4732:281::o;24814:335::-;-1:-1:-1;;;;;24905:19:0;;24897:68;;;;-1:-1:-1;;;24897:68:0;;12806:2:1;24897:68:0;;;12788:21:1;12845:2;12825:18;;;12818:30;12884:34;12864:18;;;12857:62;-1:-1:-1;;;12935:18:1;;;12928:34;12979:19;;24897:68:0;12604:400:1;24897:68:0;-1:-1:-1;;;;;24984:21:0;;24976:68;;;;-1:-1:-1;;;24976:68:0;;9709:2:1;24976:68:0;;;9691:21:1;9748:2;9728:18;;;9721:30;9787:34;9767:18;;;9760:62;-1:-1:-1;;;9838:18:1;;;9831:32;9880:19;;24976:68:0;9507:398:1;24976:68:0;-1:-1:-1;;;;;25057:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;25109:32;;13514:25:1;;;25109:32:0;;13487:18:1;25109:32:0;;;;;;;24814:335;;;:::o;28692:3059::-;-1:-1:-1;;;;;28780:18:0;;28772:68;;;;-1:-1:-1;;;28772:68:0;;12400:2:1;28772:68:0;;;12382:21:1;12439:2;12419:18;;;12412:30;12478:34;12458:18;;;12451:62;-1:-1:-1;;;12529:18:1;;;12522:35;12574:19;;28772:68:0;12198:401:1;28772:68:0;-1:-1:-1;;;;;28859:16:0;;28851:64;;;;-1:-1:-1;;;28851:64:0;;8898:2:1;28851:64:0;;;8880:21:1;8937:2;8917:18;;;8910:30;8976:34;8956:18;;;8949:62;-1:-1:-1;;;9027:18:1;;;9020:33;9070:19;;28851:64:0;8696:399:1;28851:64:0;28943:1;28934:6;:10;28926:64;;;;-1:-1:-1;;;28926:64:0;;11238:2:1;28926:64:0;;;11220:21:1;11277:2;11257:18;;;11250:30;11316:34;11296:18;;;11289:62;-1:-1:-1;;;11367:18:1;;;11360:39;11416:19;;28926:64:0;11036:405:1;28926:64:0;-1:-1:-1;;;;;29009:19:0;;;;;;:13;:19;;;;;;;;:28;29001:45;;;;-1:-1:-1;;;29001:45:0;;;;;;11648:2:1;11630:21;;;11687:1;11667:18;;;11660:29;-1:-1:-1;;;11720:2:1;11705:18;;11698:34;11764:2;11749:18;;11446:327;29001:45:0;-1:-1:-1;;;;;29065:17:0;;;;;;:13;:17;;;;;;;;:26;29057:43;;;;-1:-1:-1;;;29057:43:0;;;;;;11648:2:1;11630:21;;;11687:1;11667:18;;;11660:29;-1:-1:-1;;;11720:2:1;11705:18;;11698:34;11764:2;11749:18;;11446:327;29057:43:0;29118:12;;;;;;;29113:236;;-1:-1:-1;;;;;29155:22:0;;;;;;:16;:22;;;;;;;;;:46;;-1:-1:-1;;;;;;29181:20:0;;;;;;:16;:20;;;;;;;;29155:46;29147:80;;;;-1:-1:-1;;;29147:80:0;;10888:2:1;29147:80:0;;;10870:21:1;10927:2;10907:18;;;10900:30;-1:-1:-1;;;10946:18:1;;;10939:51;11007:18;;29147:80:0;10686:345:1;29147:80:0;-1:-1:-1;;;;;29260:13:0;19127:16;19100:7;19127:16;;;:7;:16;;;;;;29250:29;;:52;;;29289:13;-1:-1:-1;;;;;29283:19:0;:2;-1:-1:-1;;;;;29283:19:0;;;29250:52;29242:95;;;;-1:-1:-1;;;29242:95:0;;13211:2:1;29242:95:0;;;13193:21:1;13250:2;13230:18;;;13223:30;13289:32;13269:18;;;13262:60;13339:18;;29242:95:0;13009:354:1;29242:95:0;29365:18;;;;29361:694;;;4400:7;4427:6;-1:-1:-1;;;;;29403:15:0;;;4427:6;;29403:15;;;;:32;;-1:-1:-1;4400:7:0;4427:6;-1:-1:-1;;;;;29422:13:0;;;4427:6;;29422:13;;29403:32;:77;;;-1:-1:-1;;;;;;29439:21:0;;29453:6;29439:21;;;;:41;;-1:-1:-1;;;;;;29464:16:0;;;;29439:41;29400:644;;;29527:13;-1:-1:-1;;;;;29519:21:0;:4;-1:-1:-1;;;;;29519:21:0;;:44;;;;29550:13;-1:-1:-1;;;;;29544:19:0;:2;-1:-1:-1;;;;;29544:19:0;;29519:44;29515:257;;;-1:-1:-1;;;;;29610:21:0;;;;;;:17;:21;;;;;;;;29609:22;:50;;;;-1:-1:-1;;;;;;29636:23:0;;;;;;:17;:23;;;;;;;;29635:24;29609:50;29606:147;;;29706:10;:22;29696:32;;;29688:41;;;;;;29807:15;-1:-1:-1;;;;;29793:30:0;:2;-1:-1:-1;;;;;29793:30:0;;;:53;;;;;29833:13;-1:-1:-1;;;;;29827:19:0;:2;-1:-1:-1;;;;;29827:19:0;;;29793:53;29790:239;;;-1:-1:-1;;;;;29875:21:0;;;;;;:17;:21;;;;;;;;29871:139;;29959:26;;29949:6;29933:13;29943:2;-1:-1:-1;;;;;19127:16:0;19100:7;19127:16;;;:7;:16;;;;;;;19034:117;29933:13;:22;;;;:::i;:::-;:52;;29925:61;;;;;;30079:13;-1:-1:-1;;;;;30071:21:0;:4;-1:-1:-1;;;;;30071:21:0;;:55;;;;;30110:15;-1:-1:-1;;;;;30096:30:0;:2;-1:-1:-1;;;;;30096:30:0;;;30071:55;:81;;;;-1:-1:-1;;;;;;30131:21:0;;;;;;:17;:21;;;;;;;;30130:22;30071:81;30067:645;;;30191:12;:31;;;30187:204;;;-1:-1:-1;;;;;30255:15:0;;;;;;:11;:15;;;;;;30273;-1:-1:-1;30247:42:0;;;;;;30349:21;;30330:41;;:15;:41;:::i;:::-;-1:-1:-1;;;;;30312:15:0;;;;;;:11;:15;;;;;:59;30187:204;30067:645;;;30424:13;-1:-1:-1;;;;;30416:21:0;:4;-1:-1:-1;;;;;30416:21:0;;;:49;;;;-1:-1:-1;;;;;;30442:23:0;;;;;;:17;:23;;;;;;;;30441:24;30416:49;30412:300;;;30489:12;:32;;;;;;30485:212;;;-1:-1:-1;;;;;30554:18:0;;;;;;:12;:18;;;;;;30576:15;-1:-1:-1;30554:37:0;30546:46;;;;;;30655:21;;30636:41;;:15;:41;:::i;:::-;-1:-1:-1;;;;;30615:18:0;;;;;;:12;:18;;;;;:62;30485:212;30743:16;;;;30742:17;:55;;;;;30784:13;-1:-1:-1;;;;;30776:21:0;:4;-1:-1:-1;;;;;30776:21:0;;;30742:55;:93;;;;-1:-1:-1;30814:21:0;;;;;;;30742:93;30724:611;;;30911:4;30862:28;19127:16;;;:7;:16;;;;;;30961:26;;30938:49;;30934:390;;;31031:26;;31012:16;;:45;31008:301;;;31097:26;;31082:42;;:14;:42::i;:::-;31008:301;;;31219:1;31198:17;;31179:16;;31155:21;;:40;;;;:::i;:::-;:60;;;;:::i;:::-;31154:66;31150:159;;;31262:26;;31245:44;;:16;:44::i;:::-;30847:488;30724:611;-1:-1:-1;;;;;31527:23:0;;31408:12;31527:23;;;:17;:23;;;;;;31423:4;;31527:23;;;:48;;-1:-1:-1;;;;;;31554:21:0;;;;;;:17;:21;;;;;;;;31527:48;31523:96;;;-1:-1:-1;31602:5:0;31523:96;31702:41;31717:4;31723:2;31727:6;31735:7;31702:14;:41::i;25157:714::-;16822:16;:23;;-1:-1:-1;;16822:23:0;16841:4;16822:23;;;25259:21:::1;16822:16:::0;25314::::1;25329:1;25314:12:::0;:16:::1;:::i;:::-;25291:39:::0;-1:-1:-1;25341:23:0::1;25367:27;25291:39:::0;25367:12;:27:::1;:::i;:::-;25341:53:::0;-1:-1:-1;25411:16:0;;25407:79:::1;;25444:30;25461:12;25444:16;:30::i;:::-;25519:21;25498:18;25586:27;25599:14:::0;25519:21;25586:27:::1;:::i;:::-;25551:63;;25649:1;25631:15;:19;:43;;;;;25673:1;25654:16;:20;25631:43;25627:192;;;25691:47;25704:15;25721:16;25691:12;:47::i;:::-;25758:49;::::0;;15053:25:1;;;15109:2;15094:18;;15087:34;;;25758:49:0::1;::::0;15026:18:1;25758:49:0::1;;;;;;;25627:192;25851:12;25831:16;;:32;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;16868:16:0;:24;;-1:-1:-1;;16868:24:0;;;-1:-1:-1;;;;;;25157:714:0:o;25879:380::-;16822:16;:23;;-1:-1:-1;;16822:23:0;16841:4;16822:23;;;25962:16;;25958:79:::1;;25995:30;26012:12;25995:16;:30::i;:::-;26076:21;26112:20:::0;;26108:144:::1;;26149:15;::::0;:42:::1;::::0;-1:-1:-1;;;;;26149:15:0;;::::1;::::0;:42;::::1;;;::::0;26174:16;;26149:15:::1;:42:::0;:15;:42;26174:16;26149:15;:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;26211:29:0::1;::::0;13514:25:1;;;26211:29:0::1;::::0;13502:2:1;13487:18;26211:29:0::1;;;;;;;26108:144;-1:-1:-1::0;;16868:16:0;:24;;-1:-1:-1;;16868:24:0;;;25879:380::o;32007:2857::-;32112:20;32143;32174:15;32202:26;32231:1;32202:30;;32243:26;32284:21;32320:17;32354:12;32391:9;:26;;;;;;;;;;;;32387:571;;;32438:18;;;;:46;;;;-1:-1:-1;32460:9:0;:20;:24;;32438:46;:100;;;;-1:-1:-1;32527:10:0;;32504:9;:20;:33;;32527:10;32504:33;:::i;:::-;32488:12;:50;32438:100;32434:513;;;32559:26;:34;;-1:-1:-1;;32559:34:0;;;32434:513;;;32670:13;-1:-1:-1;;;;;32660:23:0;:6;-1:-1:-1;;;;;32660:23:0;;:85;;;;;32729:15;-1:-1:-1;;;;;32708:37:0;:9;-1:-1:-1;;;;;32708:37:0;;;32660:85;:139;;;;-1:-1:-1;;;;;;32771:28:0;;;;;;:17;:28;;;;;;;;32770:29;32660:139;32634:298;;;32842:32;32858:9;32869:4;32842:15;:32::i;:::-;-1:-1:-1;32908:4:0;32634:298;32974:7;32970:1309;;;33012:13;-1:-1:-1;;;;;33002:23:0;:6;-1:-1:-1;;;;;33002:23:0;;32998:575;;;33061:16;;33046:31;;33111:16;;33096:31;;33156:11;;33146:21;;32998:575;;;33222:13;-1:-1:-1;;;;;33209:26:0;:9;-1:-1:-1;;;;;33209:26:0;;33205:368;;;33271:17;;33256:32;;33322:17;;33307:32;;33368:12;;33358:22;;33205:368;;;33436:21;;33421:36;;33491:21;;33476:36;;33541:16;;33531:26;;33205:368;33593:7;33589:131;;;33636:3;33621:18;;33673:1;33658:16;;33703:1;33693:11;;33589:131;33802:4;33789:7;33759:27;33774:12;33759;:27;:::i;:::-;:37;;;;:::i;:::-;33749:48;;:6;:48;:::i;:::-;33748:59;;;;:::i;:::-;33736:71;-1:-1:-1;33870:1:0;33859:7;33829:27;33844:12;33829;:27;:::i;:::-;:37;;;;:::i;:::-;33828:43;33824:389;;;33987:7;33957:27;33972:12;33957;:27;:::i;:::-;:37;;;;:::i;:::-;33929:24;33941:12;33929:9;:24;:::i;:::-;:66;;;;:::i;:::-;33908:87;-1:-1:-1;34093:7:0;34063:27;34078:12;34063;:27;:::i;:::-;:37;;;;:::i;:::-;34035:24;34047:12;34035:9;:24;:::i;:::-;:66;;;;:::i;:::-;34014:87;-1:-1:-1;34189:7:0;34159:27;34174:12;34159;:27;:::i;:::-;:37;;;;:::i;:::-;34136:19;34148:7;34136:9;:19;:::i;:::-;:61;;;;:::i;:::-;34120:77;;33824:389;34249:18;34229:16;;:38;;;;;;;:::i;:::-;;;;-1:-1:-1;;32970:1309:0;34299:15;34369:13;34327:39;34348:18;34327;:39;:::i;:::-;:55;;;;:::i;:::-;34317:66;;:6;:66;:::i;:::-;-1:-1:-1;;;;;34394:15:0;;;;;;:7;:15;;;;;:25;;34299:84;;-1:-1:-1;34413:6:0;;34394:15;;;:25;;34413:6;;34394:25;:::i;:::-;;;;-1:-1:-1;34457:39:0;;-1:-1:-1;34478:18:0;34457;:39;:::i;:::-;34446:4;34430:22;;;;:7;:22;;;;;:67;;:22;;;:67;;;;;:::i;:::-;;;;-1:-1:-1;34538:4:0;;-1:-1:-1;;;;;;34513:74:0;;;34546:39;34567:18;34546;:39;:::i;:::-;34513:74;;13514:25:1;;;13502:2;13487:18;34513:74:0;;;;;;;-1:-1:-1;;;;;34598:18:0;;;;;;:7;:18;;;;;:29;;34620:7;;34598:18;:29;;34620:7;;34598:29;:::i;:::-;;;;;;;;34660:9;-1:-1:-1;;;;;34643:36:0;34652:6;-1:-1:-1;;;;;34643:36:0;;34671:7;34643:36;;;;13514:25:1;;13502:2;13487:18;;13368:177;34643:36:0;;;;;;;;34694:17;;34690:159;;34744:6;34728:24;;;;:7;:24;;;:41;;34756:13;;34728:24;:41;;34756:13;;34728:41;:::i;:::-;;;;-1:-1:-1;;34789:48:0;;13514:25:1;;;34814:6:0;;-1:-1:-1;;;;;34789:48:0;;;;;13502:2:1;13487:18;34789:48:0;;;;;;;34690:159;32101:2763;;;;;;;;;32007:2857;;;;:::o;27067:692::-;27217:16;;;27231:1;27217:16;;;;;;;;27193:21;;27217:16;;;;;;;;;;-1:-1:-1;27217:16:0;27193:40;;27262:4;27244;27249:1;27244:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;27244:23:0;;;-1:-1:-1;;;;;27244:23:0;;;;;27288:15;-1:-1:-1;;;;;27288:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27278:4;27283:1;27278:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27278:32:0;;;:7;;;;;;;;;;:32;;;;27346:4;27326:26;;;;:11;:26;;;;;;27361:15;27326:52;;;;;;;;;;;:66;-1:-1:-1;27323:166:0;;;27409:68;27426:4;27441:15;-1:-1:-1;;27409:8:0;:68::i;:::-;27527:224;;-1:-1:-1;;;27527:224:0;;-1:-1:-1;;;;;27527:15:0;:66;;;;:224;;27608:11;;27634:1;;27678:4;;27705;;27725:15;;27527:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27122:637;27067:692;:::o;27767:557::-;27871:4;27851:26;;;;:11;:26;;;;;;;;27886:15;-1:-1:-1;;;;;27851:52:0;;;;;;;;;:66;-1:-1:-1;27848:166:0;;;27934:68;27951:4;27966:15;-1:-1:-1;;27934:8:0;:68::i;:::-;28260:15;;28056:260;;-1:-1:-1;;;28056:260:0;;28128:4;28056:260;;;6980:34:1;7030:18;;;7023:34;;;28174:1:0;7073:18:1;;;7066:34;;;7116:18;;;7109:34;-1:-1:-1;;;;;28260:15:0;;;7159:19:1;;;7152:44;28290:15:0;7212:19:1;;;7205:35;28056:15:0;:31;;;;;;28095:9;;6914:19:1;;28056:260:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27767:557;;:::o;23906:348::-;23998:13;-1:-1:-1;;;;;23987:24:0;:7;-1:-1:-1;;;;;23987:24:0;;:52;;;-1:-1:-1;;;;;;24015:24:0;;24034:4;24015:24;23987:52;:91;;;;24062:15;-1:-1:-1;;;;;24043:35:0;:7;-1:-1:-1;;;;;24043:35:0;;23987:91;23984:107;;;24081:8;;;23984:107;24130:4;24115:19;;;;24111:135;;;-1:-1:-1;;;;;24151:22:0;;;;;;:13;:22;;;;;;;;;:29;;-1:-1:-1;;24151:29:0;24176:4;24151:29;;;24200:34;;6239:51:1;;;6333:14;;6326:22;6306:18;;;6299:50;24200:34:0;;6212:18:1;24200:34:0;;;;;;;23906:348;;:::o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;:::-;250:5;14:247;-1:-1:-1;;;14:247:1:o;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;782:388::-;850:6;858;911:2;899:9;890:7;886:23;882:32;879:52;;;927:1;924;917:12;879:52;966:9;953:23;985:31;1010:5;985:31;:::i;:::-;1035:5;-1:-1:-1;1092:2:1;1077:18;;1064:32;1105:33;1064:32;1105:33;:::i;:::-;1157:7;1147:17;;;782:388;;;;;:::o;1175:456::-;1252:6;1260;1268;1321:2;1309:9;1300:7;1296:23;1292:32;1289:52;;;1337:1;1334;1327:12;1289:52;1376:9;1363:23;1395:31;1420:5;1395:31;:::i;:::-;1445:5;-1:-1:-1;1502:2:1;1487:18;;1474:32;1515:33;1474:32;1515:33;:::i;:::-;1175:456;;1567:7;;-1:-1:-1;;;1621:2:1;1606:18;;;;1593:32;;1175:456::o;1636:382::-;1701:6;1709;1762:2;1750:9;1741:7;1737:23;1733:32;1730:52;;;1778:1;1775;1768:12;1730:52;1817:9;1804:23;1836:31;1861:5;1836:31;:::i;:::-;1886:5;-1:-1:-1;1943:2:1;1928:18;;1915:32;1956:30;1915:32;1956:30;:::i;2023:315::-;2091:6;2099;2152:2;2140:9;2131:7;2127:23;2123:32;2120:52;;;2168:1;2165;2158:12;2120:52;2207:9;2194:23;2226:31;2251:5;2226:31;:::i;:::-;2276:5;2328:2;2313:18;;;;2300:32;;-1:-1:-1;;;2023:315:1:o;2343:750::-;2435:6;2443;2451;2504:2;2492:9;2483:7;2479:23;2475:32;2472:52;;;2520:1;2517;2510:12;2472:52;2560:9;2547:23;2589:18;2630:2;2622:6;2619:14;2616:34;;;2646:1;2643;2636:12;2616:34;2684:6;2673:9;2669:22;2659:32;;2729:7;2722:4;2718:2;2714:13;2710:27;2700:55;;2751:1;2748;2741:12;2700:55;2791:2;2778:16;2817:2;2809:6;2806:14;2803:34;;;2833:1;2830;2823:12;2803:34;2888:7;2881:4;2871:6;2868:1;2864:14;2860:2;2856:23;2852:34;2849:47;2846:67;;;2909:1;2906;2899:12;2846:67;2940:4;2932:13;;;;-1:-1:-1;2964:6:1;-1:-1:-1;;3005:20:1;;2992:34;3035:28;2992:34;3035:28;:::i;:::-;3082:5;3072:15;;;2343:750;;;;;:::o;3098:241::-;3154:6;3207:2;3195:9;3186:7;3182:23;3178:32;3175:52;;;3223:1;3220;3213:12;3175:52;3262:9;3249:23;3281:28;3303:5;3281:28;:::i;3344:245::-;3411:6;3464:2;3452:9;3443:7;3439:23;3435:32;3432:52;;;3480:1;3477;3470:12;3432:52;3512:9;3506:16;3531:28;3553:5;3531:28;:::i;3594:376::-;3656:6;3664;3717:2;3705:9;3696:7;3692:23;3688:32;3685:52;;;3733:1;3730;3723:12;3685:52;3772:9;3759:23;3791:28;3813:5;3791:28;:::i;3975:180::-;4034:6;4087:2;4075:9;4066:7;4062:23;4058:32;4055:52;;;4103:1;4100;4093:12;4055:52;-1:-1:-1;4126:23:1;;3975:180;-1:-1:-1;3975:180:1:o;4160:184::-;4230:6;4283:2;4271:9;4262:7;4258:23;4254:32;4251:52;;;4299:1;4296;4289:12;4251:52;-1:-1:-1;4322:16:1;;4160:184;-1:-1:-1;4160:184:1:o;4349:316::-;4426:6;4434;4442;4495:2;4483:9;4474:7;4470:23;4466:32;4463:52;;;4511:1;4508;4501:12;4463:52;-1:-1:-1;;4534:23:1;;;4604:2;4589:18;;4576:32;;-1:-1:-1;4655:2:1;4640:18;;;4627:32;;4349:316;-1:-1:-1;4349:316:1:o;4670:306::-;4758:6;4766;4774;4827:2;4815:9;4806:7;4802:23;4798:32;4795:52;;;4843:1;4840;4833:12;4795:52;4872:9;4866:16;4856:26;;4922:2;4911:9;4907:18;4901:25;4891:35;;4966:2;4955:9;4951:18;4945:25;4935:35;;4670:306;;;;;:::o;4981:653::-;5091:6;5099;5107;5115;5123;5131;5139;5192:3;5180:9;5171:7;5167:23;5163:33;5160:53;;;5209:1;5206;5199:12;5160:53;5245:9;5232:23;5222:33;;5302:2;5291:9;5287:18;5274:32;5264:42;;5353:2;5342:9;5338:18;5325:32;5315:42;;5404:2;5393:9;5389:18;5376:32;5366:42;;5455:3;5444:9;5440:19;5427:33;5417:43;;5507:3;5496:9;5492:19;5479:33;5469:43;;5562:3;5551:9;5547:19;5534:33;5576:28;5598:5;5576:28;:::i;:::-;5623:5;5613:15;;;4981:653;;;;;;;;;;:::o;8094:597::-;8206:4;8235:2;8264;8253:9;8246:21;8296:6;8290:13;8339:6;8334:2;8323:9;8319:18;8312:34;8364:1;8374:140;8388:6;8385:1;8382:13;8374:140;;;8483:14;;;8479:23;;8473:30;8449:17;;;8468:2;8445:26;8438:66;8403:10;;8374:140;;;8532:6;8529:1;8526:13;8523:91;;;8602:1;8597:2;8588:6;8577:9;8573:22;8569:31;8562:42;8523:91;-1:-1:-1;8675:2:1;8654:15;-1:-1:-1;;8650:29:1;8635:45;;;;8682:2;8631:54;;8094:597;-1:-1:-1;;;8094:597:1:o;10325:356::-;10527:2;10509:21;;;10546:18;;;10539:30;10605:34;10600:2;10585:18;;10578:62;10672:2;10657:18;;10325:356::o;13894:980::-;14156:4;14204:3;14193:9;14189:19;14235:6;14224:9;14217:25;14261:2;14299:6;14294:2;14283:9;14279:18;14272:34;14342:3;14337:2;14326:9;14322:18;14315:31;14366:6;14401;14395:13;14432:6;14424;14417:22;14470:3;14459:9;14455:19;14448:26;;14509:2;14501:6;14497:15;14483:29;;14530:1;14540:195;14554:6;14551:1;14548:13;14540:195;;;14619:13;;-1:-1:-1;;;;;14615:39:1;14603:52;;14710:15;;;;14675:12;;;;14651:1;14569:9;14540:195;;;-1:-1:-1;;;;;;;14791:32:1;;;;14786:2;14771:18;;14764:60;-1:-1:-1;;;14855:3:1;14840:19;14833:35;14752:3;13894:980;-1:-1:-1;;;13894:980:1:o;15727:128::-;15767:3;15798:1;15794:6;15791:1;15788:13;15785:39;;;15804:18;;:::i;:::-;-1:-1:-1;15840:9:1;;15727:128::o;15860:217::-;15900:1;15926;15916:132;;15970:10;15965:3;15961:20;15958:1;15951:31;16005:4;16002:1;15995:15;16033:4;16030:1;16023:15;15916:132;-1:-1:-1;16062:9:1;;15860:217::o;16082:168::-;16122:7;16188:1;16184;16180:6;16176:14;16173:1;16170:21;16165:1;16158:9;16151:17;16147:45;16144:71;;;16195:18;;:::i;:::-;-1:-1:-1;16235:9:1;;16082:168::o;16255:125::-;16295:4;16323:1;16320;16317:8;16314:34;;;16328:18;;:::i;:::-;-1:-1:-1;16365:9:1;;16255:125::o;16385:380::-;16464:1;16460:12;;;;16507;;;16528:61;;16582:4;16574:6;16570:17;16560:27;;16528:61;16635:2;16627:6;16624:14;16604:18;16601:38;16598:161;;;16681:10;16676:3;16672:20;16669:1;16662:31;16716:4;16713:1;16706:15;16744:4;16741:1;16734:15;16598:161;;16385:380;;;:::o;16770:135::-;16809:3;-1:-1:-1;;16830:17:1;;16827:43;;;16850:18;;:::i;:::-;-1:-1:-1;16897:1:1;16886:13;;16770:135::o;16910:127::-;16971:10;16966:3;16962:20;16959:1;16952:31;17002:4;16999:1;16992:15;17026:4;17023:1;17016:15;17042:127;17103:10;17098:3;17094:20;17091:1;17084:31;17134:4;17131:1;17124:15;17158:4;17155:1;17148:15;17306:131;-1:-1:-1;;;;;17381:31:1;;17371:42;;17361:70;;17427:1;17424;17417:12;17442:118;17528:5;17521:13;17514:21;17507:5;17504:32;17494:60;;17550:1;17547;17540:12
Swarm Source
ipfs://5883e7c60a15c36f67efdda65237671435350d20b2ac5684ab60c88337180751
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.