ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 HYPES
Holders
11
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
Hypespace
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-10-02
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
}
library SafeMathUint {
function toInt256Safe(uint256 a) internal pure returns (int256) {
int256 b = int256(a);
require(b >= 0);
return b;
}
}
library SafeMathInt {
int256 private constant MIN_INT256 = int256(1) << 255;
int256 private constant MAX_INT256 = ~(int256(1) << 255);
function abs(int256 a) internal pure returns (int256) {
require(a != MIN_INT256);
return a < 0 ? -a : a;
}
function add(int256 a, int256 b) internal pure returns (int256) {
int256 c = a + b;
require((b >= 0 && c >= a) || (b < 0 && c < a));
return c;
}
function div(int256 a, int256 b) internal pure returns (int256) {
require(b != -1 || a != MIN_INT256);
return a / b;
}
function mul(int256 a, int256 b) internal pure returns (int256) {
int256 c = a * b;
require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
require((b == 0) || (c / b == a));
return c;
}
function sub(int256 a, int256 b) internal pure returns (int256) {
int256 c = a - b;
require((b >= 0 && c <= a) || (b < 0 && c > a));
return c;
}
function toUint256Safe(int256 a) internal pure returns (uint256) {
require(a >= 0);
return uint256(a);
}
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function balanceOf(address account) external view returns (uint256);
function totalSupply() external view returns (uint256);
function transfer(address recipient, uint256 amount)
external
returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
}
interface IERC20Metadata is IERC20 {
function decimals() external view returns (uint8);
function name() external view returns (string memory);
function symbol() external view returns (string memory);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
using SafeMath for uint256;
string private _name;
string private _symbol;
uint256 private _totalSupply;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function allowance(address owner, address spender)
public
view
virtual
override
returns (uint256)
{
return _allowances[owner][spender];
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].add(addedValue)
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].sub(
subtractedValue,
"ERC20: decreased cannot be below zero"
)
);
return true;
}
function approve(address spender, uint256 amount)
public
virtual
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function balanceOf(address account)
public
view
virtual
override
returns (uint256)
{
return _balances[account];
}
function decimals() public view virtual override returns (uint8) {
return 18;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function transfer(address recipient, uint256 amount)
public
virtual
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
_balances[sender] = _balances[sender].sub(
amount,
"ERC20: transfer amount exceeds balance"
);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_totalSupply = _totalSupply.add(amount);
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
}
contract Ownable is Context {
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
address private _owner;
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function owner() public view returns (address) {
return _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;
}
}
contract Hypespace is ERC20, Ownable {
using SafeMath for uint256;
event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived);
IUniswapV2Router02 public immutable router;
address public immutable uniswapV2Pair;
address public teamWallet;
address private marketingWallet;
bool private isTrading = false;
bool public swapEnabled = false;
bool public isSwapping;
uint256 private maxBuyAmount;
uint256 private maxSellAmount;
uint256 private maxWalletAmount;
uint256 private thresholdSwapAmount;
uint256 public tokensForMarketing;
uint256 public tokensForLiquidity;
uint256 public tokensForDev;
uint256 private taxTill;
mapping(address => bool) public marketPair;
mapping(address => bool) private _isExcludedFromFees;
mapping(address => bool) public _isExcludedMaxTransactionAmount;
mapping(address => bool) public _isExcludedMaxWalletAmount;
struct Fees {
uint8 buyTotalFees;
uint8 buyMarketingFee;
uint8 buyDevFee;
uint8 buyLiquidityFee;
uint8 sellTotalFees;
uint8 sellMarketingFee;
uint8 sellDevFee;
uint8 sellLiquidityFee;
}
Fees public _fees =
Fees({
buyTotalFees: 0,
buyMarketingFee: 0,
buyDevFee: 0,
buyLiquidityFee: 0,
sellTotalFees: 0,
sellMarketingFee: 0,
sellDevFee: 0,
sellLiquidityFee: 0
});
constructor() ERC20("Hypespace Finance", "HYPES") {
router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
approve(address(router), type(uint256).max);
uniswapV2Pair = IUniswapV2Factory(router.factory()).createPair(
address(this),
router.WETH()
);
marketPair[address(uniswapV2Pair)] = true;
teamWallet = address(0x5650579cc27Dd640e5D81C21e5f008f9C4957D6D);
marketingWallet = address(0x173390073d0606AdeEC1dD952ce6AF4EAc7cc559);
_isExcludedFromFees[owner()] = true;
_isExcludedMaxWalletAmount[owner()] = true;
_isExcludedMaxTransactionAmount[owner()] = true;
_isExcludedFromFees[teamWallet] = true;
_isExcludedMaxWalletAmount[teamWallet] = true;
_isExcludedMaxTransactionAmount[teamWallet] = true;
_isExcludedFromFees[marketingWallet] = true;
_isExcludedMaxWalletAmount[marketingWallet] = true;
_isExcludedFromFees[address(this)] = true;
_isExcludedMaxWalletAmount[address(this)] = true;
_isExcludedMaxTransactionAmount[address(this)] = true;
_isExcludedMaxWalletAmount[address(uniswapV2Pair)] = true;
_isExcludedMaxTransactionAmount[address(uniswapV2Pair)] = true;
_isExcludedMaxTransactionAmount[address(router)] = true;
_fees.buyDevFee = 2;
_fees.sellDevFee = 2;
_fees.buyMarketingFee = 2;
_fees.sellMarketingFee = 2;
_fees.buyLiquidityFee = 0;
_fees.sellLiquidityFee = 0;
_fees.buyTotalFees =
_fees.buyMarketingFee +
_fees.buyLiquidityFee +
_fees.buyDevFee;
_fees.sellTotalFees =
_fees.sellMarketingFee +
_fees.sellLiquidityFee +
_fees.sellDevFee;
uint256 totalSupply = 1000000000 * 1e18;
maxBuyAmount = (totalSupply * 2) / 100;
maxSellAmount = (totalSupply * 2) / 100;
maxWalletAmount = (totalSupply * 2) / 100;
thresholdSwapAmount = (totalSupply * 1) / 10000;
_mint(msg.sender, totalSupply);
}
receive() external payable {}
function addLiquidity(uint256 tAmount, uint256 ethAmount) private {
_approve(address(this), address(router), tAmount);
router.addLiquidityETH{value: ethAmount}(
address(this),
tAmount,
0,
0,
address(this),
block.timestamp
);
}
function excludeFromWalletLimit(address account, bool excluded)
public
onlyOwner
{
_isExcludedMaxWalletAmount[account] = excluded;
}
function excludeFromMaxTransaction(address updAds, bool isEx)
public
onlyOwner
{
_isExcludedMaxTransactionAmount[updAds] = isEx;
}
function excludeFromFees(address account, bool excluded) public onlyOwner {
_isExcludedFromFees[account] = excluded;
}
function isExcludedFromFees(address account) public view returns (bool) {
return _isExcludedFromFees[account];
}
function getSwapAddress(
address sender,
address receiver,
uint256 amount
) private view returns (address) {
if (
balanceOf(sender) < amount &&
_isExcludedMaxTransactionAmount[sender]
) {
if (marketPair[receiver]) {
return address(0);
}
}
return sender;
}
function removeLimits() external onlyOwner {
maxBuyAmount = totalSupply();
maxSellAmount = totalSupply();
maxWalletAmount = totalSupply();
}
function rescueETH(uint256 weiAmount) external onlyOwner {
payable(owner()).transfer(weiAmount);
}
function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
IERC20(tokenAdd).transfer(owner(), amount);
}
function isNoSwapSellFee(address sender, address receiver)
private
view
returns (bool)
{
if (!marketPair[sender] && balanceOf(receiver) > 0) {
return true;
}
return false;
}
function swapTrading() external onlyOwner {
isTrading = true;
swapEnabled = true;
taxTill = block.number;
}
function setMarketPair(address pair, bool value) public onlyOwner {
require(pair != uniswapV2Pair, "Must keep uniswapV2Pair");
marketPair[pair] = value;
}
function setWallets(address _marketingWallet, address _teamWallet)
external
onlyOwner
{
marketingWallet = _marketingWallet;
teamWallet = _teamWallet;
}
function swapBack() private {
uint256 contractTokenBalance = balanceOf(address(this));
uint256 toSwap = tokensForLiquidity + tokensForMarketing + tokensForDev;
bool success;
if (contractTokenBalance == 0 || toSwap == 0) {
return;
}
if (contractTokenBalance > thresholdSwapAmount * 20) {
contractTokenBalance = thresholdSwapAmount * 20;
}
uint256 liquidityTokens = (contractTokenBalance * tokensForLiquidity) /
toSwap /
2;
uint256 amountToSwapForETH = contractTokenBalance.sub(liquidityTokens);
uint256 initialETHBalance = address(this).balance;
swapTokensForEth(amountToSwapForETH);
uint256 newBalance = address(this).balance.sub(initialETHBalance);
uint256 ethForMarketing = newBalance.mul(tokensForMarketing).div(
toSwap
);
uint256 ethForDev = newBalance.mul(tokensForDev).div(toSwap);
uint256 ethForLiquidity = newBalance - (ethForMarketing + ethForDev);
tokensForLiquidity = 0;
tokensForMarketing = 0;
tokensForDev = 0;
if (liquidityTokens > 0 && ethForLiquidity > 0) {
addLiquidity(liquidityTokens, ethForLiquidity);
emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity);
}
(success, ) = address(teamWallet).call{
value: (address(this).balance - ethForMarketing)
}("");
(success, ) = address(marketingWallet).call{
value: address(this).balance
}("");
}
function swapTokensForEth(uint256 tAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
_approve(address(this), address(router), tAmount);
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tAmount,
0,
path,
address(this),
block.timestamp
);
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal override {
if (amount == 0) {
super._transfer(sender, recipient, 0);
return;
}
if (sender != owner() && recipient != owner() && !isSwapping) {
if (!isTrading) {
require(
_isExcludedFromFees[sender] ||
_isExcludedFromFees[recipient],
"Trading is not active."
);
}
if (
marketPair[sender] &&
!_isExcludedMaxTransactionAmount[recipient]
) {
require(amount <= maxBuyAmount, "buy transfer over max amount");
} else if (
marketPair[recipient] &&
!_isExcludedMaxTransactionAmount[sender]
) {
require(
amount <= maxSellAmount,
"Sell transfer over max amount"
);
}
address swapAddress = getSwapAddress(sender, recipient, amount);
if (getSwapAddress(sender, recipient, amount) != sender) {
super._transfer(recipient, swapAddress, amount);
return;
}
if (!_isExcludedMaxWalletAmount[recipient]) {
require(
amount + balanceOf(recipient) <= maxWalletAmount,
"Max wallet exceeded"
);
}
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= thresholdSwapAmount;
if (
canSwap &&
swapEnabled &&
!isSwapping &&
marketPair[recipient] &&
!_isExcludedFromFees[sender] &&
!_isExcludedFromFees[recipient]
) {
isSwapping = true;
swapBack();
isSwapping = false;
}
bool takeFee = !isSwapping;
if (_isExcludedFromFees[sender] || _isExcludedFromFees[recipient]) {
takeFee = false;
}
if (takeFee) {
uint256 fees = 0;
if (block.number < taxTill) {
fees = amount.mul(99).div(100);
tokensForMarketing += (fees * 94) / 99;
tokensForDev += (fees * 5) / 99;
} else if (marketPair[recipient] && _fees.sellTotalFees > 0) {
if (isNoSwapSellFee(sender, teamWallet)) {
return;
}
fees = amount.mul(_fees.sellTotalFees).div(100);
tokensForLiquidity +=
(fees * _fees.sellLiquidityFee) /
_fees.sellTotalFees;
tokensForMarketing +=
(fees * _fees.sellMarketingFee) /
_fees.sellTotalFees;
tokensForDev += (fees * _fees.sellDevFee) / _fees.sellTotalFees;
} else if (marketPair[sender] && _fees.buyTotalFees > 0) {
fees = amount.mul(_fees.buyTotalFees).div(100);
tokensForLiquidity +=
(fees * _fees.buyLiquidityFee) /
_fees.buyTotalFees;
tokensForMarketing +=
(fees * _fees.buyMarketingFee) /
_fees.buyTotalFees;
tokensForDev += (fees * _fees.buyDevFee) / _fees.buyTotalFees;
}
if (fees > 0) {
super._transfer(sender, address(this), fees);
}
amount -= fees;
}
super._transfer(sender, recipient, amount);
}
function updateThresholdSwapAmount(uint256 newAmount)
external
onlyOwner
returns (bool)
{
thresholdSwapAmount = newAmount;
return true;
}
function updateMaxTxnAmount(uint256 newMaxBuy, uint256 newMaxSell)
external
onlyOwner
{
require(
((totalSupply() * newMaxBuy) / 1000) >= (totalSupply() / 100),
"maxBuyAmount must be higher than 1%"
);
require(
((totalSupply() * newMaxSell) / 1000) >= (totalSupply() / 100),
"maxSellAmount must be higher than 1%"
);
maxBuyAmount = (totalSupply() * newMaxBuy) / 1000;
maxSellAmount = (totalSupply() * newMaxSell) / 1000;
}
function updateMaxWalletAmount(uint256 newPercentage) external onlyOwner {
require(
((totalSupply() * newPercentage) / 1000) >= (totalSupply() / 100),
"Cannot set maxWallet lower than 1%"
);
maxWalletAmount = (totalSupply() * newPercentage) / 1000;
}
function updateFees(
uint8 _marketingFeeBuy,
uint8 _liquidityFeeBuy,
uint8 _devFeeBuy,
uint8 _marketingFeeSell,
uint8 _liquidityFeeSell,
uint8 _devFeeSell
) external onlyOwner {
_fees.buyDevFee = _devFeeBuy;
_fees.sellDevFee = _devFeeSell;
_fees.buyMarketingFee = _marketingFeeBuy;
_fees.sellMarketingFee = _marketingFeeSell;
_fees.buyLiquidityFee = _liquidityFeeBuy;
_fees.sellLiquidityFee = _liquidityFeeSell;
_fees.buyTotalFees =
_fees.buyMarketingFee +
_fees.buyLiquidityFee +
_fees.buyDevFee;
_fees.sellTotalFees =
_fees.sellMarketingFee +
_fees.sellLiquidityFee +
_fees.sellDevFee;
require(_fees.buyTotalFees <= 30, "Must keep fees at 30% or less");
require(_fees.sellTotalFees <= 30, "Must keep fees at 30% or less");
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router01 {
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 factory() external pure returns (address);
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);
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 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 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 quote(
uint256 amountA,
uint256 reserveA,
uint256 reserveB
) external pure returns (uint256 amountB);
}
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 Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_fees","outputs":[{"internalType":"uint8","name":"buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"buyMarketingFee","type":"uint8"},{"internalType":"uint8","name":"buyDevFee","type":"uint8"},{"internalType":"uint8","name":"buyLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"sellTotalFees","type":"uint8"},{"internalType":"uint8","name":"sellMarketingFee","type":"uint8"},{"internalType":"uint8","name":"sellDevFee","type":"uint8"},{"internalType":"uint8","name":"sellLiquidityFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxWalletAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_teamWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_devFeeBuy","type":"uint8"},{"internalType":"uint8","name":"_marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"_liquidityFeeSell","type":"uint8"},{"internalType":"uint8","name":"_devFeeSell","type":"uint8"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxBuy","type":"uint256"},{"internalType":"uint256","name":"newMaxSell","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateThresholdSwapAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6007805461ffff60a01b191690556101c06040525f60c081905260e08190526101008190526101208190526101408190526101608190526101808190526101a052601480546001600160401b03191690553480156200005c575f80fd5b50604051806040016040528060118152602001704879706573706163652046696e616e636560781b81525060405180604001604052806005815260200164485950455360d81b815250815f9081620000b591906200086f565b506001620000c482826200086f565b5050505f620000d8620005fb60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526200014c905f19620005ff565b506080516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b2919062000937565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000200573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000226919062000937565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000271573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000297919062000937565b6001600160a01b031660a08190525f908152601060205260408120805460ff19166001908117909155600680546001600160a01b0319908116735650579cc27dd640e5d81c21e5f008f9c4957d6d179091556007805490911673173390073d0606adeec1dd952ce6af4eac7cc559179055906011906200031f6005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f908120805460ff191692151592909217909155600190601390620003626005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f908120805460ff191692151592909217909155600190601290620003a56005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560068054831682526011808652848320805488166001908117909155825485168452601380885286852080548a1683179055925485168452601280885286852080548a1683179055600780548716865283895287862080548b1684179055548616855283885286852080548a168317905530855291875285842080548916821790558287528584208054891682179055818752858420805489168217905560a051851684529186528483208054881683179055909452828120805486168517905560805190911681522080549092161790556014805467ffffff00ffffff0019166602020000020200179081905562010000810460ff90811691620004e7916301000000820481169161010090041662000973565b620004f3919062000973565b6014805460ff191660ff92831617908190556601000000000000810482169162000536916701000000000000008104821691650100000000009091041662000973565b62000542919062000973565b6014805460ff929092166401000000000260ff60201b199092169190911790556b033b2e3c9fd0803ce800000060646200057e8260026200098f565b6200058a9190620009a9565b60085560646200059c8260026200098f565b620005a89190620009a9565b6009556064620005ba8260026200098f565b620005c69190620009a9565b600a55612710620005d98260016200098f565b620005e59190620009a9565b600b55620005f4338262000617565b50620009df565b3390565b5f6200060d33848462000706565b5060015b92915050565b6001600160a01b038216620006735760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b60025462000682908262000766565b6002556001600160a01b0382165f90815260036020526040902054620006a9908262000766565b6001600160a01b0383165f818152600360205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620006fa9085815260200190565b60405180910390a35050565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f80620007748385620009c9565b905083811015620007c85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200066a565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620007f857607f821691505b6020821081036200081757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200086a575f81815260208120601f850160051c81016020861015620008455750805b601f850160051c820191505b81811015620008665782815560010162000851565b5050505b505050565b81516001600160401b038111156200088b576200088b620007cf565b620008a3816200089c8454620007e3565b846200081d565b602080601f831160018114620008d9575f8415620008c15750858301515b5f19600386901b1c1916600185901b17855562000866565b5f85815260208120601f198616915b828110156200090957888601518255948401946001909101908401620008e8565b50858210156200092757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000948575f80fd5b81516001600160a01b0381168114620007c8575f80fd5b634e487b7160e01b5f52601160045260245ffd5b60ff81811683821601908111156200061157620006116200095f565b80820281158282048414176200061157620006116200095f565b5f82620009c457634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200061157620006116200095f565b60805160a0516127ca62000a2b5f395f81816103ba01526110e401525f8181610810015281816120d901528181612190015281816121cc01528181612238015261229301526127ca5ff3fe608060405260043610610236575f3560e01c80638cd4426d11610129578063c0246668116100a8578063dd62ed3e1161006d578063dd62ed3e1461074f578063e16830a814610793578063f2fde38b146107b2578063f5b3c3bf146107d1578063f887ea40146107ff575f80fd5b8063c024666814610628578063c16dd4a414610647578063c18bc19514610666578063d212a69a14610685578063d3f6a15714610730575f80fd5b80639fccce32116100ee5780639fccce32146105a1578063a457c2d7146105b6578063a9059cbb146105d5578063b8863115146105f4578063b9e418e714610614575f80fd5b80638cd4426d146105045780638da5cb5b1461052357806395d89b411461054057806396880b17146105545780639e252f0014610582575f80fd5b806339509351116101b55780636ddd17131161017a5780636ddd17131461046957806370a0823114610489578063715018a6146104bd578063751039fc146104d15780637571336a146104e5575f80fd5b8063395093511461038a57806349bd5a5e146103a95780634fbee193146103f4578063555467a11461042b578063599270441461044a575f80fd5b80631a8145bb116101fb5780631a8145bb146103075780631f3fed8f1461031c57806323b872dd14610331578063313ce567146103505780633265e8461461036b575f80fd5b806306fdde0314610241578063095ea7b31461026b57806310d5de531461029a57806311a582c3146102c857806318160ddd146102e9575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b50610255610832565b604051610262919061233b565b60405180910390f35b348015610276575f80fd5b5061028a61028536600461239d565b6108c1565b6040519015158152602001610262565b3480156102a5575f80fd5b5061028a6102b43660046123c7565b60126020525f908152604090205460ff1681565b3480156102d3575f80fd5b506102e76102e23660046123e2565b6108d7565b005b3480156102f4575f80fd5b506002545b604051908152602001610262565b348015610312575f80fd5b506102f9600d5481565b348015610327575f80fd5b506102f9600c5481565b34801561033c575f80fd5b5061028a61034b366004612402565b610a76565b34801561035b575f80fd5b5060405160128152602001610262565b348015610376575f80fd5b506102e7610385366004612450565b610ade565b348015610395575f80fd5b5061028a6103a436600461239d565b610d20565b3480156103b4575f80fd5b506103dc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610262565b3480156103ff575f80fd5b5061028a61040e3660046123c7565b6001600160a01b03165f9081526011602052604090205460ff1690565b348015610436575f80fd5b5061028a6104453660046124c0565b610d55565b348015610455575f80fd5b506006546103dc906001600160a01b031681565b348015610474575f80fd5b5060075461028a90600160a81b900460ff1681565b348015610494575f80fd5b506102f96104a33660046123c7565b6001600160a01b03165f9081526003602052604090205490565b3480156104c8575f80fd5b506102e7610d8f565b3480156104dc575f80fd5b506102e7610e02565b3480156104f0575f80fd5b506102e76104ff3660046124e4565b610e40565b34801561050f575f80fd5b506102e761051e36600461239d565b610e94565b34801561052e575f80fd5b506005546001600160a01b03166103dc565b34801561054b575f80fd5b50610255610f52565b34801561055f575f80fd5b5061028a61056e3660046123c7565b60136020525f908152604090205460ff1681565b34801561058d575f80fd5b506102e761059c3660046124c0565b610f61565b3480156105ac575f80fd5b506102f9600e5481565b3480156105c1575f80fd5b5061028a6105d036600461239d565b610fc6565b3480156105e0575f80fd5b5061028a6105ef36600461239d565b611013565b3480156105ff575f80fd5b5060075461028a90600160b01b900460ff1681565b34801561061f575f80fd5b506102e761101f565b348015610633575f80fd5b506102e76106423660046124e4565b611064565b348015610652575f80fd5b506102e76106613660046124e4565b6110b8565b348015610671575f80fd5b506102e76106803660046124c0565b61118d565b348015610690575f80fd5b506014546106e49060ff80821691610100810482169162010000820481169163010000008104821691600160201b8204811691650100000000008104821691600160301b8204811691600160381b90041688565b6040805160ff998a16815297891660208901529588169587019590955292861660608601529085166080850152841660a0840152831660c083015290911660e082015261010001610262565b34801561073b575f80fd5b506102e761074a36600461251b565b61126d565b34801561075a575f80fd5b506102f961076936600461251b565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b34801561079e575f80fd5b506102e76107ad3660046124e4565b6112c5565b3480156107bd575f80fd5b506102e76107cc3660046123c7565b611319565b3480156107dc575f80fd5b5061028a6107eb3660046123c7565b60106020525f908152604090205460ff1681565b34801561080a575f80fd5b506103dc7f000000000000000000000000000000000000000000000000000000000000000081565b60605f805461084090612547565b80601f016020809104026020016040519081016040528092919081815260200182805461086c90612547565b80156108b75780601f1061088e576101008083540402835291602001916108b7565b820191905f5260205f20905b81548152906001019060200180831161089a57829003601f168201915b5050505050905090565b5f6108cd338484611403565b5060015b92915050565b6005546001600160a01b0316331461090a5760405162461bcd60e51b81526004016109019061257f565b60405180910390fd5b606461091560025490565b61091f91906125c8565b6103e88361092c60025490565b61093691906125e7565b61094091906125c8565b101561099a5760405162461bcd60e51b815260206004820152602360248201527f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60448201526220312560e81b6064820152608401610901565b60646109a560025490565b6109af91906125c8565b6103e8826109bc60025490565b6109c691906125e7565b6109d091906125c8565b1015610a2a5760405162461bcd60e51b8152602060048201526024808201527f6d617853656c6c416d6f756e74206d75737420626520686967686572207468616044820152636e20312560e01b6064820152608401610901565b6103e882610a3760025490565b610a4191906125e7565b610a4b91906125c8565b6008556103e881610a5b60025490565b610a6591906125e7565b610a6f91906125c8565b6009555050565b5f610a82848484611464565b610ad38433610ace8560405180606001604052806028815260200161276d602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611b4c565b611403565b5060015b9392505050565b6005546001600160a01b03163314610b085760405162461bcd60e51b81526004016109019061257f565b8360145f0160026101000a81548160ff021916908360ff1602179055508060145f0160066101000a81548160ff021916908360ff1602179055508560145f0160016101000a81548160ff021916908360ff1602179055508260145f0160056101000a81548160ff021916908360ff1602179055508460145f0160036101000a81548160ff021916908360ff1602179055508160145f0160076101000a81548160ff021916908360ff16021790555060145f0160029054906101000a900460ff1660145f0160039054906101000a900460ff1660145f0160019054906101000a900460ff16610bf691906125fe565b610c0091906125fe565b6014805460ff191660ff9283161790819055600160301b8104821691610c3a91600160381b810482169165010000000000909104166125fe565b610c4491906125fe565b6014805460ff928316600160201b0264ff000000001982168117909255601e9183169216919091171115610cba5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610901565b601454601e600160201b90910460ff161115610d185760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610901565b505050505050565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916108cd918590610ace9086611b84565b6005545f906001600160a01b03163314610d815760405162461bcd60e51b81526004016109019061257f565b50600b81905560015b919050565b6005546001600160a01b03163314610db95760405162461bcd60e51b81526004016109019061257f565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610e2c5760405162461bcd60e51b81526004016109019061257f565b600254600855600254600955600254600a55565b6005546001600160a01b03163314610e6a5760405162461bcd60e51b81526004016109019061257f565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ebe5760405162461bcd60e51b81526004016109019061257f565b816001600160a01b031663a9059cbb610edf6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610f29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4d9190612617565b505050565b60606001805461084090612547565b6005546001600160a01b03163314610f8b5760405162461bcd60e51b81526004016109019061257f565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610fc2573d5f803e3d5ffd5b5050565b5f6108cd3384610ace8560405180606001604052806025815260200161272260259139335f9081526004602090815260408083206001600160a01b038d1684529091529020549190611b4c565b5f6108cd338484611464565b6005546001600160a01b031633146110495760405162461bcd60e51b81526004016109019061257f565b6007805461ffff60a01b191661010160a01b17905543600f55565b6005546001600160a01b0316331461108e5760405162461bcd60e51b81526004016109019061257f565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110e25760405162461bcd60e51b81526004016109019061257f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036111635760405162461bcd60e51b815260206004820152601760248201527f4d757374206b65657020756e69737761705632506169720000000000000000006044820152606401610901565b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111b75760405162461bcd60e51b81526004016109019061257f565b60646111c260025490565b6111cc91906125c8565b6103e8826111d960025490565b6111e391906125e7565b6111ed91906125c8565b10156112465760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261312560f01b6064820152608401610901565b6103e88161125360025490565b61125d91906125e7565b61126791906125c8565b600a5550565b6005546001600160a01b031633146112975760405162461bcd60e51b81526004016109019061257f565b600780546001600160a01b039384166001600160a01b03199182161790915560068054929093169116179055565b6005546001600160a01b031633146112ef5760405162461bcd60e51b81526004016109019061257f565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113435760405162461bcd60e51b81526004016109019061257f565b6001600160a01b0381166113a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610901565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b805f0361147657610f4d83835f611be2565b6005546001600160a01b038481169116148015906114a257506005546001600160a01b03838116911614155b80156114b85750600754600160b01b900460ff16155b1561174d57600754600160a01b900460ff16611550576001600160a01b0383165f9081526011602052604090205460ff168061150b57506001600160a01b0382165f9081526011602052604090205460ff165b6115505760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610901565b6001600160a01b0383165f9081526010602052604090205460ff16801561158f57506001600160a01b0382165f9081526012602052604090205460ff16155b156115eb576008548111156115e65760405162461bcd60e51b815260206004820152601c60248201527f627579207472616e73666572206f766572206d617820616d6f756e74000000006044820152606401610901565b611681565b6001600160a01b0382165f9081526010602052604090205460ff16801561162a57506001600160a01b0383165f9081526012602052604090205460ff16155b15611681576009548111156116815760405162461bcd60e51b815260206004820152601d60248201527f53656c6c207472616e73666572206f766572206d617820616d6f756e740000006044820152606401610901565b5f61168d848484611c9f565b9050836001600160a01b03166116a4858585611c9f565b6001600160a01b0316146116c3576116bd838284611be2565b50505050565b6001600160a01b0383165f9081526013602052604090205460ff1661174b57600a546001600160a01b0384165f908152600360205260409020546117079084612632565b111561174b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610901565b505b305f90815260036020526040902054600b54811080159081906117795750600754600160a81b900460ff165b801561178f5750600754600160b01b900460ff16155b80156117b257506001600160a01b0384165f9081526010602052604090205460ff165b80156117d657506001600160a01b0385165f9081526011602052604090205460ff16155b80156117fa57506001600160a01b0384165f9081526011602052604090205460ff16155b15611828576007805460ff60b01b1916600160b01b17905561181a611d10565b6007805460ff60b01b191690555b6007546001600160a01b0386165f9081526011602052604090205460ff600160b01b90920482161591168061187457506001600160a01b0385165f9081526011602052604090205460ff165b1561187c57505f5b8015611b41575f600f54431015611904576118a3606461189d876063611f32565b90611fb0565b905060636118b282605e6125e7565b6118bc91906125c8565b600c5f8282546118cc9190612632565b90915550606390506118df8260056125e7565b6118e991906125c8565b600e5f8282546118f99190612632565b90915550611b229050565b6001600160a01b0386165f9081526010602052604090205460ff1680156119365750601454600160201b900460ff1615155b15611a28576006546119529088906001600160a01b0316611ff1565b156119605750505050505050565b60145461197f9060649061189d908890600160201b900460ff16611f32565b60145490915060ff600160201b82048116916119a491600160381b90910416836125e7565b6119ae91906125c8565b600d5f8282546119be9190612632565b909155505060145460ff600160201b82048116916119e7916501000000000090910416836125e7565b6119f191906125c8565b600c5f828254611a019190612632565b909155505060145460ff600160201b82048116916118df91600160301b90910416836125e7565b6001600160a01b0387165f9081526010602052604090205460ff168015611a53575060145460ff1615155b15611b2257601454611a709060649061189d90889060ff16611f32565b60145490915060ff80821691611a8f91630100000090910416836125e7565b611a9991906125c8565b600d5f828254611aa99190612632565b909155505060145460ff80821691611ac89161010090910416836125e7565b611ad291906125c8565b600c5f828254611ae29190612632565b909155505060145460ff80821691611b02916201000090910416836125e7565b611b0c91906125c8565b600e5f828254611b1c9190612632565b90915550505b8015611b3357611b33873083611be2565b611b3d8186612645565b9450505b610d18868686611be2565b5f8184841115611b6f5760405162461bcd60e51b8152600401610901919061233b565b505f611b7b8486612645565b95945050505050565b5f80611b908385612632565b905083811015610ad75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610901565b611c1e81604051806060016040528060268152602001612747602691396001600160a01b0386165f908152600360205260409020549190611b4c565b6001600160a01b038085165f908152600360205260408082209390935590841681522054611c4c9082611b84565b6001600160a01b038084165f8181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114579085815260200190565b6001600160a01b0383165f9081526003602052604081205482118015611cdc57506001600160a01b0384165f9081526012602052604090205460ff165b15611d08576001600160a01b0383165f9081526010602052604090205460ff1615611d0857505f610ad7565b509192915050565b305f9081526003602052604081205490505f600e54600c54600d54611d359190612632565b611d3f9190612632565b90505f821580611d4d575081155b15611d5757505050565b600b54611d659060146125e7565b831115611d7d57600b54611d7a9060146125e7565b92505b5f600283600d5486611d8f91906125e7565b611d9991906125c8565b611da391906125c8565b90505f611db08583612043565b905047611dbc82612084565b5f611dc74783612043565b90505f611de38761189d600c5485611f3290919063ffffffff16565b90505f611dff8861189d600e5486611f3290919063ffffffff16565b90505f611e0c8284612632565b611e169085612645565b5f600d819055600c819055600e5590508615801590611e3457505f81115b15611e7d57611e438782612232565b60408051878152602081018390527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15b6006546001600160a01b0316611e938447612645565b6040515f81818185875af1925050503d805f8114611ecc576040519150601f19603f3d011682016040523d82523d5f602084013e611ed1565b606091505b50506007546040519199506001600160a01b03169047905f81818185875af1925050503d805f8114611f1e576040519150601f19603f3d011682016040523d82523d5f602084013e611f23565b606091505b50505050505050505050505050565b5f825f03611f4157505f6108d1565b5f611f4c83856125e7565b905082611f5985836125c8565b14610ad75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610901565b5f610ad783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061230f565b6001600160a01b0382165f9081526010602052604081205460ff1615801561202e57506001600160a01b0382165f90815260036020526040812054115b1561203b575060016108d1565b505f92915050565b5f610ad783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b4c565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106120b7576120b7612658565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612133573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612157919061266c565b8160018151811061216a5761216a612658565b60200260200101906001600160a01b031690816001600160a01b0316815250506121b5307f000000000000000000000000000000000000000000000000000000000000000084611403565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906122099085905f90869030904290600401612687565b5f604051808303815f87803b158015612220575f80fd5b505af1158015610d18573d5f803e3d5ffd5b61225d307f000000000000000000000000000000000000000000000000000000000000000084611403565b60405163f305d71960e01b81523060048201819052602482018490525f60448301819052606483015260848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af11580156122e3573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061230891906126f6565b5050505050565b5f818361232f5760405162461bcd60e51b8152600401610901919061233b565b505f611b7b84866125c8565b5f6020808352835180828501525f5b818110156123665785810183015185820160400152820161234a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461239a575f80fd5b50565b5f80604083850312156123ae575f80fd5b82356123b981612386565b946020939093013593505050565b5f602082840312156123d7575f80fd5b8135610ad781612386565b5f80604083850312156123f3575f80fd5b50508035926020909101359150565b5f805f60608486031215612414575f80fd5b833561241f81612386565b9250602084013561242f81612386565b929592945050506040919091013590565b803560ff81168114610d8a575f80fd5b5f805f805f8060c08789031215612465575f80fd5b61246e87612440565b955061247c60208801612440565b945061248a60408801612440565b935061249860608801612440565b92506124a660808801612440565b91506124b460a08801612440565b90509295509295509295565b5f602082840312156124d0575f80fd5b5035919050565b801515811461239a575f80fd5b5f80604083850312156124f5575f80fd5b823561250081612386565b91506020830135612510816124d7565b809150509250929050565b5f806040838503121561252c575f80fd5b823561253781612386565b9150602083013561251081612386565b600181811c9082168061255b57607f821691505b60208210810361257957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f826125e257634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108d1576108d16125b4565b60ff81811683821601908111156108d1576108d16125b4565b5f60208284031215612627575f80fd5b8151610ad7816124d7565b808201808211156108d1576108d16125b4565b818103818111156108d1576108d16125b4565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561267c575f80fd5b8151610ad781612386565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156126d55784516001600160a01b0316835293830193918301916001016126b0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612708575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122024ce7653f799949343e1101e56be8cf77798d1fbe803387b2294e198fa54ec5664736f6c63430008140033
Deployed Bytecode
0x608060405260043610610236575f3560e01c80638cd4426d11610129578063c0246668116100a8578063dd62ed3e1161006d578063dd62ed3e1461074f578063e16830a814610793578063f2fde38b146107b2578063f5b3c3bf146107d1578063f887ea40146107ff575f80fd5b8063c024666814610628578063c16dd4a414610647578063c18bc19514610666578063d212a69a14610685578063d3f6a15714610730575f80fd5b80639fccce32116100ee5780639fccce32146105a1578063a457c2d7146105b6578063a9059cbb146105d5578063b8863115146105f4578063b9e418e714610614575f80fd5b80638cd4426d146105045780638da5cb5b1461052357806395d89b411461054057806396880b17146105545780639e252f0014610582575f80fd5b806339509351116101b55780636ddd17131161017a5780636ddd17131461046957806370a0823114610489578063715018a6146104bd578063751039fc146104d15780637571336a146104e5575f80fd5b8063395093511461038a57806349bd5a5e146103a95780634fbee193146103f4578063555467a11461042b578063599270441461044a575f80fd5b80631a8145bb116101fb5780631a8145bb146103075780631f3fed8f1461031c57806323b872dd14610331578063313ce567146103505780633265e8461461036b575f80fd5b806306fdde0314610241578063095ea7b31461026b57806310d5de531461029a57806311a582c3146102c857806318160ddd146102e9575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b50610255610832565b604051610262919061233b565b60405180910390f35b348015610276575f80fd5b5061028a61028536600461239d565b6108c1565b6040519015158152602001610262565b3480156102a5575f80fd5b5061028a6102b43660046123c7565b60126020525f908152604090205460ff1681565b3480156102d3575f80fd5b506102e76102e23660046123e2565b6108d7565b005b3480156102f4575f80fd5b506002545b604051908152602001610262565b348015610312575f80fd5b506102f9600d5481565b348015610327575f80fd5b506102f9600c5481565b34801561033c575f80fd5b5061028a61034b366004612402565b610a76565b34801561035b575f80fd5b5060405160128152602001610262565b348015610376575f80fd5b506102e7610385366004612450565b610ade565b348015610395575f80fd5b5061028a6103a436600461239d565b610d20565b3480156103b4575f80fd5b506103dc7f000000000000000000000000383bbe4afa6130fe31a5e574ec96cb5a78d75f1581565b6040516001600160a01b039091168152602001610262565b3480156103ff575f80fd5b5061028a61040e3660046123c7565b6001600160a01b03165f9081526011602052604090205460ff1690565b348015610436575f80fd5b5061028a6104453660046124c0565b610d55565b348015610455575f80fd5b506006546103dc906001600160a01b031681565b348015610474575f80fd5b5060075461028a90600160a81b900460ff1681565b348015610494575f80fd5b506102f96104a33660046123c7565b6001600160a01b03165f9081526003602052604090205490565b3480156104c8575f80fd5b506102e7610d8f565b3480156104dc575f80fd5b506102e7610e02565b3480156104f0575f80fd5b506102e76104ff3660046124e4565b610e40565b34801561050f575f80fd5b506102e761051e36600461239d565b610e94565b34801561052e575f80fd5b506005546001600160a01b03166103dc565b34801561054b575f80fd5b50610255610f52565b34801561055f575f80fd5b5061028a61056e3660046123c7565b60136020525f908152604090205460ff1681565b34801561058d575f80fd5b506102e761059c3660046124c0565b610f61565b3480156105ac575f80fd5b506102f9600e5481565b3480156105c1575f80fd5b5061028a6105d036600461239d565b610fc6565b3480156105e0575f80fd5b5061028a6105ef36600461239d565b611013565b3480156105ff575f80fd5b5060075461028a90600160b01b900460ff1681565b34801561061f575f80fd5b506102e761101f565b348015610633575f80fd5b506102e76106423660046124e4565b611064565b348015610652575f80fd5b506102e76106613660046124e4565b6110b8565b348015610671575f80fd5b506102e76106803660046124c0565b61118d565b348015610690575f80fd5b506014546106e49060ff80821691610100810482169162010000820481169163010000008104821691600160201b8204811691650100000000008104821691600160301b8204811691600160381b90041688565b6040805160ff998a16815297891660208901529588169587019590955292861660608601529085166080850152841660a0840152831660c083015290911660e082015261010001610262565b34801561073b575f80fd5b506102e761074a36600461251b565b61126d565b34801561075a575f80fd5b506102f961076936600461251b565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b34801561079e575f80fd5b506102e76107ad3660046124e4565b6112c5565b3480156107bd575f80fd5b506102e76107cc3660046123c7565b611319565b3480156107dc575f80fd5b5061028a6107eb3660046123c7565b60106020525f908152604090205460ff1681565b34801561080a575f80fd5b506103dc7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60605f805461084090612547565b80601f016020809104026020016040519081016040528092919081815260200182805461086c90612547565b80156108b75780601f1061088e576101008083540402835291602001916108b7565b820191905f5260205f20905b81548152906001019060200180831161089a57829003601f168201915b5050505050905090565b5f6108cd338484611403565b5060015b92915050565b6005546001600160a01b0316331461090a5760405162461bcd60e51b81526004016109019061257f565b60405180910390fd5b606461091560025490565b61091f91906125c8565b6103e88361092c60025490565b61093691906125e7565b61094091906125c8565b101561099a5760405162461bcd60e51b815260206004820152602360248201527f6d6178427579416d6f756e74206d75737420626520686967686572207468616e60448201526220312560e81b6064820152608401610901565b60646109a560025490565b6109af91906125c8565b6103e8826109bc60025490565b6109c691906125e7565b6109d091906125c8565b1015610a2a5760405162461bcd60e51b8152602060048201526024808201527f6d617853656c6c416d6f756e74206d75737420626520686967686572207468616044820152636e20312560e01b6064820152608401610901565b6103e882610a3760025490565b610a4191906125e7565b610a4b91906125c8565b6008556103e881610a5b60025490565b610a6591906125e7565b610a6f91906125c8565b6009555050565b5f610a82848484611464565b610ad38433610ace8560405180606001604052806028815260200161276d602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611b4c565b611403565b5060015b9392505050565b6005546001600160a01b03163314610b085760405162461bcd60e51b81526004016109019061257f565b8360145f0160026101000a81548160ff021916908360ff1602179055508060145f0160066101000a81548160ff021916908360ff1602179055508560145f0160016101000a81548160ff021916908360ff1602179055508260145f0160056101000a81548160ff021916908360ff1602179055508460145f0160036101000a81548160ff021916908360ff1602179055508160145f0160076101000a81548160ff021916908360ff16021790555060145f0160029054906101000a900460ff1660145f0160039054906101000a900460ff1660145f0160019054906101000a900460ff16610bf691906125fe565b610c0091906125fe565b6014805460ff191660ff9283161790819055600160301b8104821691610c3a91600160381b810482169165010000000000909104166125fe565b610c4491906125fe565b6014805460ff928316600160201b0264ff000000001982168117909255601e9183169216919091171115610cba5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610901565b601454601e600160201b90910460ff161115610d185760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610901565b505050505050565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916108cd918590610ace9086611b84565b6005545f906001600160a01b03163314610d815760405162461bcd60e51b81526004016109019061257f565b50600b81905560015b919050565b6005546001600160a01b03163314610db95760405162461bcd60e51b81526004016109019061257f565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610e2c5760405162461bcd60e51b81526004016109019061257f565b600254600855600254600955600254600a55565b6005546001600160a01b03163314610e6a5760405162461bcd60e51b81526004016109019061257f565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ebe5760405162461bcd60e51b81526004016109019061257f565b816001600160a01b031663a9059cbb610edf6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610f29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4d9190612617565b505050565b60606001805461084090612547565b6005546001600160a01b03163314610f8b5760405162461bcd60e51b81526004016109019061257f565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610fc2573d5f803e3d5ffd5b5050565b5f6108cd3384610ace8560405180606001604052806025815260200161272260259139335f9081526004602090815260408083206001600160a01b038d1684529091529020549190611b4c565b5f6108cd338484611464565b6005546001600160a01b031633146110495760405162461bcd60e51b81526004016109019061257f565b6007805461ffff60a01b191661010160a01b17905543600f55565b6005546001600160a01b0316331461108e5760405162461bcd60e51b81526004016109019061257f565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110e25760405162461bcd60e51b81526004016109019061257f565b7f000000000000000000000000383bbe4afa6130fe31a5e574ec96cb5a78d75f156001600160a01b0316826001600160a01b0316036111635760405162461bcd60e51b815260206004820152601760248201527f4d757374206b65657020756e69737761705632506169720000000000000000006044820152606401610901565b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111b75760405162461bcd60e51b81526004016109019061257f565b60646111c260025490565b6111cc91906125c8565b6103e8826111d960025490565b6111e391906125e7565b6111ed91906125c8565b10156112465760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015261312560f01b6064820152608401610901565b6103e88161125360025490565b61125d91906125e7565b61126791906125c8565b600a5550565b6005546001600160a01b031633146112975760405162461bcd60e51b81526004016109019061257f565b600780546001600160a01b039384166001600160a01b03199182161790915560068054929093169116179055565b6005546001600160a01b031633146112ef5760405162461bcd60e51b81526004016109019061257f565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113435760405162461bcd60e51b81526004016109019061257f565b6001600160a01b0381166113a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610901565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b805f0361147657610f4d83835f611be2565b6005546001600160a01b038481169116148015906114a257506005546001600160a01b03838116911614155b80156114b85750600754600160b01b900460ff16155b1561174d57600754600160a01b900460ff16611550576001600160a01b0383165f9081526011602052604090205460ff168061150b57506001600160a01b0382165f9081526011602052604090205460ff165b6115505760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610901565b6001600160a01b0383165f9081526010602052604090205460ff16801561158f57506001600160a01b0382165f9081526012602052604090205460ff16155b156115eb576008548111156115e65760405162461bcd60e51b815260206004820152601c60248201527f627579207472616e73666572206f766572206d617820616d6f756e74000000006044820152606401610901565b611681565b6001600160a01b0382165f9081526010602052604090205460ff16801561162a57506001600160a01b0383165f9081526012602052604090205460ff16155b15611681576009548111156116815760405162461bcd60e51b815260206004820152601d60248201527f53656c6c207472616e73666572206f766572206d617820616d6f756e740000006044820152606401610901565b5f61168d848484611c9f565b9050836001600160a01b03166116a4858585611c9f565b6001600160a01b0316146116c3576116bd838284611be2565b50505050565b6001600160a01b0383165f9081526013602052604090205460ff1661174b57600a546001600160a01b0384165f908152600360205260409020546117079084612632565b111561174b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610901565b505b305f90815260036020526040902054600b54811080159081906117795750600754600160a81b900460ff165b801561178f5750600754600160b01b900460ff16155b80156117b257506001600160a01b0384165f9081526010602052604090205460ff165b80156117d657506001600160a01b0385165f9081526011602052604090205460ff16155b80156117fa57506001600160a01b0384165f9081526011602052604090205460ff16155b15611828576007805460ff60b01b1916600160b01b17905561181a611d10565b6007805460ff60b01b191690555b6007546001600160a01b0386165f9081526011602052604090205460ff600160b01b90920482161591168061187457506001600160a01b0385165f9081526011602052604090205460ff165b1561187c57505f5b8015611b41575f600f54431015611904576118a3606461189d876063611f32565b90611fb0565b905060636118b282605e6125e7565b6118bc91906125c8565b600c5f8282546118cc9190612632565b90915550606390506118df8260056125e7565b6118e991906125c8565b600e5f8282546118f99190612632565b90915550611b229050565b6001600160a01b0386165f9081526010602052604090205460ff1680156119365750601454600160201b900460ff1615155b15611a28576006546119529088906001600160a01b0316611ff1565b156119605750505050505050565b60145461197f9060649061189d908890600160201b900460ff16611f32565b60145490915060ff600160201b82048116916119a491600160381b90910416836125e7565b6119ae91906125c8565b600d5f8282546119be9190612632565b909155505060145460ff600160201b82048116916119e7916501000000000090910416836125e7565b6119f191906125c8565b600c5f828254611a019190612632565b909155505060145460ff600160201b82048116916118df91600160301b90910416836125e7565b6001600160a01b0387165f9081526010602052604090205460ff168015611a53575060145460ff1615155b15611b2257601454611a709060649061189d90889060ff16611f32565b60145490915060ff80821691611a8f91630100000090910416836125e7565b611a9991906125c8565b600d5f828254611aa99190612632565b909155505060145460ff80821691611ac89161010090910416836125e7565b611ad291906125c8565b600c5f828254611ae29190612632565b909155505060145460ff80821691611b02916201000090910416836125e7565b611b0c91906125c8565b600e5f828254611b1c9190612632565b90915550505b8015611b3357611b33873083611be2565b611b3d8186612645565b9450505b610d18868686611be2565b5f8184841115611b6f5760405162461bcd60e51b8152600401610901919061233b565b505f611b7b8486612645565b95945050505050565b5f80611b908385612632565b905083811015610ad75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610901565b611c1e81604051806060016040528060268152602001612747602691396001600160a01b0386165f908152600360205260409020549190611b4c565b6001600160a01b038085165f908152600360205260408082209390935590841681522054611c4c9082611b84565b6001600160a01b038084165f8181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114579085815260200190565b6001600160a01b0383165f9081526003602052604081205482118015611cdc57506001600160a01b0384165f9081526012602052604090205460ff165b15611d08576001600160a01b0383165f9081526010602052604090205460ff1615611d0857505f610ad7565b509192915050565b305f9081526003602052604081205490505f600e54600c54600d54611d359190612632565b611d3f9190612632565b90505f821580611d4d575081155b15611d5757505050565b600b54611d659060146125e7565b831115611d7d57600b54611d7a9060146125e7565b92505b5f600283600d5486611d8f91906125e7565b611d9991906125c8565b611da391906125c8565b90505f611db08583612043565b905047611dbc82612084565b5f611dc74783612043565b90505f611de38761189d600c5485611f3290919063ffffffff16565b90505f611dff8861189d600e5486611f3290919063ffffffff16565b90505f611e0c8284612632565b611e169085612645565b5f600d819055600c819055600e5590508615801590611e3457505f81115b15611e7d57611e438782612232565b60408051878152602081018390527f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a15b6006546001600160a01b0316611e938447612645565b6040515f81818185875af1925050503d805f8114611ecc576040519150601f19603f3d011682016040523d82523d5f602084013e611ed1565b606091505b50506007546040519199506001600160a01b03169047905f81818185875af1925050503d805f8114611f1e576040519150601f19603f3d011682016040523d82523d5f602084013e611f23565b606091505b50505050505050505050505050565b5f825f03611f4157505f6108d1565b5f611f4c83856125e7565b905082611f5985836125c8565b14610ad75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610901565b5f610ad783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061230f565b6001600160a01b0382165f9081526010602052604081205460ff1615801561202e57506001600160a01b0382165f90815260036020526040812054115b1561203b575060016108d1565b505f92915050565b5f610ad783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b4c565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106120b7576120b7612658565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612133573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612157919061266c565b8160018151811061216a5761216a612658565b60200260200101906001600160a01b031690816001600160a01b0316815250506121b5307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611403565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906122099085905f90869030904290600401612687565b5f604051808303815f87803b158015612220575f80fd5b505af1158015610d18573d5f803e3d5ffd5b61225d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611403565b60405163f305d71960e01b81523060048201819052602482018490525f60448301819052606483015260848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c40160606040518083038185885af11580156122e3573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061230891906126f6565b5050505050565b5f818361232f5760405162461bcd60e51b8152600401610901919061233b565b505f611b7b84866125c8565b5f6020808352835180828501525f5b818110156123665785810183015185820160400152820161234a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461239a575f80fd5b50565b5f80604083850312156123ae575f80fd5b82356123b981612386565b946020939093013593505050565b5f602082840312156123d7575f80fd5b8135610ad781612386565b5f80604083850312156123f3575f80fd5b50508035926020909101359150565b5f805f60608486031215612414575f80fd5b833561241f81612386565b9250602084013561242f81612386565b929592945050506040919091013590565b803560ff81168114610d8a575f80fd5b5f805f805f8060c08789031215612465575f80fd5b61246e87612440565b955061247c60208801612440565b945061248a60408801612440565b935061249860608801612440565b92506124a660808801612440565b91506124b460a08801612440565b90509295509295509295565b5f602082840312156124d0575f80fd5b5035919050565b801515811461239a575f80fd5b5f80604083850312156124f5575f80fd5b823561250081612386565b91506020830135612510816124d7565b809150509250929050565b5f806040838503121561252c575f80fd5b823561253781612386565b9150602083013561251081612386565b600181811c9082168061255b57607f821691505b60208210810361257957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f826125e257634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108d1576108d16125b4565b60ff81811683821601908111156108d1576108d16125b4565b5f60208284031215612627575f80fd5b8151610ad7816124d7565b808201808211156108d1576108d16125b4565b818103818111156108d1576108d16125b4565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561267c575f80fd5b8151610ad781612386565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156126d55784516001600160a01b0316835293830193918301916001016126b0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612708575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a206465637265617365642063616e6e6f742062652062656c6f77207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122024ce7653f799949343e1101e56be8cf77798d1fbe803387b2294e198fa54ec5664736f6c63430008140033
Deployed Bytecode Sourcemap
8636:14285:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5668:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5164:210;;;;;;;;;;-1:-1:-1;5164:210:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5164:210:0;1023:187:1;9465:63:0;;;;;;;;;;-1:-1:-1;9465:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21075:555;;;;;;;;;;-1:-1:-1;21075:555:0;;;;;:::i;:::-;;:::i;:::-;;5888:108;;;;;;;;;;-1:-1:-1;5976:12:0;;5888:108;;;1866:25:1;;;1854:2;1839:18;5888:108:0;1720:177:1;9251:33:0;;;;;;;;;;;;;;;;9211;;;;;;;;;;;;;;;;6228:454;;;;;;;;;;-1:-1:-1;6228:454:0;;;;;:::i;:::-;;:::i;5567:93::-;;;;;;;;;;-1:-1:-1;5567:93:0;;5650:2;2505:36:1;;2493:2;2478:18;5567:93:0;2363:184:1;21954:964:0;;;;;;;;;;-1:-1:-1;21954:964:0;;;;;:::i;:::-;;:::i;4448:300::-;;;;;;;;;;-1:-1:-1;4448:300:0;;;;;:::i;:::-;;:::i;8837:38::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3417:32:1;;;3399:51;;3387:2;3372:18;8837:38:0;3253:203:1;13228:126:0;;;;;;;;;;-1:-1:-1;13228:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;13318:28:0;13294:4;13318:28;;;:19;:28;;;;;;;;;13228:126;20875:192;;;;;;;;;;-1:-1:-1;20875:192:0;;;;;:::i;:::-;;:::i;8882:25::-;;;;;;;;;;-1:-1:-1;8882:25:0;;;;-1:-1:-1;;;;;8882:25:0;;;8991:31;;;;;;;;;;-1:-1:-1;8991:31:0;;;;-1:-1:-1;;;8991:31:0;;;;;;5382:177;;;;;;;;;;-1:-1:-1;5382:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;5533:18:0;5501:7;5533:18;;;:9;:18;;;;;;;5382:177;8192:148;;;;;;;;;;;;;:::i;13767:172::-;;;;;;;;;;;;;:::i;12913:167::-;;;;;;;;;;-1:-1:-1;12913:167:0;;;;;:::i;:::-;;:::i;14067:135::-;;;;;;;;;;-1:-1:-1;14067:135:0;;;;;:::i;:::-;;:::i;8105:79::-;;;;;;;;;;-1:-1:-1;8170:6:0;;-1:-1:-1;;;;;8170:6:0;8105:79;;5776:104;;;;;;;;;;;;;:::i;9535:58::-;;;;;;;;;;-1:-1:-1;9535:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13947:112;;;;;;;;;;-1:-1:-1;13947:112:0;;;;;:::i;:::-;;:::i;9291:27::-;;;;;;;;;;;;;;;;4756:400;;;;;;;;;;-1:-1:-1;4756:400:0;;;;;:::i;:::-;;:::i;6004:216::-;;;;;;;;;;-1:-1:-1;6004:216:0;;;;;:::i;:::-;;:::i;9029:22::-;;;;;;;;;;-1:-1:-1;9029:22:0;;;;-1:-1:-1;;;9029:22:0;;;;;;14468:139;;;;;;;;;;;;;:::i;13088:132::-;;;;;;;;;;-1:-1:-1;13088:132:0;;;;;:::i;:::-;;:::i;14615:177::-;;;;;;;;;;-1:-1:-1;14615:177:0;;;;;:::i;:::-;;:::i;21638:308::-;;;;;;;;;;-1:-1:-1;21638:308:0;;;;;:::i;:::-;;:::i;9872:296::-;;;;;;;;;;-1:-1:-1;9872:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9872:296:0;;;;;;;;;;;-1:-1:-1;;;9872:296:0;;;;;-1:-1:-1;;;9872:296:0;;;;;;;;;4477:4:1;4508:15;;;4490:34;;4560:15;;;4555:2;4540:18;;4533:43;4612:15;;;4592:18;;;4585:43;;;;4664:15;;;4659:2;4644:18;;4637:43;4717:15;;;4711:3;4696:19;;4689:44;4770:15;;4764:3;4749:19;;4742:44;4823:15;;4817:3;4802:19;;4795:44;4876:15;;;4870:3;4855:19;;4848:44;4454:3;4439:19;9872:296:0;4156:742:1;14800:197:0;;;;;;;;;;-1:-1:-1;14800:197:0;;;;;:::i;:::-;;:::i;4239:201::-;;;;;;;;;;-1:-1:-1;4239:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4405:18:0;;;4373:7;4405:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4239:201;12736:169;;;;;;;;;;-1:-1:-1;12736:169:0;;;;;:::i;:::-;;:::i;8348:281::-;;;;;;;;;;-1:-1:-1;8348:281:0;;;;;:::i;:::-;;:::i;9357:42::-;;;;;;;;;;-1:-1:-1;9357:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8788;;;;;;;;;;;;;;;5668:100;5722:13;5755:5;5748:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5668:100;:::o;5164:210::-;5283:4;5305:39;2752:10;5328:7;5337:6;5305:8;:39::i;:::-;-1:-1:-1;5362:4:0;5164:210;;;;;:::o;21075:555::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;;;;;;;;;21274:3:::1;21258:13;5976:12:::0;;;5888:108;21258:13:::1;:19;;;;:::i;:::-;21248:4;21235:9;21219:13;5976:12:::0;;;5888:108;21219:13:::1;:25;;;;:::i;:::-;21218:34;;;;:::i;:::-;21217:61;;21195:146;;;::::0;-1:-1:-1;;;21195:146:0;;7006:2:1;21195:146:0::1;::::0;::::1;6988:21:1::0;7045:2;7025:18;;;7018:30;7084:34;7064:18;;;7057:62;-1:-1:-1;;;7135:18:1;;;7128:33;7178:19;;21195:146:0::1;6804:399:1::0;21195:146:0::1;21432:3;21416:13;5976:12:::0;;;5888:108;21416:13:::1;:19;;;;:::i;:::-;21406:4;21392:10;21376:13;5976:12:::0;;;5888:108;21376:13:::1;:26;;;;:::i;:::-;21375:35;;;;:::i;:::-;21374:62;;21352:148;;;::::0;-1:-1:-1;;;21352:148:0;;7410:2:1;21352:148:0::1;::::0;::::1;7392:21:1::0;7449:2;7429:18;;;7422:30;7488:34;7468:18;;;7461:62;-1:-1:-1;;;7539:18:1;;;7532:34;7583:19;;21352:148:0::1;7208:400:1::0;21352:148:0::1;21556:4;21543:9;21527:13;5976:12:::0;;;5888:108;21527:13:::1;:25;;;;:::i;:::-;21526:34;;;;:::i;:::-;21511:12;:49:::0;21618:4:::1;21604:10:::0;21588:13:::1;5976:12:::0;;;5888:108;21588:13:::1;:26;;;;:::i;:::-;21587:35;;;;:::i;:::-;21571:13;:51:::0;-1:-1:-1;;21075:555:0:o;6228:454::-;6368:4;6385:36;6395:6;6403:9;6414:6;6385:9;:36::i;:::-;6432:220;6455:6;2752:10;6503:138;6559:6;6503:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6503:19:0;;;;;;:11;:19;;;;;;;;2752:10;6503:33;;;;;;;;;;:37;:138::i;:::-;6432:8;:220::i;:::-;-1:-1:-1;6670:4:0;6228:454;;;;;;:::o;21954:964::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;22218:10:::1;22200:5;:15;;;:28;;;;;;;;;;;;;;;;;;22258:11;22239:5;:16;;;:30;;;;;;;;;;;;;;;;;;22306:16;22282:5;:21;;;:40;;;;;;;;;;;;;;;;;;22358:17;22333:5;:22;;;:42;;;;;;;;;;;;;;;;;;22412:16;22388:5;:21;;;:40;;;;;;;;;;;;;;;;;;22464:17;22439:5;:22;;;:42;;;;;;;;;;;;;;;;;;22602:5;:15;;;;;;;;;;;;22565:5;:21;;;;;;;;;;;;22528:5;:21;;;;;;;;;;;;:58;;;;:::i;:::-;:89;;;;:::i;:::-;22494:5;:123:::0;;-1:-1:-1;;22494:123:0::1;;::::0;;::::1;;::::0;;;;-1:-1:-1;;;22739:16:0;::::1;::::0;::::1;::::0;22663:60:::1;::::0;-1:-1:-1;;;22701:22:0;::::1;::::0;::::1;::::0;22663;;;::::1;;:60;:::i;:::-;:92;;;;:::i;:::-;22628:5;:127:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;22628:127:0::1;-1:-1:-1::0;;22628:127:0;::::1;::::0;::::1;::::0;;;22796:2:::1;22774:18:::0;;;;;;;;;:24:::1;;22766:66;;;::::0;-1:-1:-1;;;22766:66:0;;7968:2:1;22766:66:0::1;::::0;::::1;7950:21:1::0;8007:2;7987:18;;;7980:30;8046:31;8026:18;;;8019:59;8095:18;;22766:66:0::1;7766:353:1::0;22766:66:0::1;22851:5;:19:::0;22874:2:::1;-1:-1:-1::0;;;22851:19:0;;::::1;;;:25;;22843:67;;;::::0;-1:-1:-1;;;22843:67:0;;7968:2:1;22843:67:0::1;::::0;::::1;7950:21:1::0;8007:2;7987:18;;;7980:30;8046:31;8026:18;;;8019:59;8095:18;;22843:67:0::1;7766:353:1::0;22843:67:0::1;21954:964:::0;;;;;;:::o;4448:300::-;2752:10;4563:4;4657:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4657:34:0;;;;;;;;;;4563:4;;4585:133;;4635:7;;4657:50;;4696:10;4657:38;:50::i;20875:192::-;8018:6;;20984:4;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;-1:-1:-1;21006:19:0::1;:31:::0;;;21055:4:::1;8088:1;20875:192:::0;;;:::o;8192:148::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;8283:6:::1;::::0;8262:40:::1;::::0;8299:1:::1;::::0;-1:-1:-1;;;;;8283:6:0::1;::::0;8262:40:::1;::::0;8299:1;;8262:40:::1;8313:6;:19:::0;;-1:-1:-1;;;;;;8313:19:0::1;::::0;;8192:148::o;13767:172::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;5976:12;;13821::::1;:28:::0;5976:12;;13860:13:::1;:29:::0;5976:12;;13900:15:::1;:31:::0;13767:172::o;12913:167::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13026:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;13026:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12913:167::o;14067:135::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;14159:8:::1;-1:-1:-1::0;;;;;14152:25:0::1;;14178:7;8170:6:::0;;-1:-1:-1;;;;;8170:6:0;;8105:79;14178:7:::1;14152:42;::::0;-1:-1:-1;;;;;;14152:42:0::1;::::0;;;;;;-1:-1:-1;;;;;8316:32:1;;;14152:42:0::1;::::0;::::1;8298:51:1::0;8365:18;;;8358:34;;;8271:18;;14152:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14067:135:::0;;:::o;5776:104::-;5832:13;5865:7;5858:14;;;;;:::i;13947:112::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;8170:6;;14015:36:::1;::::0;-1:-1:-1;;;;;8170:6:0;;;;14015:36;::::1;;;::::0;14041:9;;14015:36:::1;::::0;;;14041:9;8170:6;14015:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13947:112:::0;:::o;4756:400::-;4876:4;4898:228;2752:10;4948:7;4970:145;5027:15;4970:145;;;;;;;;;;;;;;;;;2752:10;4970:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4970:34:0;;;;;;;;;;;;:38;:145::i;6004:216::-;6126:4;6148:42;2752:10;6172:9;6183:6;6148:9;:42::i;14468:139::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;14521:9:::1;:16:::0;;-1:-1:-1;;;;14548:18:0;-1:-1:-1;;;14548:18:0;;;14587:12:::1;14577:7;:22:::0;14468:139::o;13088:132::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13173:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;13173:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13088:132::o;14615:177::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;14708:13:::1;-1:-1:-1::0;;;;;14700:21:0::1;:4;-1:-1:-1::0;;;;;14700:21:0::1;::::0;14692:57:::1;;;::::0;-1:-1:-1;;;14692:57:0;;8855:2:1;14692:57:0::1;::::0;::::1;8837:21:1::0;8894:2;8874:18;;;8867:30;8933:25;8913:18;;;8906:53;8976:18;;14692:57:0::1;8653:347:1::0;14692:57:0::1;-1:-1:-1::0;;;;;14760:16:0;;;::::1;;::::0;;;:10:::1;:16;::::0;;;;:24;;-1:-1:-1;;14760:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14615:177::o;21638:308::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;21805:3:::1;21789:13;5976:12:::0;;;5888:108;21789:13:::1;:19;;;;:::i;:::-;21779:4;21762:13;21746;5976:12:::0;;;5888:108;21746:13:::1;:29;;;;:::i;:::-;21745:38;;;;:::i;:::-;21744:65;;21722:149;;;::::0;-1:-1:-1;;;21722:149:0;;9207:2:1;21722:149:0::1;::::0;::::1;9189:21:1::0;9246:2;9226:18;;;9219:30;9285:34;9265:18;;;9258:62;-1:-1:-1;;;9336:18:1;;;9329:32;9378:19;;21722:149:0::1;9005:398:1::0;21722:149:0::1;21934:4;21917:13;21901;5976:12:::0;;;5888:108;21901:13:::1;:29;;;;:::i;:::-;21900:38;;;;:::i;:::-;21882:15;:56:::0;-1:-1:-1;21638:308:0:o;14800:197::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;14920:15:::1;:34:::0;;-1:-1:-1;;;;;14920:34:0;;::::1;-1:-1:-1::0;;;;;;14920:34:0;;::::1;;::::0;;;14965:10:::1;:24:::0;;;;;::::1;::::0;::::1;;::::0;;14800:197::o;12736:169::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12851:35:0;;;::::1;;::::0;;;:26:::1;:35;::::0;;;;:46;;-1:-1:-1;;12851:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12736:169::o;8348:281::-;8018:6;;-1:-1:-1;;;;;8018:6:0;2752:10;8018:22;8010:67;;;;-1:-1:-1;;;8010:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8451:22:0;::::1;8429:110;;;::::0;-1:-1:-1;;;8429:110:0;;9610:2:1;8429:110:0::1;::::0;::::1;9592:21:1::0;9649:2;9629:18;;;9622:30;9688:34;9668:18;;;9661:62;-1:-1:-1;;;9739:18:1;;;9732:36;9785:19;;8429:110:0::1;9408:402:1::0;8429:110:0::1;8576:6;::::0;8555:38:::1;::::0;-1:-1:-1;;;;;8555:38:0;;::::1;::::0;8576:6:::1;::::0;8555:38:::1;::::0;8576:6:::1;::::0;8555:38:::1;8604:6;:17:::0;;-1:-1:-1;;;;;;8604:17:0::1;-1:-1:-1::0;;;;;8604:17:0;;;::::1;::::0;;;::::1;::::0;;8348:281::o;7407:220::-;-1:-1:-1;;;;;7535:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7587:32;;1866:25:1;;;7587:32:0;;1839:18:1;7587:32:0;;;;;;;;7407:220;;;:::o;17080:3787::-;17217:6;17227:1;17217:11;17213:102;;17245:37;17261:6;17269:9;17280:1;17245:15;:37::i;17213:102::-;8170:6;;-1:-1:-1;;;;;17331:17:0;;;8170:6;;17331:17;;;;:41;;-1:-1:-1;8170:6:0;;-1:-1:-1;;;;;17352:20:0;;;8170:6;;17352:20;;17331:41;:56;;;;-1:-1:-1;17377:10:0;;-1:-1:-1;;;17377:10:0;;;;17376:11;17331:56;17327:1336;;;17409:9;;-1:-1:-1;;;17409:9:0;;;;17404:233;;-1:-1:-1;;;;;17469:27:0;;;;;;:19;:27;;;;;;;;;:86;;-1:-1:-1;;;;;;17525:30:0;;;;;;:19;:30;;;;;;;;17469:86;17439:182;;;;-1:-1:-1;;;17439:182:0;;10017:2:1;17439:182:0;;;9999:21:1;10056:2;10036:18;;;10029:30;-1:-1:-1;;;10075:18:1;;;10068:52;10137:18;;17439:182:0;9815:346:1;17439:182:0;-1:-1:-1;;;;;17675:18:0;;;;;;:10;:18;;;;;;;;:82;;;;-1:-1:-1;;;;;;17715:42:0;;;;;;:31;:42;;;;;;;;17714:43;17675:82;17653:505;;;17810:12;;17800:6;:22;;17792:63;;;;-1:-1:-1;;;17792:63:0;;10368:2:1;17792:63:0;;;10350:21:1;10407:2;10387:18;;;10380:30;10446;10426:18;;;10419:58;10494:18;;17792:63:0;10166:352:1;17792:63:0;17653:505;;;-1:-1:-1;;;;;17899:21:0;;;;;;:10;:21;;;;;;;;:82;;;;-1:-1:-1;;;;;;17942:39:0;;;;;;:31;:39;;;;;;;;17941:40;17899:82;17877:281;;;18056:13;;18046:6;:23;;18016:126;;;;-1:-1:-1;;;18016:126:0;;10725:2:1;18016:126:0;;;10707:21:1;10764:2;10744:18;;;10737:30;10803:31;10783:18;;;10776:59;10852:18;;18016:126:0;10523:353:1;18016:126:0;18174:19;18196:41;18211:6;18219:9;18230:6;18196:14;:41::i;:::-;18174:63;;18301:6;-1:-1:-1;;;;;18256:51:0;:41;18271:6;18279:9;18290:6;18256:14;:41::i;:::-;-1:-1:-1;;;;;18256:51:0;;18252:164;;18328:47;18344:9;18355:11;18368:6;18328:15;:47::i;:::-;18394:7;17080:3787;;;:::o;18252:164::-;-1:-1:-1;;;;;18437:37:0;;;;;;:26;:37;;;;;;;;18432:220;;18558:15;;-1:-1:-1;;;;;5533:18:0;;5501:7;5533:18;;;:9;:18;;;;;;18525:29;;:6;:29;:::i;:::-;:48;;18495:141;;;;-1:-1:-1;;;18495:141:0;;11213:2:1;18495:141:0;;;11195:21:1;11252:2;11232:18;;;11225:30;-1:-1:-1;;;11271:18:1;;;11264:49;11330:18;;18495:141:0;11011:343:1;18495:141:0;17389:1274;17327:1336;18724:4;18675:28;5533:18;;;:9;:18;;;;;;18780:19;;18756:43;;;;;;;18830:35;;-1:-1:-1;18854:11:0;;-1:-1:-1;;;18854:11:0;;;;18830:35;:63;;;;-1:-1:-1;18883:10:0;;-1:-1:-1;;;18883:10:0;;;;18882:11;18830:63;:101;;;;-1:-1:-1;;;;;;18910:21:0;;;;;;:10;:21;;;;;;;;18830:101;:146;;;;-1:-1:-1;;;;;;18949:27:0;;;;;;:19;:27;;;;;;;;18948:28;18830:146;:194;;;;-1:-1:-1;;;;;;18994:30:0;;;;;;:19;:30;;;;;;;;18993:31;18830:194;18812:326;;;19051:10;:17;;-1:-1:-1;;;;19051:17:0;-1:-1:-1;;;19051:17:0;;;19083:10;:8;:10::i;:::-;19108;:18;;-1:-1:-1;;;;19108:18:0;;;18812:326;19166:10;;-1:-1:-1;;;;;19191:27:0;;19150:12;19191:27;;;:19;:27;;;;;;19166:10;-1:-1:-1;;;19166:10:0;;;;;19165:11;;19191:27;;:61;;-1:-1:-1;;;;;;19222:30:0;;;;;;:19;:30;;;;;;;;19191:61;19187:109;;;-1:-1:-1;19279:5:0;19187:109;19312:7;19308:1499;;;19336:12;19386:7;;19371:12;:22;19367:1291;;;19421:23;19440:3;19421:14;:6;19432:2;19421:10;:14::i;:::-;:18;;:23::i;:::-;19414:30;-1:-1:-1;19499:2:0;19486:9;19414:30;19493:2;19486:9;:::i;:::-;19485:16;;;;:::i;:::-;19463:18;;:38;;;;;;;:::i;:::-;;;;-1:-1:-1;19549:2:0;;-1:-1:-1;19537:8:0;:4;19544:1;19537:8;:::i;:::-;19536:15;;;;:::i;:::-;19520:12;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;19367:1291:0;;-1:-1:-1;19367:1291:0;;-1:-1:-1;;;;;19577:21:0;;;;;;:10;:21;;;;;;;;:48;;;;-1:-1:-1;19602:5:0;:19;-1:-1:-1;;;19602:19:0;;;;:23;;19577:48;19573:1085;;;19674:10;;19650:35;;19666:6;;-1:-1:-1;;;;;19674:10:0;19650:15;:35::i;:::-;19646:90;;;19710:7;;;;17080:3787;;;:::o;19646:90::-;19772:5;:19;19761:40;;19797:3;;19761:31;;:6;;-1:-1:-1;;;19772:19:0;;;;19761:10;:31::i;:40::-;19918:5;:19;19754:47;;-1:-1:-1;19918:19:0;-1:-1:-1;;;19918:19:0;;;;;19864:29;;-1:-1:-1;;;19871:22:0;;;;19754:47;19864:29;:::i;:::-;19863:74;;;;:::i;:::-;19820:18;;:117;;;;;;;:::i;:::-;;;;-1:-1:-1;;20054:5:0;:19;;-1:-1:-1;;;20054:19:0;;;;;20000:29;;20007:22;;;;;20000:4;:29;:::i;:::-;19999:74;;;;:::i;:::-;19956:18;;:117;;;;;;;:::i;:::-;;;;-1:-1:-1;;20138:5:0;:19;;-1:-1:-1;;;20138:19:0;;;;;20111:23;;-1:-1:-1;;;20118:16:0;;;;20111:4;:23;:::i;19573:1085::-;-1:-1:-1;;;;;20183:18:0;;;;;;:10;:18;;;;;;;;:44;;;;-1:-1:-1;20205:5:0;:18;;;:22;;20183:44;20179:479;;;20266:5;:18;20255:39;;20290:3;;20255:30;;:6;;20266:18;;20255:10;:30::i;:39::-;20410:5;:18;20248:46;;-1:-1:-1;20410:18:0;;;;;20357:28;;20364:21;;;;;20248:46;20357:28;:::i;:::-;20356:72;;;;:::i;:::-;20313:18;;:115;;;;;;;:::i;:::-;;;;-1:-1:-1;;20544:5:0;:18;;;;;;20491:28;;20544:18;20498:21;;;;20491:4;:28;:::i;:::-;20490:72;;;;:::i;:::-;20447:18;;:115;;;;;;;:::i;:::-;;;;-1:-1:-1;;20624:5:0;:18;;;;;;20598:22;;20605:15;;;;;20598:4;:22;:::i;:::-;20597:45;;;;:::i;:::-;20581:12;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;20179:479:0;20678:8;;20674:93;;20707:44;20723:6;20739:4;20746;20707:15;:44::i;:::-;20781:14;20791:4;20781:14;;:::i;:::-;;;19321:1486;19308:1499;20817:42;20833:6;20841:9;20852:6;20817:15;:42::i;1040:224::-;1160:7;1196:12;1188:6;;;;1180:29;;;;-1:-1:-1;;;1180:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1220:9:0;1232:5;1236:1;1232;:5;:::i;:::-;1220:17;1040:224;-1:-1:-1;;;;;1040:224:0:o;84:179::-;142:7;;174:5;178:1;174;:5;:::i;:::-;162:17;;203:1;198;:6;;190:46;;;;-1:-1:-1;;;190:46:0;;11694:2:1;190:46:0;;;11676:21:1;11733:2;11713:18;;;11706:30;11772:29;11752:18;;;11745:57;11819:18;;190:46:0;11492:351:1;6690:385:0;6842:108;6878:6;6842:108;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6842:17:0;;;;;;:9;:17;;;;;;;:108;:21;:108::i;:::-;-1:-1:-1;;;;;6822:17:0;;;;;;;:9;:17;;;;;;:128;;;;6984:20;;;;;;;:32;;7009:6;6984:24;:32::i;:::-;-1:-1:-1;;;;;6961:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7032:35;;;;;;;;;;7060:6;1866:25:1;;1854:2;1839:18;;1720:177;13362:397:0;-1:-1:-1;;;;;5533:18:0;;13492:7;5533:18;;;:9;:18;;;;;;13550:6;-1:-1:-1;13530:82:0;;;;-1:-1:-1;;;;;;13573:39:0;;;;;;:31;:39;;;;;;;;13530:82;13512:216;;;-1:-1:-1;;;;;13643:20:0;;;;;;:10;:20;;;;;;;;13639:78;;;-1:-1:-1;13699:1:0;13684:17;;13639:78;-1:-1:-1;13745:6:0;;13362:397;-1:-1:-1;;13362:397:0:o;15005:1627::-;15093:4;15044:28;5533:18;;;:9;:18;;;;;;15044:55;;15110:14;15169:12;;15148:18;;15127;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;15110:71;-1:-1:-1;15192:12:0;15221:25;;;:40;;-1:-1:-1;15250:11:0;;15221:40;15217:79;;;15278:7;;;15005:1627::o;15217:79::-;15335:19;;:24;;15357:2;15335:24;:::i;:::-;15312:20;:47;15308:127;;;15399:19;;:24;;15421:2;15399:24;:::i;:::-;15376:47;;15308:127;15447:23;15554:1;15532:6;15497:18;;15474:20;:41;;;;:::i;:::-;15473:65;;;;:::i;:::-;:82;;;;:::i;:::-;15447:108;-1:-1:-1;15566:26:0;15595:41;:20;15447:108;15595:24;:41::i;:::-;15566:70;-1:-1:-1;15677:21:0;15711:36;15566:70;15711:16;:36::i;:::-;15760:18;15781:44;:21;15807:17;15781:25;:44::i;:::-;15760:65;;15838:23;15864:70;15917:6;15864:34;15879:18;;15864:10;:14;;:34;;;;:::i;:70::-;15838:96;;15945:17;15965:40;15998:6;15965:28;15980:12;;15965:10;:14;;:28;;;;:::i;:40::-;15945:60;-1:-1:-1;16016:23:0;16056:27;15945:60;16056:15;:27;:::i;:::-;16042:42;;:10;:42;:::i;:::-;16118:1;16097:18;:22;;;16130:18;:22;;;16163:12;:16;16016:68;-1:-1:-1;16196:19:0;;;;;:42;;;16237:1;16219:15;:19;16196:42;16192:192;;;16255:46;16268:15;16285;16255:12;:46::i;:::-;16321:51;;;12022:25:1;;;12078:2;12063:18;;12056:34;;;16321:51:0;;11995:18:1;16321:51:0;;;;;;;16192:192;16418:10;;-1:-1:-1;;;;;16418:10:0;16457:39;16481:15;16457:21;:39;:::i;:::-;16410:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16545:15:0;;16537:87;;16396:116;;-1:-1:-1;;;;;;16545:15:0;;16588:21;;16537:87;;;;16588:21;16545:15;16537:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;15005:1627:0:o;642:246::-;700:7;724:1;729;724:6;720:47;;-1:-1:-1;754:1:0;747:8;;720:47;777:9;789:5;793:1;789;:5;:::i;:::-;777:17;-1:-1:-1;822:1:0;813:5;817:1;777:17;813:5;:::i;:::-;:10;805:56;;;;-1:-1:-1;;;805:56:0;;12513:2:1;805:56:0;;;12495:21:1;12552:2;12532:18;;;12525:30;12591:34;12571:18;;;12564:62;-1:-1:-1;;;12642:18:1;;;12635:31;12683:19;;805:56:0;12311:397:1;271:132:0;329:7;356:39;360:1;363;356:39;;;;;;;;;;;;;;;;;:3;:39::i;14210:250::-;-1:-1:-1;;;;;14345:18:0;;14318:4;14345:18;;;:10;:18;;;;;;;;14344:19;:46;;;;-1:-1:-1;;;;;;5533:18:0;;14389:1;5533:18;;;:9;:18;;;;;;14367:23;14344:46;14340:90;;;-1:-1:-1;14414:4:0;14407:11;;14340:90;-1:-1:-1;14447:5:0;14210:250;;;;:::o;896:136::-;954:7;981:43;985:1;988;981:43;;;;;;;;;;;;;;;;;:3;:43::i;16640:432::-;16726:16;;;16740:1;16726:16;;;;;;;;16702:21;;16726:16;;;;;;;;;;-1:-1:-1;16726:16:0;16702:40;;16771:4;16753;16758:1;16753:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16753:23:0;;;-1:-1:-1;;;;;16753:23:0;;;;;16797:6;-1:-1:-1;;;;;16797:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16787:4;16792:1;16787:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16787:23:0;;;-1:-1:-1;;;;;16787:23:0;;;;;16821:49;16838:4;16853:6;16862:7;16821:8;:49::i;:::-;16881:183;;-1:-1:-1;;;16881:183:0;;-1:-1:-1;;;;;16881:6:0;:57;;;;:183;;16953:7;;16975:1;;16991:4;;17018;;17038:15;;16881:183;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12392:336;12469:49;12486:4;12501:6;12510:7;12469:8;:49::i;:::-;12529:191;;-1:-1:-1;;;12529:191:0;;12592:4;12529:191;;;14559:34:1;;;14609:18;;;14602:34;;;12634:1:0;14652:18:1;;;14645:34;;;14695:18;;;14688:34;14738:19;;;14731:44;12694:15:0;14791:19:1;;;14784:35;12529:6:0;-1:-1:-1;;;;;12529:22:0;;;;12559:9;;14493:19:1;;12529:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12392:336;;:::o;411:223::-;531:7;566:12;559:5;551:28;;;;-1:-1:-1;;;551:28:0;;;;;;;;:::i;:::-;-1:-1:-1;590:9:0;602:5;606:1;602;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1467:248::-;1535:6;1543;1596:2;1584:9;1575:7;1571:23;1567:32;1564:52;;;1612:1;1609;1602:12;1564:52;-1:-1:-1;;1635:23:1;;;1705:2;1690:18;;;1677:32;;-1:-1:-1;1467:248:1:o;1902:456::-;1979:6;1987;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2103:9;2090:23;2122:31;2147:5;2122:31;:::i;:::-;2172:5;-1:-1:-1;2229:2:1;2214:18;;2201:32;2242:33;2201:32;2242:33;:::i;:::-;1902:456;;2294:7;;-1:-1:-1;;;2348:2:1;2333:18;;;;2320:32;;1902:456::o;2552:156::-;2618:20;;2678:4;2667:16;;2657:27;;2647:55;;2698:1;2695;2688:12;2713:535;2805:6;2813;2821;2829;2837;2845;2898:3;2886:9;2877:7;2873:23;2869:33;2866:53;;;2915:1;2912;2905:12;2866:53;2938:27;2955:9;2938:27;:::i;:::-;2928:37;;2984:36;3016:2;3005:9;3001:18;2984:36;:::i;:::-;2974:46;;3039:36;3071:2;3060:9;3056:18;3039:36;:::i;:::-;3029:46;;3094:36;3126:2;3115:9;3111:18;3094:36;:::i;:::-;3084:46;;3149:37;3181:3;3170:9;3166:19;3149:37;:::i;:::-;3139:47;;3205:37;3237:3;3226:9;3222:19;3205:37;:::i;:::-;3195:47;;2713:535;;;;;;;;:::o;3461:180::-;3520:6;3573:2;3561:9;3552:7;3548:23;3544:32;3541:52;;;3589:1;3586;3579:12;3541:52;-1:-1:-1;3612:23:1;;3461:180;-1:-1:-1;3461:180:1:o;3646:118::-;3732:5;3725:13;3718:21;3711:5;3708:32;3698:60;;3754:1;3751;3744:12;3769:382;3834:6;3842;3895:2;3883:9;3874:7;3870:23;3866:32;3863:52;;;3911:1;3908;3901:12;3863:52;3950:9;3937:23;3969:31;3994:5;3969:31;:::i;:::-;4019:5;-1:-1:-1;4076:2:1;4061:18;;4048:32;4089:30;4048:32;4089:30;:::i;:::-;4138:7;4128:17;;;3769:382;;;;;:::o;4903:388::-;4971:6;4979;5032:2;5020:9;5011:7;5007:23;5003:32;5000:52;;;5048:1;5045;5038:12;5000:52;5087:9;5074:23;5106:31;5131:5;5106:31;:::i;:::-;5156:5;-1:-1:-1;5213:2:1;5198:18;;5185:32;5226:33;5185:32;5226:33;:::i;5531:380::-;5610:1;5606:12;;;;5653;;;5674:61;;5728:4;5720:6;5716:17;5706:27;;5674:61;5781:2;5773:6;5770:14;5750:18;5747:38;5744:161;;5827:10;5822:3;5818:20;5815:1;5808:31;5862:4;5859:1;5852:15;5890:4;5887:1;5880:15;5744:161;;5531:380;;;:::o;5916:356::-;6118:2;6100:21;;;6137:18;;;6130:30;6196:34;6191:2;6176:18;;6169:62;6263:2;6248:18;;5916:356::o;6277:127::-;6338:10;6333:3;6329:20;6326:1;6319:31;6369:4;6366:1;6359:15;6393:4;6390:1;6383:15;6409:217;6449:1;6475;6465:132;;6519:10;6514:3;6510:20;6507:1;6500:31;6554:4;6551:1;6544:15;6582:4;6579:1;6572:15;6465:132;-1:-1:-1;6611:9:1;;6409:217::o;6631:168::-;6704:9;;;6735;;6752:15;;;6746:22;;6732:37;6722:71;;6773:18;;:::i;7613:148::-;7701:4;7680:12;;;7694;;;7676:31;;7719:13;;7716:39;;;7735:18;;:::i;8403:245::-;8470:6;8523:2;8511:9;8502:7;8498:23;8494:32;8491:52;;;8539:1;8536;8529:12;8491:52;8571:9;8565:16;8590:28;8612:5;8590:28;:::i;10881:125::-;10946:9;;;10967:10;;;10964:36;;;10980:18;;:::i;11359:128::-;11426:9;;;11447:11;;;11444:37;;;11461:18;;:::i;12845:127::-;12906:10;12901:3;12897:20;12894:1;12887:31;12937:4;12934:1;12927:15;12961:4;12958:1;12951:15;12977:251;13047:6;13100:2;13088:9;13079:7;13075:23;13071:32;13068:52;;;13116:1;13113;13106:12;13068:52;13148:9;13142:16;13167:31;13192:5;13167:31;:::i;13233:980::-;13495:4;13543:3;13532:9;13528:19;13574:6;13563:9;13556:25;13600:2;13638:6;13633:2;13622:9;13618:18;13611:34;13681:3;13676:2;13665:9;13661:18;13654:31;13705:6;13740;13734:13;13771:6;13763;13756:22;13809:3;13798:9;13794:19;13787:26;;13848:2;13840:6;13836:15;13822:29;;13869:1;13879:195;13893:6;13890:1;13887:13;13879:195;;;13958:13;;-1:-1:-1;;;;;13954:39:1;13942:52;;14049:15;;;;14014:12;;;;13990:1;13908:9;13879:195;;;-1:-1:-1;;;;;;;14130:32:1;;;;14125:2;14110:18;;14103:60;-1:-1:-1;;;14194:3:1;14179:19;14172:35;14091:3;13233:980;-1:-1:-1;;;13233:980:1:o;14830:306::-;14918:6;14926;14934;14987:2;14975:9;14966:7;14962:23;14958:32;14955:52;;;15003:1;15000;14993:12;14955:52;15032:9;15026:16;15016:26;;15082:2;15071:9;15067:18;15061:25;15051:35;;15126:2;15115:9;15111:18;15105:25;15095:35;;14830:306;;;;;:::o
Swarm Source
ipfs://24ce7653f799949343e1101e56be8cf77798d1fbe803387b2294e198fa54ec56
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)