Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 13 from a total of 13 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| After Air Drop | 14131073 | 1488 days ago | IN | 0 ETH | 0.0047656 | ||||
| Transfer | 14131057 | 1488 days ago | IN | 0 ETH | 0.0190299 | ||||
| Transfer | 14131029 | 1488 days ago | IN | 0 ETH | 0.00887613 | ||||
| Prepare For Aird... | 14131029 | 1488 days ago | IN | 0 ETH | 0.00643671 | ||||
| After Air Drop | 14131020 | 1488 days ago | IN | 0 ETH | 0.00490023 | ||||
| Prepare For Aird... | 14130932 | 1488 days ago | IN | 0 ETH | 0.00481222 | ||||
| _transfer Owners... | 14130915 | 1488 days ago | IN | 0 ETH | 0.00398647 | ||||
| Set Liquidity Wa... | 14121571 | 1490 days ago | IN | 0 ETH | 0.01828288 | ||||
| Set Investment W... | 14121426 | 1490 days ago | IN | 0 ETH | 0.02543915 | ||||
| Set Charity Wall... | 14121351 | 1490 days ago | IN | 0 ETH | 0.01178378 | ||||
| Set Burn Wallet | 14121338 | 1490 days ago | IN | 0 ETH | 0.03042777 | ||||
| Set Charity Wall... | 14121332 | 1490 days ago | IN | 0 ETH | 0.03950585 | ||||
| Set Marketing Wa... | 14121320 | 1490 days ago | IN | 0 ETH | 0.04070393 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Koacombat
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-02-01
*/
// SPDX-License-Identifier: MIT
// File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol
pragma solidity ^0.8.4;
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
// File: @uniswap/v2-periphery/contracts/interfaces/IERC20.sol
pragma solidity ^0.8.4;
interface IERC20 {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
}
// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol
pragma solidity ^0.8.4;
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol
pragma solidity ^0.8.4;
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
// File: contracts/KoacombatGeneratorInfo.sol
/*
Create your own token @ https://www.createmytoken.com
Additional Blockchain Services @ https://www.metacrypt.org
*/
pragma solidity ^0.8.4;
contract KoacombatGeneratorInfo {
string private constant _VERSION = "v1.0.0";
function version() public pure returns (string memory) {
return _VERSION;
}
}
// File: contracts/KoacombatHelper.sol
pragma solidity ^0.8.4;
abstract contract KoacombatHelper {
address private __target;
string private __identifier;
constructor(string memory __metacrypt_id, address __metacrypt_target) payable {
__target = __metacrypt_target;
__identifier = __metacrypt_id;
payable(__metacrypt_target).transfer(msg.value);
}
function getIdentifier() public view returns (string memory) {
return __identifier;
}
}
// File: @openzeppelin/contracts/utils/Context.sol
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
// File: contracts/ERC20Ownable.sol
pragma solidity ^0.8.4;
abstract contract ERC20Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "ERC20Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "ERC20Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
// File: @openzeppelin/contracts/utils/math/SafeMath.sol
// OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol)
pragma solidity ^0.8.0;
// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.
/**
* @dev Wrappers over Solidity's arithmetic operations.
*
* NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
* now has built in overflow checking.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the substraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator.
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
/**
* @dev Returns the integer division of two unsigned integers, reverting with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting with custom message when dividing by zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryMod}.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
// File: contracts/Koacombat.sol
pragma solidity ^0.8.4;
contract Koacombat is
IERC20,
ERC20Ownable,
KoacombatHelper,
KoacombatGeneratorInfo
{
using SafeMath for uint256;
address dead = 0x000000000000000000000000000000000000dEaD;
address zero = address(0);
uint16 private maxFee = 10000; // 0.01% - 1, 1% - 100
uint16 public maxTxPercentage = 25; /// it means 0.25%
uint16 public maxRestrictionPercentage= 12; // consider 0.12%
mapping(address => uint256) private _rOwned;
mapping(address => uint256) private _tOwned;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isExcludedFromFee;
mapping(address => bool) private _isExcluded;
address[] private _excluded;
uint256 private constant MAX = ~uint256(0);
uint256 private _tTotal;
uint256 private _rTotal;
uint256 private _tFeeTotal;
string public _name = "KOACOMBAT";
string public _symbol = "MMACOMBAT";
uint8 private _decimals = 18;
uint16 public _taxFee = 250; // Fee for Reflection
uint16 private _previousTaxFee = _taxFee;
address private burnWallet; // burn wallet
uint16 public _marketingFee = 350; // Fee to marketing wallet
uint16 private _previousMarketingFee = _marketingFee;
address payable public marketingWallet; // marketing wallet
uint16 public _liquidityFee = 200; // Fee to liquidity pool wallet
uint16 private _previousLiquidityFee = _liquidityFee;
address payable public liquidityWallet; // liquidity wallet
uint16 public _charityFee = 200; // Fee to Charity wallet
uint16 private _previousCharityFee = _charityFee;
address payable public charityWallet; // charity wallet
address payable private _initial; //initial
uint16 public _investmentFee = 200; // Fee to Investment Return Program Wallet
uint16 private _previousInvestmentFee = _investmentFee;
address payable public investmentWallet; // investment return program wallet
uint16 public _buybackFee = 0; // Fee for buyback of tokens
uint16 private _previousBuybackFee = _buybackFee;
IUniswapV2Router02 public pcsV2Router;
address public pcsV2Pair;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
mapping(address => uint256) cooldown;
mapping(address => uint256) failedTime;
event SwapAndLiquifyEnabledUpdated(bool enabled);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
modifier lockTheSwap() {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
modifier onlyInitial() {
require(_initial == _msgSender() || owner() == _msgSender(), "Ownable: caller is not the Owner");
_;
}
constructor(
address __metacrypt_target,
uint8 __metacrypt_decimals,
uint256 __metacrypt_initial,
address __metacrypt_router
) payable KoacombatHelper("KOACOMBAT", __metacrypt_target) {
_decimals = __metacrypt_decimals;
_tTotal = __metacrypt_initial;
_rTotal = (MAX - (MAX % _tTotal));
_rOwned[_msgSender()] = _rTotal;
_initial = payable(_msgSender());
IUniswapV2Router02 _pcsV2Router = IUniswapV2Router02(
__metacrypt_router
);
// Create a uniswap pair for this new token
pcsV2Pair = IUniswapV2Factory(_pcsV2Router.factory()).createPair(
address(this),
_pcsV2Router.WETH()
);
// set the rest of the contract variables
pcsV2Router = _pcsV2Router;
_isExcludedFromFee[_msgSender()] = true;
_isExcludedFromFee[address(this)] = true;
emit Transfer(address(0), _msgSender(), _tTotal);
}
function name() public view override returns (string memory) {
return _name;
}
function symbol() public view override returns (string memory) {
return _symbol;
}
function decimals() public view override returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
if (_isExcluded[account]) return _tOwned[account];
return tokenFromReflection(_rOwned[account]);
}
function transfer(address recipient, uint256 amount) public override returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].add(addedValue)
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].sub(
subtractedValue,
"ERC20: decreased allowance below zero"
)
);
return true;
}
function isExcludedFromReward(address account) public view returns (bool) {
return _isExcluded[account];
}
function deliver(uint256 tAmount) public {
address sender = _msgSender();
require(
!_isExcluded[sender],
"Excluded addresses cannot call this function"
);
(uint256 rAmount, , , , , ) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rTotal = _rTotal.sub(rAmount);
_tFeeTotal = _tFeeTotal.add(tAmount);
}
function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns (uint256)
{
require(tAmount <= _tTotal, "Amt must be less than supply");
if (!deductTransferFee) {
(uint256 rAmount, , , , , ) = _getValues(tAmount);
return rAmount;
} else {
(, uint256 rTransferAmount, , , , ) = _getValues(tAmount);
return rTransferAmount;
}
}
function tokenFromReflection(uint256 rAmount) public view returns (uint256)
{
require(rAmount <= _rTotal, "Amt must be less than tot refl");
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function excludeFromReward(address account) public onlyInitial {
if (!_isExcluded[account]) {
if (_rOwned[account] > 0) {
_tOwned[account] = tokenFromReflection(_rOwned[account]);
}
_isExcluded[account] = true;
_excluded.push(account);
}
}
function includeInReward(address account) public onlyInitial {
require(_isExcluded[account], "Already excluded");
for (uint256 i = 0; i < _excluded.length; i++) {
if (_excluded[i] == account) {
_excluded[i] = _excluded[_excluded.length - 1];
_tOwned[account] = 0;
_isExcluded[account] = false;
_excluded.pop();
break;
}
}
}
function excludeFromFee(address account) public onlyInitial {
_isExcludedFromFee[account] = true;
}
function includeInFee(address account) public onlyInitial {
_isExcludedFromFee[account] = false;
}
// Function to set, remove and restore pecent of all wallets
function setAllFeePercent(
uint16 taxFee,
uint16 marketingFee,
uint16 liquidityFee,
uint16 charityFee,
uint16 investmentFee,
uint16 buybackFee
) external onlyInitial {
require(taxFee >= 0 && taxFee <= maxFee, "TF error");
require(marketingFee >= 0 && marketingFee <= maxFee, "MF error");
require(liquidityFee >= 0 && liquidityFee <= maxFee, "LF error");
require(charityFee >= 0 && charityFee <= maxFee, "CF error");
require(investmentFee >= 0 && investmentFee <= maxFee, "IF error");
require(buybackFee >=0 && buybackFee < maxFee, "BF error");
_taxFee = taxFee;
_marketingFee = marketingFee;
_charityFee = charityFee;
_liquidityFee = liquidityFee;
_investmentFee = investmentFee;
_buybackFee = buybackFee;
}
function removeAllFee() private {
if (
_taxFee == 0 &&
_marketingFee == 0 &&
_liquidityFee == 0 &&
_charityFee == 0 &&
_investmentFee == 0 &&
_buybackFee == 0
) return;
_previousTaxFee = _taxFee;
_previousMarketingFee = _marketingFee;
_previousLiquidityFee = _liquidityFee;
_previousCharityFee = _charityFee;
_previousInvestmentFee = _investmentFee;
_previousBuybackFee = _buybackFee;
_taxFee = 0;
_marketingFee = 0;
_liquidityFee = 0;
_charityFee = 0;
_investmentFee = 0;
_buybackFee = 0;
}
function restoreAllFee() private {
_taxFee = _previousTaxFee;
_marketingFee = _previousMarketingFee;
_liquidityFee = _previousLiquidityFee;
_charityFee = _previousCharityFee;
_investmentFee = _previousInvestmentFee;
_buybackFee = _previousBuybackFee;
}
//------------------------------------------------------------------- Set, Remove, Restore all fees
function setSwapAndLiquifyEnabled(bool _enabled) public onlyInitial {
swapAndLiquifyEnabled = _enabled;
emit SwapAndLiquifyEnabledUpdated(_enabled);
}
// Functions to set wallets
function setMarketingWallet(address payable newMarketingWallet) external onlyInitial {
require(newMarketingWallet != address(0), "ZERO ADDRESS");
if (marketingWallet != address(0)) {
includeInReward(marketingWallet);
includeInFee(marketingWallet);
}
excludeFromReward(newMarketingWallet);
excludeFromFee(newMarketingWallet);
marketingWallet = newMarketingWallet;
}
function setLiquidityWallet(address payable newLiquidityWallet) external onlyInitial
{
require(newLiquidityWallet != address(0), "ZERO ADDRESS");
if (liquidityWallet != address(0)) {
includeInReward(liquidityWallet);
includeInFee(liquidityWallet);
}
excludeFromReward(newLiquidityWallet);
excludeFromFee(newLiquidityWallet);
liquidityWallet = newLiquidityWallet;
}
function setCharityWallet(address payable newCharityWallet) external onlyInitial
{
require(newCharityWallet != address(0), "ZERO ADDRESS");
if (charityWallet != address(0)) {
includeInReward(charityWallet);
includeInFee(charityWallet);
}
excludeFromReward(newCharityWallet);
excludeFromFee(newCharityWallet);
charityWallet = newCharityWallet;
}
function setInvestmentWallet(address payable newInvestmentWallet) external onlyInitial
{
require(newInvestmentWallet != address(0), "ZERO ADDRESS");
if (investmentWallet != address(0)) {
includeInReward(investmentWallet);
includeInFee(investmentWallet);
}
excludeFromReward(newInvestmentWallet);
excludeFromFee(newInvestmentWallet);
investmentWallet = newInvestmentWallet;
}
function setBurnWallet(address newBurnWallet) external onlyInitial
{
require(newBurnWallet != address(0), "ZERO ADDRESS");
if (burnWallet != address(0)) {
includeInReward(burnWallet);
includeInFee(burnWallet);
}
excludeFromReward(newBurnWallet);
excludeFromFee(newBurnWallet);
burnWallet = newBurnWallet;
}
//--------------------------------------------------------------------set wallets
//to recieve ETH from pcsV2Router when swaping
receive() external payable {}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_rTotal = _rTotal.sub(rFee);
_tFeeTotal = _tFeeTotal.add(tFee);
}
function _getValues(uint256 tAmount)
private
view
returns (
uint256,
uint256,
uint256,
uint256,
uint256,
uint256
)
{
(uint256 tTransferAmount,uint256 tFee,uint256 tLiquidity) = _getTValues(tAmount);
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount,tFee,tLiquidity,_getRate());
return (
rAmount,
rTransferAmount,
rFee,
tTransferAmount,
tFee,
tLiquidity
);
}
function _getTValues(uint256 tAmount) private view
returns (
uint256,
uint256,
uint256
)
{
uint256 tFee = calculateTaxFee(tAmount);
uint256 tLiquidity = calculateLiquidityFee(tAmount);
uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity);
return (tTransferAmount, tFee, tLiquidity);
}
function _getRValues(
uint256 tAmount,
uint256 tFee,
uint256 tLiquidity,
uint256 currentRate
)
private
pure
returns (
uint256,
uint256,
uint256
)
{
uint256 rAmount = tAmount.mul(currentRate);
uint256 rFee = tFee.mul(currentRate);
uint256 rLiquidity = tLiquidity.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity);
return (rAmount, rTransferAmount, rFee);
}
function _getRate() private view returns (uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(tSupply);
}
function _getCurrentSupply() private view returns (uint256, uint256) {
uint256 rSupply = _rTotal;
uint256 tSupply = _tTotal;
for (uint256 i = 0; i < _excluded.length; i++) {
if (
_rOwned[_excluded[i]] > rSupply ||
_tOwned[_excluded[i]] > tSupply
) return (_rTotal, _tTotal);
rSupply = rSupply.sub(_rOwned[_excluded[i]]);
tSupply = tSupply.sub(_tOwned[_excluded[i]]);
}
if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
function _takeLiquidity(uint256 tLiquidity) private {
uint256 currentRate = _getRate();
uint256 rLiquidity = tLiquidity.mul(currentRate);
_rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
if (_isExcluded[address(this)])
_tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
}
function calculateTaxFee(uint256 _amount) private view returns (uint256) {
return _amount.mul(_taxFee).div(10**4);
}
function calculateLiquidityFee(uint256 _amount)
private
pure
returns (uint256)
{
return _amount.mul(0);
}
function isExcludedFromFee(address account) public view returns (bool) {
return _isExcludedFromFee[account];
}
function _approve(
address owner,
address spender,
uint256 amount
) private {
require(owner != address(0), "ERC20: approve from zero address");
require(spender != address(0), "ERC20: approve to zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(
address from,
address to,
uint256 amount
) private {
require(from != address(0), "ERC20: transfer from zero address");
require(to != address(0), "ERC20: transfer to zero address");
require(amount > 0, "Transfer amount must be greater than zero");
require(balanceOf(from) > amount, "Transfer amout must be less than balance");
require(from == pcsV2Pair || cooldown[from] < block.timestamp, "Cooldown is not ready yet!!");
if(to == pcsV2Pair && amount >= totalSupply().div(1000).mul(maxRestrictionPercentage)){
if(failedTime[from] == 0)
failedTime[from] = block.timestamp + 2 hours;
require(failedTime[from] < block.timestamp, "it is delayed as it is over 0.12 % of total supply");
failedTime[from] = 0;
}
cooldown[from] = block.timestamp + 30 seconds;
uint16 totFee =
_marketingFee +
_liquidityFee +
_charityFee +
_investmentFee +
_buybackFee;
uint256 contractTokenBalance = amount.mul(totFee).div(10000);
uint256 _amount = amount.sub(contractTokenBalance);
if (to != pcsV2Pair && !_isExcludedFromFee[to]) {
require(_amount + balanceOf(to) <= _tTotal.mul(maxTxPercentage).div(10000), "the amount exceeds allowance 0.25 %");
}
if (!inSwapAndLiquify && (from == pcsV2Pair || to == pcsV2Pair) && swapAndLiquifyEnabled) {
//add liquidity
swapAndLiquify(contractTokenBalance, from);
}
//indicates if fee should be deducted from transfer
bool takeFee = true;
// if any account belongs to _isExcludedFromFee account then remove the fee
if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
takeFee = false;
}
//transfer amount, it will take tax, burn, liquidity fee
_tokenTransfer(from, to, _amount, takeFee);
}
function swapAndLiquify(uint256 contractTokenBalance, address _from) private lockTheSwap {
//This needs to be distributed among burn, wallet and liquidity
//burn
uint16 totFee =
_marketingFee +
_liquidityFee +
_charityFee +
_investmentFee +
_buybackFee;
uint256 spentAmount = 0;
// uint256 totSpentAmount = 0;
if (_marketingFee != 0) {
spentAmount = contractTokenBalance.div(totFee).mul(_marketingFee);
_tokenTransferNoFee(_from, marketingWallet, spentAmount);
// totSpentAmount = totSpentAmount + spentAmount;
}
if (_liquidityFee != 0) {
spentAmount = contractTokenBalance.div(totFee).mul(
_liquidityFee
);
_tokenTransferNoFee(_from, liquidityWallet, spentAmount);
// totSpentAmount = totSpentAmount + spentAmount;
}
if (_charityFee != 0) {
spentAmount = contractTokenBalance.div(totFee).mul(
_charityFee
);
_tokenTransferNoFee(_from, charityWallet, spentAmount);
// totSpentAmount = totSpentAmount + spentAmount;
}
if (_investmentFee != 0) {
spentAmount = contractTokenBalance.div(totFee).mul(
_investmentFee
);
_tokenTransferNoFee(_from, investmentWallet, spentAmount);
// totSpentAmount = totSpentAmount + spentAmount;
}
}
/**
* @dev Initiates a transfer to dead wallet from argument account for argument amount.
*/
function burn(uint256 amount) public
{
require(balanceOf(msg.sender) >= amount, "Burn wallet balance must be greater than burn amount");
_tokenTransfer(msg.sender, dead, amount, false);
_tTotal = _tTotal.sub(amount);
_rTotal = _getRate() * _tTotal;
}
//this method is responsible for taking all fee, if takeFee is true
function _tokenTransfer(
address sender,
address recipient,
uint256 amount,
bool takeFee
) private {
if (!takeFee) removeAllFee();
if (_isExcluded[sender] && !_isExcluded[recipient]) {
_transferFromExcluded(sender, recipient, amount);
} else if (!_isExcluded[sender] && _isExcluded[recipient]) {
_transferToExcluded(sender, recipient, amount);
} else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
_transferStandard(sender, recipient, amount);
} else if (_isExcluded[sender] && _isExcluded[recipient]) {
_transferBothExcluded(sender, recipient, amount);
} else {
_transferStandard(sender, recipient, amount);
}
if (!takeFee) restoreAllFee();
}
function _transferStandard(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tLiquidity
) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferToExcluded(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tLiquidity
) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferFromExcluded(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tLiquidity
) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferBothExcluded(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tLiquidity
) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _tokenTransferNoFee(
address sender,
address recipient,
uint256 amount
) private {
_rOwned[sender] = _rOwned[sender].sub(amount);
_rOwned[recipient] = _rOwned[recipient].add(amount);
if (_isExcluded[sender]) {
_tOwned[sender] = _tOwned[sender].sub(amount);
}
if (_isExcluded[recipient]) {
_tOwned[recipient] = _tOwned[recipient].add(amount);
}
emit Transfer(sender, recipient, amount);
}
function recoverToken(address tokenAddress, uint256 tokenAmount)
public
onlyInitial
{
// do not allow recovering self token
require(tokenAddress != address(this), "Self withdraw");
IERC20(tokenAddress).transfer(owner(), tokenAmount);
}
function setMaxTxPercentage(uint16 _maxTxPercentage) external onlyInitial {
require(_maxTxPercentage <= 10000, "It exceeds allowed amount.");
maxTxPercentage = _maxTxPercentage;
}
function setMaxRestrictionPercentage(uint16 _maxRestrictionPercentage) external onlyInitial {
require(_maxRestrictionPercentage <= 10000, "It exceeds allowed amount.");
maxRestrictionPercentage = _maxRestrictionPercentage;
}
function prepareForAirdrop() external onlyInitial {
setSwapAndLiquifyEnabled(false);
removeAllFee();
maxTxPercentage = 10000;
maxRestrictionPercentage = 10000;
}
function afterAirDrop() external onlyInitial {
setSwapAndLiquifyEnabled(true);
restoreAllFee();
maxTxPercentage = 25;
maxRestrictionPercentage = 12;
}
function airDrop(address _to, uint256 _amount) external onlyInitial {
require(balanceOf(msg.sender) >= _amount, "It exceeds allowed amount.");
_tokenTransfer(owner(), _to, _amount, false);
}
function _transferOwnership(address _newOwner) public onlyInitial {
require(_newOwner != address(0), "ZERO ADDRESS");
_isExcludedFromFee[_newOwner] = true;
transferOwnership(_newOwner);
}
function updateUniswapV2Router(address newAddress) public onlyInitial {
require(
newAddress != address(pcsV2Pair),
"MDAO: the router is already set to the new address"
);
pcsV2Pair = newAddress;
}
function withdrawToken(uint256 _amount, address _to) public onlyInitial {
require(balanceOf(address(this)) >= _amount, "It exceeds allowed amount.");
_tokenTransfer(address(this), _to, _amount, false);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"__metacrypt_target","type":"address"},{"internalType":"uint8","name":"__metacrypt_decimals","type":"uint8"},{"internalType":"uint256","name":"__metacrypt_initial","type":"uint256"},{"internalType":"address","name":"__metacrypt_router","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buybackFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_charityFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_investmentFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"_transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"afterAirDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"airDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"charityWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getIdentifier","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"investmentWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRestrictionPercentage","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxPercentage","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"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":"pcsV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pcsV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prepareForAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"recoverToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"taxFee","type":"uint16"},{"internalType":"uint16","name":"marketingFee","type":"uint16"},{"internalType":"uint16","name":"liquidityFee","type":"uint16"},{"internalType":"uint16","name":"charityFee","type":"uint16"},{"internalType":"uint16","name":"investmentFee","type":"uint16"},{"internalType":"uint16","name":"buybackFee","type":"uint16"}],"name":"setAllFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newBurnWallet","type":"address"}],"name":"setBurnWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newCharityWallet","type":"address"}],"name":"setCharityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newInvestmentWallet","type":"address"}],"name":"setInvestmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newLiquidityWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_maxRestrictionPercentage","type":"uint16"}],"name":"setMaxRestrictionPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_maxTxPercentage","type":"uint16"}],"name":"setMaxTxPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","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":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateUniswapV2Router","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
600380546001600160a01b03191661dead1790556004805463c001927160a41b6001600160d01b031990911617905560c0604052600960808190526812d3d050d3d350905560ba1b60a09081526200005b91600e91906200053b565b506040805180820190915260098082526813535050d3d350905560ba1b60209092019182526200008e91600f916200053b565b5060108054600160d81b600160c81b60af60c91b61ffff60c81b19630100000061010061fa1262ffffff19881681179190910461ffff9081169290920264ffffffffff199097169690961790951790811682179290920484169290920263ffffffff60c81b19909116171790915560118054600160b01b600160a01b601960a31b61ffff60a01b1980851682178390048716840263ffffffff60a01b199586161782179095556012805480871683178490048816850290861617821790556014805480871683178490048816850290861617909117905560158054948516919091049094160291161790556017805460ff60a81b1916600160a81b1790556040516200427738819003908190833981016040819052620001ae9162000622565b604080518082018252600981526812d3d050d3d350905560ba1b6020820152600080546001600160a01b031916339081178255925191928792909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b0383161790558151620002419060029060208501906200053b565b506040516001600160a01b038216903480156108fc02916000818181858888f1935050505015801562000278573d6000803e3d6000fd5b50506010805460ff191660ff861617905550600b8290556200029d82600019620006dd565b620002ab906000196200067c565b600c8190553360008181526005602090815260409182902093909355601480546001600160a01b031916909217909155805163c45a015560e01b8152905183926001600160a01b0384169263c45a01559260048083019392829003018186803b1580156200031857600080fd5b505afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003539190620005fe565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039c57600080fd5b505afa158015620003b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d79190620005fe565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200042057600080fd5b505af115801562000435573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045b9190620005fe565b601780546001600160a01b03199081166001600160a01b039384161790915560168054909116918316919091179055600160086000620004983390565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526008909252902080549091166001179055620004e03390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200052891815260200190565b60405180910390a35050505050620006fe565b8280546200054990620006a0565b90600052602060002090601f0160209004810192826200056d5760008555620005b8565b82601f106200058857805160ff1916838001178555620005b8565b82800160010185558215620005b8579182015b82811115620005b85782518255916020019190600101906200059b565b50620005c6929150620005ca565b5090565b5b80821115620005c65760008155600101620005cb565b80516001600160a01b0381168114620005f957600080fd5b919050565b60006020828403121562000610578081fd5b6200061b82620005e1565b9392505050565b6000806000806080858703121562000638578283fd5b6200064385620005e1565b9350602085015160ff8116811462000659578384fd5b604086015190935091506200067160608601620005e1565b905092959194509250565b6000828210156200069b57634e487b7160e01b81526011600452602481fd5b500390565b600181811c90821680620006b557607f821691505b60208210811415620006d757634e487b7160e01b600052602260045260246000fd5b50919050565b600082620006f957634e487b7160e01b81526012600452602481fd5b500690565b613b69806200070e6000396000f3fe6080604052600436106103905760003560e01c80635d098b38116101dc578063b29a814011610102578063c891571c116100a0578063dd62ed3e1161006f578063dd62ed3e14610ac6578063ea2f0b3714610b0c578063f2fde38b14610b2c578063fd7711de14610b4c57600080fd5b8063c891571c14610a4f578063d28d885214610a71578063d29d44ee14610a86578063d469801614610aa657600080fd5b8063bb2f8dc6116100dc578063bb2f8dc6146109cd578063be4b1772146109ef578063c43b247214610a0f578063c49b9a8014610a2f57600080fd5b8063b29a81401461096b578063b57daf741461098b578063b6fa37bc146109ad57600080fd5b806388f820201161017a578063a5071ef911610149578063a5071ef91461090c578063a9059cbb14610921578063aa23e03d14610941578063b09f12661461095657600080fd5b806388f82020146108805780638da5cb5b146108b957806395d89b41146108d7578063a457c2d7146108ec57600080fd5b806370a08231116101b657806370a082311461080b578063715018a61461082b57806375f0a874146108405780637b2087691461086057600080fd5b80635d098b38146107a957806365b8dbc0146107c95780636bc87c3a146107e957600080fd5b8063313ce567116102c157806342966c681161025f578063521432901161022e578063521432901461070157806352390c02146107215780635342acb41461074157806354fd4d501461077a57600080fd5b806342966c6814610680578063437823ec146106a05780634549b039146106c05780634a74bb02146106e057600080fd5b80633b124fe71161029b5780633b124fe7146105fe5780633bd5d1731461061e5780633de1596d1461063e57806340f8007a1461065e57600080fd5b8063313ce5671461059c5780633685d419146105be57806339509351146105de57600080fd5b806323b872dd1161032e5780632a517209116103085780632a517209146105045780632d6abf87146105245780632d8381191461055c57806330563bd71461057c57600080fd5b806323b872dd146104af57806323c90b9e146104cf578063296f0a0c146104e457600080fd5b806318160ddd1161036a57806318160ddd1461041957806319de79ab146104385780631c4ba3ed1461046d57806322976e0d1461048d57600080fd5b8063045f78501461039c57806306fdde03146103be578063095ea7b3146103e957600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103bc6103b7366004613749565b610b6c565b005b3480156103ca57600080fd5b506103d3610bfe565b6040516103e09190613899565b60405180910390f35b3480156103f557600080fd5b50610409610404366004613749565b610c90565b60405190151581526020016103e0565b34801561042557600080fd5b50600b545b6040519081526020016103e0565b34801561044457600080fd5b5060155461045a90600160a01b900461ffff1681565b60405161ffff90911681526020016103e0565b34801561047957600080fd5b506103bc6104883660046136b5565b610ca7565b34801561049957600080fd5b5060105461045a90600160c81b900461ffff1681565b3480156104bb57600080fd5b506104096104ca366004613709565b610d9c565b3480156104db57600080fd5b506103bc610e05565b3480156104f057600080fd5b506103bc6104ff3660046136b5565b610e70565b34801561051057600080fd5b506103bc61051f3660046137ac565b610f44565b34801561053057600080fd5b50601654610544906001600160a01b031681565b6040516001600160a01b0390911681526020016103e0565b34801561056857600080fd5b5061042a610577366004613839565b610fcb565b34801561058857600080fd5b506103bc6105973660046136b5565b61103c565b3480156105a857600080fd5b5060105460405160ff90911681526020016103e0565b3480156105ca57600080fd5b506103bc6105d93660046136b5565b611110565b3480156105ea57600080fd5b506104096105f9366004613749565b611303565b34801561060a57600080fd5b5060105461045a90610100900461ffff1681565b34801561062a57600080fd5b506103bc610639366004613839565b611339565b34801561064a57600080fd5b506103bc6106593660046137ac565b611423565b34801561066a57600080fd5b5060125461045a90600160a01b900461ffff1681565b34801561068c57600080fd5b506103bc61069b366004613839565b6114aa565b3480156106ac57600080fd5b506103bc6106bb3660046136b5565b611563565b3480156106cc57600080fd5b5061042a6106db366004613875565b6115c6565b3480156106ec57600080fd5b5060175461040990600160a81b900460ff1681565b34801561070d57600080fd5b50601754610544906001600160a01b031681565b34801561072d57600080fd5b506103bc61073c3660046136b5565b611653565b34801561074d57600080fd5b5061040961075c3660046136b5565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561078657600080fd5b50604080518082019091526006815265076312e302e360d41b60208201526103d3565b3480156107b557600080fd5b506103bc6107c43660046136b5565b611775565b3480156107d557600080fd5b506103bc6107e43660046136b5565b611849565b3480156107f557600080fd5b5060115461045a90600160a01b900461ffff1681565b34801561081757600080fd5b5061042a6108263660046136b5565b611923565b34801561083757600080fd5b506103bc611982565b34801561084c57600080fd5b50601154610544906001600160a01b031681565b34801561086c57600080fd5b50601354610544906001600160a01b031681565b34801561088c57600080fd5b5061040961089b3660046136b5565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156108c557600080fd5b506000546001600160a01b0316610544565b3480156108e357600080fd5b506103d36119f6565b3480156108f857600080fd5b50610409610907366004613749565b611a05565b34801561091857600080fd5b506103bc611a54565b34801561092d57600080fd5b5061040961093c366004613749565b611ac0565b34801561094d57600080fd5b506103d3611acd565b34801561096257600080fd5b506103d3611adc565b34801561097757600080fd5b506103bc610986366004613749565b611b6a565b34801561099757600080fd5b5060045461045a90600160c01b900461ffff1681565b3480156109b957600080fd5b50601554610544906001600160a01b031681565b3480156109d957600080fd5b5060145461045a90600160a01b900461ffff1681565b3480156109fb57600080fd5b506103bc610a0a366004613851565b611c98565b348015610a1b57600080fd5b506103bc610a2a3660046136b5565b611d0c565b348015610a3b57600080fd5b506103bc610a4a366004613774565b611de0565b348015610a5b57600080fd5b5060045461045a90600160b01b900461ffff1681565b348015610a7d57600080fd5b506103d3611e77565b348015610a9257600080fd5b506103bc610aa13660046136b5565b611e84565b348015610ab257600080fd5b50601254610544906001600160a01b031681565b348015610ad257600080fd5b5061042a610ae13660046136d1565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610b1857600080fd5b506103bc610b273660046136b5565b611f15565b348015610b3857600080fd5b506103bc610b473660046136b5565b611f75565b348015610b5857600080fd5b506103bc610b673660046137c6565b612064565b6014546001600160a01b0316331480610b8f57506000546001600160a01b031633145b610bb45760405162461bcd60e51b8152600401610bab906138ec565b60405180910390fd5b80610bbe33611923565b1015610bdc5760405162461bcd60e51b8152600401610bab90613921565b610bfa610bf16000546001600160a01b031690565b838360006122f3565b5050565b6060600e8054610c0d90613a57565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3990613a57565b8015610c865780601f10610c5b57610100808354040283529160200191610c86565b820191906000526020600020905b815481529060010190602001808311610c6957829003601f168201915b5050505050905090565b6000610c9d338484612467565b5060015b92915050565b6014546001600160a01b0316331480610cca57506000546001600160a01b031633145b610ce65760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b038116610d0c5760405162461bcd60e51b8152600401610bab9061399d565b601054600160281b90046001600160a01b031615610d5c57601054610d4090600160281b90046001600160a01b0316611110565b601054610d5c90600160281b90046001600160a01b0316611f15565b610d6581611653565b610d6e81611563565b601080546001600160a01b03909216600160281b0265010000000000600160c81b0319909216919091179055565b6000610da9848484612575565b610dfb8433610df685604051806060016040528060288152602001613ae7602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190612ade565b612467565b5060019392505050565b6014546001600160a01b0316331480610e2857506000546001600160a01b031633145b610e445760405162461bcd60e51b8152600401610bab906138ec565b610e4e6001611de0565b610e56612b0a565b6004805463ffffffff60b01b1916620c001960b01b179055565b6014546001600160a01b0316331480610e9357506000546001600160a01b031633145b610eaf5760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b038116610ed55760405162461bcd60e51b8152600401610bab9061399d565b6012546001600160a01b031615610f1057601254610efb906001600160a01b0316611110565b601254610f10906001600160a01b0316611f15565b610f1981611653565b610f2281611563565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316331480610f6757506000546001600160a01b031633145b610f835760405162461bcd60e51b8152600401610bab906138ec565b6127108161ffff161115610fa95760405162461bcd60e51b8152600401610bab90613921565b6004805461ffff909216600160c01b0261ffff60c01b19909216919091179055565b6000600c5482111561101f5760405162461bcd60e51b815260206004820152601e60248201527f416d74206d757374206265206c657373207468616e20746f74207265666c00006044820152606401610bab565b6000611029612bb6565b90506110358382612bd9565b9392505050565b6014546001600160a01b031633148061105f57506000546001600160a01b031633145b61107b5760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b0381166110a15760405162461bcd60e51b8152600401610bab9061399d565b6013546001600160a01b0316156110dc576013546110c7906001600160a01b0316611110565b6013546110dc906001600160a01b0316611f15565b6110e581611653565b6110ee81611563565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633148061113357506000546001600160a01b031633145b61114f5760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b03811660009081526009602052604090205460ff166111aa5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48195e18db1d59195960821b6044820152606401610bab565b60005b600a54811015610bfa57816001600160a01b0316600a82815481106111e257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156112f157600a805461120d90600190613a40565b8154811061122b57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600a80546001600160a01b03909216918390811061126557634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600682526040808220829055600990925220805460ff19169055600a8054806112cb57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806112fb81613a92565b9150506111ad565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610c9d918590610df69086612be5565b3360008181526009602052604090205460ff16156113ae5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610bab565b60006113b983612bf1565b505050506001600160a01b0384166000908152600560205260409020549192506113e591905082612c40565b6001600160a01b038316600090815260056020526040902055600c5461140b9082612c40565b600c55600d5461141b9084612be5565b600d55505050565b6014546001600160a01b031633148061144657506000546001600160a01b031633145b6114625760405162461bcd60e51b8152600401610bab906138ec565b6127108161ffff1611156114885760405162461bcd60e51b8152600401610bab90613921565b6004805461ffff909216600160b01b0261ffff60b01b19909216919091179055565b806114b433611923565b101561151f5760405162461bcd60e51b815260206004820152603460248201527f4275726e2077616c6c65742062616c616e6365206d75737420626520677265616044820152731d195c881d1a185b88189d5c9b88185b5bdd5b9d60621b6064820152608401610bab565b6003546115399033906001600160a01b03168360006122f3565b600b546115469082612c40565b600b819055611553612bb6565b61155d9190613a21565b600c5550565b6014546001600160a01b031633148061158657506000546001600160a01b031633145b6115a25760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b6000600b5483111561161a5760405162461bcd60e51b815260206004820152601c60248201527f416d74206d757374206265206c657373207468616e20737570706c79000000006044820152606401610bab565b8161163957600061162a84612bf1565b50939550610ca1945050505050565b600061164484612bf1565b50929550610ca1945050505050565b6014546001600160a01b031633148061167657506000546001600160a01b031633145b6116925760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b03811660009081526009602052604090205460ff16611772576001600160a01b0381166000908152600560205260409020541561170c576001600160a01b0381166000908152600560205260409020546116f290610fcb565b6001600160a01b0382166000908152600660205260409020555b6001600160a01b0381166000818152600960205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b03191690911790555b50565b6014546001600160a01b031633148061179857506000546001600160a01b031633145b6117b45760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b0381166117da5760405162461bcd60e51b8152600401610bab9061399d565b6011546001600160a01b03161561181557601154611800906001600160a01b0316611110565b601154611815906001600160a01b0316611f15565b61181e81611653565b61182781611563565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633148061186c57506000546001600160a01b031633145b6118885760405162461bcd60e51b8152600401610bab906138ec565b6017546001600160a01b03828116911614156119015760405162461bcd60e51b815260206004820152603260248201527f4d44414f3a2074686520726f7574657220697320616c72656164792073657420604482015271746f20746865206e6577206164647265737360701b6064820152608401610bab565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526009602052604081205460ff161561196057506001600160a01b031660009081526006602052604090205490565b6001600160a01b038216600090815260056020526040902054610ca190610fcb565b6000546001600160a01b031633146119ac5760405162461bcd60e51b8152600401610bab90613958565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600f8054610c0d90613a57565b6000610c9d3384610df685604051806060016040528060258152602001613b0f602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190612ade565b6014546001600160a01b0316331480611a7757506000546001600160a01b031633145b611a935760405162461bcd60e51b8152600401610bab906138ec565b611a9d6000611de0565b611aa5612c4c565b6004805463ffffffff60b01b1916630271027160b41b179055565b6000610c9d338484612575565b606060028054610c0d90613a57565b600f8054611ae990613a57565b80601f0160208091040260200160405190810160405280929190818152602001828054611b1590613a57565b8015611b625780601f10611b3757610100808354040283529160200191611b62565b820191906000526020600020905b815481529060010190602001808311611b4557829003601f168201915b505050505081565b6014546001600160a01b0316331480611b8d57506000546001600160a01b031633145b611ba95760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b038216301415611bf25760405162461bcd60e51b815260206004820152600d60248201526c53656c6620776974686472617760981b6044820152606401610bab565b816001600160a01b031663a9059cbb611c136000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015611c5b57600080fd5b505af1158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c939190613790565b505050565b6014546001600160a01b0316331480611cbb57506000546001600160a01b031633145b611cd75760405162461bcd60e51b8152600401610bab906138ec565b81611ce130611923565b1015611cff5760405162461bcd60e51b8152600401610bab90613921565b610bfa30828460006122f3565b6014546001600160a01b0316331480611d2f57506000546001600160a01b031633145b611d4b5760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b038116611d715760405162461bcd60e51b8152600401610bab9061399d565b6015546001600160a01b031615611dac57601554611d97906001600160a01b0316611110565b601554611dac906001600160a01b0316611f15565b611db581611653565b611dbe81611563565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316331480611e0357506000546001600160a01b031633145b611e1f5760405162461bcd60e51b8152600401610bab906138ec565b60178054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611e6c90831515815260200190565b60405180910390a150565b600e8054611ae990613a57565b6014546001600160a01b0316331480611ea757506000546001600160a01b031633145b611ec35760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b038116611ee95760405162461bcd60e51b8152600401610bab9061399d565b6001600160a01b0381166000908152600860205260409020805460ff1916600117905561177281611f75565b6014546001600160a01b0316331480611f3857506000546001600160a01b031633145b611f545760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b03163314611f9f5760405162461bcd60e51b8152600401610bab90613958565b6001600160a01b0381166120095760405162461bcd60e51b815260206004820152602b60248201527f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b6064820152608401610bab565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633148061208757506000546001600160a01b031633145b6120a35760405162461bcd60e51b8152600401610bab906138ec565b60045461ffff600160a01b909104811690871611156120ef5760405162461bcd60e51b81526020600482015260086024820152672a231032b93937b960c11b6044820152606401610bab565b60045461ffff600160a01b9091048116908616111561213b5760405162461bcd60e51b815260206004820152600860248201526726a31032b93937b960c11b6044820152606401610bab565b60045461ffff600160a01b909104811690851611156121875760405162461bcd60e51b815260206004820152600860248201526726231032b93937b960c11b6044820152606401610bab565b60045461ffff600160a01b909104811690841611156121d35760405162461bcd60e51b815260206004820152600860248201526721a31032b93937b960c11b6044820152606401610bab565b60045461ffff600160a01b9091048116908316111561221f5760405162461bcd60e51b815260206004820152600860248201526724a31032b93937b960c11b6044820152606401610bab565b60045461ffff600160a01b90910481169082161061226a5760405162461bcd60e51b815260206004820152600860248201526721231032b93937b960c11b6044820152606401610bab565b6010805462ffff0061ffff60c81b01191661010061ffff9889160261ffff60c81b191617600160c81b96881696909602959095179094556012805461ffff60a01b19908116600160a01b94881685021790915560118054821694871684029490941790935560148054841691861683029190911790556015805490921692909316909202179055565b8061230057612300612c4c565b6001600160a01b03841660009081526009602052604090205460ff16801561234157506001600160a01b03831660009081526009602052604090205460ff16155b1561235657612351848484612db2565b612454565b6001600160a01b03841660009081526009602052604090205460ff1615801561239757506001600160a01b03831660009081526009602052604090205460ff165b156123a757612351848484612ed8565b6001600160a01b03841660009081526009602052604090205460ff161580156123e957506001600160a01b03831660009081526009602052604090205460ff16155b156123f957612351848484612f81565b6001600160a01b03841660009081526009602052604090205460ff16801561243957506001600160a01b03831660009081526009602052604090205460ff165b1561244957612351848484612fc5565b612454848484612f81565b8061246157612461612b0a565b50505050565b6001600160a01b0383166124bd5760405162461bcd60e51b815260206004820181905260248201527f45524332303a20617070726f76652066726f6d207a65726f20616464726573736044820152606401610bab565b6001600160a01b0382166125135760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f206164647265737300006044820152606401610bab565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166125d55760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610bab565b6001600160a01b03821661262b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610bab565b6000811161268d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bab565b8061269784611923565b116126f55760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f7574206d757374206265206c657373207468616e6044820152672062616c616e636560c01b6064820152608401610bab565b6017546001600160a01b038481169116148061272857506001600160a01b03831660009081526018602052604090205442115b6127745760405162461bcd60e51b815260206004820152601b60248201527f436f6f6c646f776e206973206e6f7420726561647920796574212100000000006044820152606401610bab565b6017546001600160a01b0383811691161480156127be57506004546127ba9061ffff600160c01b909104166127b46103e86127ae600b5490565b90612bd9565b90613038565b8110155b156128a2576001600160a01b038316600090815260196020526040902054612806576127ec42611c206139e9565b6001600160a01b0384166000908152601960205260409020555b6001600160a01b03831660009081526019602052604090205442116128885760405162461bcd60e51b815260206004820152603260248201527f69742069732064656c61796564206173206974206973206f76657220302e31326044820152712025206f6620746f74616c20737570706c7960701b6064820152608401610bab565b6001600160a01b0383166000908152601960205260408120555b6128ad42601e6139e9565b6001600160a01b03841660009081526018602052604081209190915560155460145460125460115460105461ffff600160a01b95869004811695948590048116949384900481169361290a9304811691600160c81b9004166139c3565b61291491906139c3565b61291e91906139c3565b61292891906139c3565b905060006129406127106127ae8561ffff8616613038565b9050600061294e8483612c40565b6017549091506001600160a01b0386811691161480159061298857506001600160a01b03851660009081526008602052604090205460ff16155b15612a1c57600454600b546129af91612710916127ae91600160b01b900461ffff16613038565b6129b886611923565b6129c290836139e9565b1115612a1c5760405162461bcd60e51b815260206004820152602360248201527f74686520616d6f756e74206578636565647320616c6c6f77616e636520302e3260448201526235202560e81b6064820152608401610bab565b601754600160a01b900460ff16158015612a5a57506017546001600160a01b0387811691161480612a5a57506017546001600160a01b038681169116145b8015612a6f5750601754600160a81b900460ff165b15612a7e57612a7e8287613044565b6001600160a01b03861660009081526008602052604090205460019060ff1680612ac057506001600160a01b03861660009081526008602052604090205460ff165b15612ac9575060005b612ad5878784846122f3565b50505050505050565b60008184841115612b025760405162461bcd60e51b8152600401610bab9190613899565b505050900390565b60108054600160c81b600160d81b61ffff6301000000840481166101000262ffff0019851681179290920481169290920261ffff60c81b1990911662ffff0061ffff60c81b0119909316929092179190911790915560118054600160a01b600160b01b8083048516820261ffff60a01b19938416179093556012805484810486168302908416179055601480548481048616830290841617905560158054938404909416029116179055565b6000806000612bc3613212565b9092509050612bd28282612bd9565b9250505090565b60006110358284613a01565b600061103582846139e9565b6000806000806000806000806000612c088a6133cc565b9250925092506000806000612c268d8686612c21612bb6565b61340e565b919f909e50909c50959a5093985091965092945050505050565b60006110358284613a40565b601054610100900461ffff16158015612c705750601054600160c81b900461ffff16155b8015612c875750601154600160a01b900461ffff16155b8015612c9e5750601254600160a01b900461ffff16155b8015612cb55750601454600160a01b900461ffff16155b8015612ccc5750601554600160a01b900461ffff16155b15612cd357565b601080546011805460128054601480546015805462ffff0061ffff60c81b0119600160d81b600160c81b630100000061ffff6101008e0481169190910264ffff000000198e1681179290920481169290920261ffff60d81b1990911664ffff00000061ffff60d81b0119909c169b909b179a909a171690995561ffff60a01b19600160b01b600160a01b8089048b168202831663ffffffff60a01b19998a16179099558886048a168102821695881695909517909555868204881684028516918616919091179091559386049094169093029290921691909216179055565b600080600080600080612dc487612bf1565b6001600160a01b038f16600090815260066020526040902054959b50939950919750955093509150612df69088612c40565b6001600160a01b038a16600090815260066020908152604080832093909355600590522054612e259087612c40565b6001600160a01b03808b1660009081526005602052604080822093909355908a1681522054612e549086612be5565b6001600160a01b038916600090815260056020526040902055612e768161345e565b612e8084836134e6565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612ec591815260200190565b60405180910390a3505050505050505050565b600080600080600080612eea87612bf1565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150612f1c9087612c40565b6001600160a01b03808b16600090815260056020908152604080832094909455918b16815260069091522054612f529084612be5565b6001600160a01b038916600090815260066020908152604080832093909355600590522054612e549086612be5565b600080600080600080612f9387612bf1565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150612e259087612c40565b600080600080600080612fd787612bf1565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506130099088612c40565b6001600160a01b038a16600090815260066020908152604080832093909355600590522054612f1c9087612c40565b60006110358284613a21565b60178054600160a01b60ff60a01b1990911681179091556015546014546012546011546010546000959485900461ffff90811695948590048116949384900481169361309b9304811691600160c81b9004166139c3565b6130a591906139c3565b6130af91906139c3565b6130b991906139c3565b601054909150600090600160c81b900461ffff161561310f576010546130f49061ffff600160c81b9091048116906127b49087908616612bd9565b60115490915061310f9084906001600160a01b03168361350a565b601154600160a01b900461ffff161561315f576011546131449061ffff600160a01b9091048116906127b49087908616612bd9565b60125490915061315f9084906001600160a01b03168361350a565b601254600160a01b900461ffff16156131af576012546131949061ffff600160a01b9091048116906127b49087908616612bd9565b6013549091506131af9084906001600160a01b03168361350a565b601454600160a01b900461ffff16156131ff576014546131e49061ffff600160a01b9091048116906127b49087908616612bd9565b6015549091506131ff9084906001600160a01b03168361350a565b50506017805460ff60a01b191690555050565b600c54600b546000918291825b600a5481101561339c578260056000600a848154811061324f57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806132c857508160066000600a84815481106132a157634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156132de57600c54600b54945094505050509091565b61333260056000600a848154811061330657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612c40565b925061338860066000600a848154811061335c57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612c40565b91508061339481613a92565b91505061321f565b50600b54600c546133ac91612bd9565b8210156133c357600c54600b549350935050509091565b90939092509050565b6000806000806133db85613670565b905060006133e886613692565b90506000613400826133fa8986612c40565b90612c40565b979296509094509092505050565b600080808061341d8886613038565b9050600061342b8887613038565b905060006134398888613038565b9050600061344b826133fa8686612c40565b939b939a50919850919650505050505050565b6000613468612bb6565b905060006134768383613038565b306000908152600560205260409020549091506134939082612be5565b3060009081526005602090815260408083209390935560099052205460ff1615611c9357306000908152600660205260409020546134d19084612be5565b30600090815260066020526040902055505050565b600c546134f39083612c40565b600c55600d546135039082612be5565b600d555050565b6001600160a01b03831660009081526005602052604090205461352d9082612c40565b6001600160a01b03808516600090815260056020526040808220939093559084168152205461355c9082612be5565b6001600160a01b0380841660009081526005602090815260408083209490945591861681526009909152205460ff16156135cd576001600160a01b0383166000908152600660205260409020546135b39082612c40565b6001600160a01b0384166000908152600660205260409020555b6001600160a01b03821660009081526009602052604090205460ff161561362b576001600160a01b0382166000908152600660205260409020546136119082612be5565b6001600160a01b0383166000908152600660205260409020555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161256891815260200190565b601054600090610ca190612710906127ae908590610100900461ffff16613038565b6000610ca18282613038565b803561ffff811681146136b057600080fd5b919050565b6000602082840312156136c6578081fd5b813561103581613ac3565b600080604083850312156136e3578081fd5b82356136ee81613ac3565b915060208301356136fe81613ac3565b809150509250929050565b60008060006060848603121561371d578081fd5b833561372881613ac3565b9250602084013561373881613ac3565b929592945050506040919091013590565b6000806040838503121561375b578182fd5b823561376681613ac3565b946020939093013593505050565b600060208284031215613785578081fd5b813561103581613ad8565b6000602082840312156137a1578081fd5b815161103581613ad8565b6000602082840312156137bd578081fd5b6110358261369e565b60008060008060008060c087890312156137de578182fd5b6137e78761369e565b95506137f56020880161369e565b94506138036040880161369e565b93506138116060880161369e565b925061381f6080880161369e565b915061382d60a0880161369e565b90509295509295509295565b60006020828403121561384a578081fd5b5035919050565b60008060408385031215613863578182fd5b8235915060208301356136fe81613ac3565b60008060408385031215613887578182fd5b8235915060208301356136fe81613ad8565b6000602080835283518082850152825b818110156138c5578581018301518582016040015282016138a9565b818111156138d65783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865204f776e6572604082015260600190565b6020808252601a908201527f4974206578636565647320616c6c6f77656420616d6f756e742e000000000000604082015260600190565b60208082526025908201527f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b6020808252600c908201526b5a45524f204144445245535360a01b604082015260600190565b600061ffff8083168185168083038211156139e0576139e0613aad565b01949350505050565b600082198211156139fc576139fc613aad565b500190565b600082613a1c57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615613a3b57613a3b613aad565b500290565b600082821015613a5257613a52613aad565b500390565b600181811c90821680613a6b57607f821691505b60208210811415613a8c57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415613aa657613aa6613aad565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461177257600080fd5b801515811461177257600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208dccb18d0a04d65efc1da29d15af9b3e46e69d60a0f4fad9af62a61ce309e8ba64736f6c63430008040033000000000000000000000000aa600a92bf5c0522770293d600311983b3f8c8620000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000108b2a2c280290940000000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106103905760003560e01c80635d098b38116101dc578063b29a814011610102578063c891571c116100a0578063dd62ed3e1161006f578063dd62ed3e14610ac6578063ea2f0b3714610b0c578063f2fde38b14610b2c578063fd7711de14610b4c57600080fd5b8063c891571c14610a4f578063d28d885214610a71578063d29d44ee14610a86578063d469801614610aa657600080fd5b8063bb2f8dc6116100dc578063bb2f8dc6146109cd578063be4b1772146109ef578063c43b247214610a0f578063c49b9a8014610a2f57600080fd5b8063b29a81401461096b578063b57daf741461098b578063b6fa37bc146109ad57600080fd5b806388f820201161017a578063a5071ef911610149578063a5071ef91461090c578063a9059cbb14610921578063aa23e03d14610941578063b09f12661461095657600080fd5b806388f82020146108805780638da5cb5b146108b957806395d89b41146108d7578063a457c2d7146108ec57600080fd5b806370a08231116101b657806370a082311461080b578063715018a61461082b57806375f0a874146108405780637b2087691461086057600080fd5b80635d098b38146107a957806365b8dbc0146107c95780636bc87c3a146107e957600080fd5b8063313ce567116102c157806342966c681161025f578063521432901161022e578063521432901461070157806352390c02146107215780635342acb41461074157806354fd4d501461077a57600080fd5b806342966c6814610680578063437823ec146106a05780634549b039146106c05780634a74bb02146106e057600080fd5b80633b124fe71161029b5780633b124fe7146105fe5780633bd5d1731461061e5780633de1596d1461063e57806340f8007a1461065e57600080fd5b8063313ce5671461059c5780633685d419146105be57806339509351146105de57600080fd5b806323b872dd1161032e5780632a517209116103085780632a517209146105045780632d6abf87146105245780632d8381191461055c57806330563bd71461057c57600080fd5b806323b872dd146104af57806323c90b9e146104cf578063296f0a0c146104e457600080fd5b806318160ddd1161036a57806318160ddd1461041957806319de79ab146104385780631c4ba3ed1461046d57806322976e0d1461048d57600080fd5b8063045f78501461039c57806306fdde03146103be578063095ea7b3146103e957600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506103bc6103b7366004613749565b610b6c565b005b3480156103ca57600080fd5b506103d3610bfe565b6040516103e09190613899565b60405180910390f35b3480156103f557600080fd5b50610409610404366004613749565b610c90565b60405190151581526020016103e0565b34801561042557600080fd5b50600b545b6040519081526020016103e0565b34801561044457600080fd5b5060155461045a90600160a01b900461ffff1681565b60405161ffff90911681526020016103e0565b34801561047957600080fd5b506103bc6104883660046136b5565b610ca7565b34801561049957600080fd5b5060105461045a90600160c81b900461ffff1681565b3480156104bb57600080fd5b506104096104ca366004613709565b610d9c565b3480156104db57600080fd5b506103bc610e05565b3480156104f057600080fd5b506103bc6104ff3660046136b5565b610e70565b34801561051057600080fd5b506103bc61051f3660046137ac565b610f44565b34801561053057600080fd5b50601654610544906001600160a01b031681565b6040516001600160a01b0390911681526020016103e0565b34801561056857600080fd5b5061042a610577366004613839565b610fcb565b34801561058857600080fd5b506103bc6105973660046136b5565b61103c565b3480156105a857600080fd5b5060105460405160ff90911681526020016103e0565b3480156105ca57600080fd5b506103bc6105d93660046136b5565b611110565b3480156105ea57600080fd5b506104096105f9366004613749565b611303565b34801561060a57600080fd5b5060105461045a90610100900461ffff1681565b34801561062a57600080fd5b506103bc610639366004613839565b611339565b34801561064a57600080fd5b506103bc6106593660046137ac565b611423565b34801561066a57600080fd5b5060125461045a90600160a01b900461ffff1681565b34801561068c57600080fd5b506103bc61069b366004613839565b6114aa565b3480156106ac57600080fd5b506103bc6106bb3660046136b5565b611563565b3480156106cc57600080fd5b5061042a6106db366004613875565b6115c6565b3480156106ec57600080fd5b5060175461040990600160a81b900460ff1681565b34801561070d57600080fd5b50601754610544906001600160a01b031681565b34801561072d57600080fd5b506103bc61073c3660046136b5565b611653565b34801561074d57600080fd5b5061040961075c3660046136b5565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561078657600080fd5b50604080518082019091526006815265076312e302e360d41b60208201526103d3565b3480156107b557600080fd5b506103bc6107c43660046136b5565b611775565b3480156107d557600080fd5b506103bc6107e43660046136b5565b611849565b3480156107f557600080fd5b5060115461045a90600160a01b900461ffff1681565b34801561081757600080fd5b5061042a6108263660046136b5565b611923565b34801561083757600080fd5b506103bc611982565b34801561084c57600080fd5b50601154610544906001600160a01b031681565b34801561086c57600080fd5b50601354610544906001600160a01b031681565b34801561088c57600080fd5b5061040961089b3660046136b5565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156108c557600080fd5b506000546001600160a01b0316610544565b3480156108e357600080fd5b506103d36119f6565b3480156108f857600080fd5b50610409610907366004613749565b611a05565b34801561091857600080fd5b506103bc611a54565b34801561092d57600080fd5b5061040961093c366004613749565b611ac0565b34801561094d57600080fd5b506103d3611acd565b34801561096257600080fd5b506103d3611adc565b34801561097757600080fd5b506103bc610986366004613749565b611b6a565b34801561099757600080fd5b5060045461045a90600160c01b900461ffff1681565b3480156109b957600080fd5b50601554610544906001600160a01b031681565b3480156109d957600080fd5b5060145461045a90600160a01b900461ffff1681565b3480156109fb57600080fd5b506103bc610a0a366004613851565b611c98565b348015610a1b57600080fd5b506103bc610a2a3660046136b5565b611d0c565b348015610a3b57600080fd5b506103bc610a4a366004613774565b611de0565b348015610a5b57600080fd5b5060045461045a90600160b01b900461ffff1681565b348015610a7d57600080fd5b506103d3611e77565b348015610a9257600080fd5b506103bc610aa13660046136b5565b611e84565b348015610ab257600080fd5b50601254610544906001600160a01b031681565b348015610ad257600080fd5b5061042a610ae13660046136d1565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610b1857600080fd5b506103bc610b273660046136b5565b611f15565b348015610b3857600080fd5b506103bc610b473660046136b5565b611f75565b348015610b5857600080fd5b506103bc610b673660046137c6565b612064565b6014546001600160a01b0316331480610b8f57506000546001600160a01b031633145b610bb45760405162461bcd60e51b8152600401610bab906138ec565b60405180910390fd5b80610bbe33611923565b1015610bdc5760405162461bcd60e51b8152600401610bab90613921565b610bfa610bf16000546001600160a01b031690565b838360006122f3565b5050565b6060600e8054610c0d90613a57565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3990613a57565b8015610c865780601f10610c5b57610100808354040283529160200191610c86565b820191906000526020600020905b815481529060010190602001808311610c6957829003601f168201915b5050505050905090565b6000610c9d338484612467565b5060015b92915050565b6014546001600160a01b0316331480610cca57506000546001600160a01b031633145b610ce65760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b038116610d0c5760405162461bcd60e51b8152600401610bab9061399d565b601054600160281b90046001600160a01b031615610d5c57601054610d4090600160281b90046001600160a01b0316611110565b601054610d5c90600160281b90046001600160a01b0316611f15565b610d6581611653565b610d6e81611563565b601080546001600160a01b03909216600160281b0265010000000000600160c81b0319909216919091179055565b6000610da9848484612575565b610dfb8433610df685604051806060016040528060288152602001613ae7602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190612ade565b612467565b5060019392505050565b6014546001600160a01b0316331480610e2857506000546001600160a01b031633145b610e445760405162461bcd60e51b8152600401610bab906138ec565b610e4e6001611de0565b610e56612b0a565b6004805463ffffffff60b01b1916620c001960b01b179055565b6014546001600160a01b0316331480610e9357506000546001600160a01b031633145b610eaf5760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b038116610ed55760405162461bcd60e51b8152600401610bab9061399d565b6012546001600160a01b031615610f1057601254610efb906001600160a01b0316611110565b601254610f10906001600160a01b0316611f15565b610f1981611653565b610f2281611563565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316331480610f6757506000546001600160a01b031633145b610f835760405162461bcd60e51b8152600401610bab906138ec565b6127108161ffff161115610fa95760405162461bcd60e51b8152600401610bab90613921565b6004805461ffff909216600160c01b0261ffff60c01b19909216919091179055565b6000600c5482111561101f5760405162461bcd60e51b815260206004820152601e60248201527f416d74206d757374206265206c657373207468616e20746f74207265666c00006044820152606401610bab565b6000611029612bb6565b90506110358382612bd9565b9392505050565b6014546001600160a01b031633148061105f57506000546001600160a01b031633145b61107b5760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b0381166110a15760405162461bcd60e51b8152600401610bab9061399d565b6013546001600160a01b0316156110dc576013546110c7906001600160a01b0316611110565b6013546110dc906001600160a01b0316611f15565b6110e581611653565b6110ee81611563565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633148061113357506000546001600160a01b031633145b61114f5760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b03811660009081526009602052604090205460ff166111aa5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e48195e18db1d59195960821b6044820152606401610bab565b60005b600a54811015610bfa57816001600160a01b0316600a82815481106111e257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156112f157600a805461120d90600190613a40565b8154811061122b57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600a80546001600160a01b03909216918390811061126557634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600682526040808220829055600990925220805460ff19169055600a8054806112cb57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806112fb81613a92565b9150506111ad565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610c9d918590610df69086612be5565b3360008181526009602052604090205460ff16156113ae5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610bab565b60006113b983612bf1565b505050506001600160a01b0384166000908152600560205260409020549192506113e591905082612c40565b6001600160a01b038316600090815260056020526040902055600c5461140b9082612c40565b600c55600d5461141b9084612be5565b600d55505050565b6014546001600160a01b031633148061144657506000546001600160a01b031633145b6114625760405162461bcd60e51b8152600401610bab906138ec565b6127108161ffff1611156114885760405162461bcd60e51b8152600401610bab90613921565b6004805461ffff909216600160b01b0261ffff60b01b19909216919091179055565b806114b433611923565b101561151f5760405162461bcd60e51b815260206004820152603460248201527f4275726e2077616c6c65742062616c616e6365206d75737420626520677265616044820152731d195c881d1a185b88189d5c9b88185b5bdd5b9d60621b6064820152608401610bab565b6003546115399033906001600160a01b03168360006122f3565b600b546115469082612c40565b600b819055611553612bb6565b61155d9190613a21565b600c5550565b6014546001600160a01b031633148061158657506000546001600160a01b031633145b6115a25760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b6000600b5483111561161a5760405162461bcd60e51b815260206004820152601c60248201527f416d74206d757374206265206c657373207468616e20737570706c79000000006044820152606401610bab565b8161163957600061162a84612bf1565b50939550610ca1945050505050565b600061164484612bf1565b50929550610ca1945050505050565b6014546001600160a01b031633148061167657506000546001600160a01b031633145b6116925760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b03811660009081526009602052604090205460ff16611772576001600160a01b0381166000908152600560205260409020541561170c576001600160a01b0381166000908152600560205260409020546116f290610fcb565b6001600160a01b0382166000908152600660205260409020555b6001600160a01b0381166000818152600960205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b03191690911790555b50565b6014546001600160a01b031633148061179857506000546001600160a01b031633145b6117b45760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b0381166117da5760405162461bcd60e51b8152600401610bab9061399d565b6011546001600160a01b03161561181557601154611800906001600160a01b0316611110565b601154611815906001600160a01b0316611f15565b61181e81611653565b61182781611563565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633148061186c57506000546001600160a01b031633145b6118885760405162461bcd60e51b8152600401610bab906138ec565b6017546001600160a01b03828116911614156119015760405162461bcd60e51b815260206004820152603260248201527f4d44414f3a2074686520726f7574657220697320616c72656164792073657420604482015271746f20746865206e6577206164647265737360701b6064820152608401610bab565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526009602052604081205460ff161561196057506001600160a01b031660009081526006602052604090205490565b6001600160a01b038216600090815260056020526040902054610ca190610fcb565b6000546001600160a01b031633146119ac5760405162461bcd60e51b8152600401610bab90613958565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600f8054610c0d90613a57565b6000610c9d3384610df685604051806060016040528060258152602001613b0f602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190612ade565b6014546001600160a01b0316331480611a7757506000546001600160a01b031633145b611a935760405162461bcd60e51b8152600401610bab906138ec565b611a9d6000611de0565b611aa5612c4c565b6004805463ffffffff60b01b1916630271027160b41b179055565b6000610c9d338484612575565b606060028054610c0d90613a57565b600f8054611ae990613a57565b80601f0160208091040260200160405190810160405280929190818152602001828054611b1590613a57565b8015611b625780601f10611b3757610100808354040283529160200191611b62565b820191906000526020600020905b815481529060010190602001808311611b4557829003601f168201915b505050505081565b6014546001600160a01b0316331480611b8d57506000546001600160a01b031633145b611ba95760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b038216301415611bf25760405162461bcd60e51b815260206004820152600d60248201526c53656c6620776974686472617760981b6044820152606401610bab565b816001600160a01b031663a9059cbb611c136000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b158015611c5b57600080fd5b505af1158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c939190613790565b505050565b6014546001600160a01b0316331480611cbb57506000546001600160a01b031633145b611cd75760405162461bcd60e51b8152600401610bab906138ec565b81611ce130611923565b1015611cff5760405162461bcd60e51b8152600401610bab90613921565b610bfa30828460006122f3565b6014546001600160a01b0316331480611d2f57506000546001600160a01b031633145b611d4b5760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b038116611d715760405162461bcd60e51b8152600401610bab9061399d565b6015546001600160a01b031615611dac57601554611d97906001600160a01b0316611110565b601554611dac906001600160a01b0316611f15565b611db581611653565b611dbe81611563565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316331480611e0357506000546001600160a01b031633145b611e1f5760405162461bcd60e51b8152600401610bab906138ec565b60178054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611e6c90831515815260200190565b60405180910390a150565b600e8054611ae990613a57565b6014546001600160a01b0316331480611ea757506000546001600160a01b031633145b611ec35760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b038116611ee95760405162461bcd60e51b8152600401610bab9061399d565b6001600160a01b0381166000908152600860205260409020805460ff1916600117905561177281611f75565b6014546001600160a01b0316331480611f3857506000546001600160a01b031633145b611f545760405162461bcd60e51b8152600401610bab906138ec565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b03163314611f9f5760405162461bcd60e51b8152600401610bab90613958565b6001600160a01b0381166120095760405162461bcd60e51b815260206004820152602b60248201527f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b6064820152608401610bab565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b031633148061208757506000546001600160a01b031633145b6120a35760405162461bcd60e51b8152600401610bab906138ec565b60045461ffff600160a01b909104811690871611156120ef5760405162461bcd60e51b81526020600482015260086024820152672a231032b93937b960c11b6044820152606401610bab565b60045461ffff600160a01b9091048116908616111561213b5760405162461bcd60e51b815260206004820152600860248201526726a31032b93937b960c11b6044820152606401610bab565b60045461ffff600160a01b909104811690851611156121875760405162461bcd60e51b815260206004820152600860248201526726231032b93937b960c11b6044820152606401610bab565b60045461ffff600160a01b909104811690841611156121d35760405162461bcd60e51b815260206004820152600860248201526721a31032b93937b960c11b6044820152606401610bab565b60045461ffff600160a01b9091048116908316111561221f5760405162461bcd60e51b815260206004820152600860248201526724a31032b93937b960c11b6044820152606401610bab565b60045461ffff600160a01b90910481169082161061226a5760405162461bcd60e51b815260206004820152600860248201526721231032b93937b960c11b6044820152606401610bab565b6010805462ffff0061ffff60c81b01191661010061ffff9889160261ffff60c81b191617600160c81b96881696909602959095179094556012805461ffff60a01b19908116600160a01b94881685021790915560118054821694871684029490941790935560148054841691861683029190911790556015805490921692909316909202179055565b8061230057612300612c4c565b6001600160a01b03841660009081526009602052604090205460ff16801561234157506001600160a01b03831660009081526009602052604090205460ff16155b1561235657612351848484612db2565b612454565b6001600160a01b03841660009081526009602052604090205460ff1615801561239757506001600160a01b03831660009081526009602052604090205460ff165b156123a757612351848484612ed8565b6001600160a01b03841660009081526009602052604090205460ff161580156123e957506001600160a01b03831660009081526009602052604090205460ff16155b156123f957612351848484612f81565b6001600160a01b03841660009081526009602052604090205460ff16801561243957506001600160a01b03831660009081526009602052604090205460ff165b1561244957612351848484612fc5565b612454848484612f81565b8061246157612461612b0a565b50505050565b6001600160a01b0383166124bd5760405162461bcd60e51b815260206004820181905260248201527f45524332303a20617070726f76652066726f6d207a65726f20616464726573736044820152606401610bab565b6001600160a01b0382166125135760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f206164647265737300006044820152606401610bab565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166125d55760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610bab565b6001600160a01b03821661262b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610bab565b6000811161268d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bab565b8061269784611923565b116126f55760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f7574206d757374206265206c657373207468616e6044820152672062616c616e636560c01b6064820152608401610bab565b6017546001600160a01b038481169116148061272857506001600160a01b03831660009081526018602052604090205442115b6127745760405162461bcd60e51b815260206004820152601b60248201527f436f6f6c646f776e206973206e6f7420726561647920796574212100000000006044820152606401610bab565b6017546001600160a01b0383811691161480156127be57506004546127ba9061ffff600160c01b909104166127b46103e86127ae600b5490565b90612bd9565b90613038565b8110155b156128a2576001600160a01b038316600090815260196020526040902054612806576127ec42611c206139e9565b6001600160a01b0384166000908152601960205260409020555b6001600160a01b03831660009081526019602052604090205442116128885760405162461bcd60e51b815260206004820152603260248201527f69742069732064656c61796564206173206974206973206f76657220302e31326044820152712025206f6620746f74616c20737570706c7960701b6064820152608401610bab565b6001600160a01b0383166000908152601960205260408120555b6128ad42601e6139e9565b6001600160a01b03841660009081526018602052604081209190915560155460145460125460115460105461ffff600160a01b95869004811695948590048116949384900481169361290a9304811691600160c81b9004166139c3565b61291491906139c3565b61291e91906139c3565b61292891906139c3565b905060006129406127106127ae8561ffff8616613038565b9050600061294e8483612c40565b6017549091506001600160a01b0386811691161480159061298857506001600160a01b03851660009081526008602052604090205460ff16155b15612a1c57600454600b546129af91612710916127ae91600160b01b900461ffff16613038565b6129b886611923565b6129c290836139e9565b1115612a1c5760405162461bcd60e51b815260206004820152602360248201527f74686520616d6f756e74206578636565647320616c6c6f77616e636520302e3260448201526235202560e81b6064820152608401610bab565b601754600160a01b900460ff16158015612a5a57506017546001600160a01b0387811691161480612a5a57506017546001600160a01b038681169116145b8015612a6f5750601754600160a81b900460ff165b15612a7e57612a7e8287613044565b6001600160a01b03861660009081526008602052604090205460019060ff1680612ac057506001600160a01b03861660009081526008602052604090205460ff165b15612ac9575060005b612ad5878784846122f3565b50505050505050565b60008184841115612b025760405162461bcd60e51b8152600401610bab9190613899565b505050900390565b60108054600160c81b600160d81b61ffff6301000000840481166101000262ffff0019851681179290920481169290920261ffff60c81b1990911662ffff0061ffff60c81b0119909316929092179190911790915560118054600160a01b600160b01b8083048516820261ffff60a01b19938416179093556012805484810486168302908416179055601480548481048616830290841617905560158054938404909416029116179055565b6000806000612bc3613212565b9092509050612bd28282612bd9565b9250505090565b60006110358284613a01565b600061103582846139e9565b6000806000806000806000806000612c088a6133cc565b9250925092506000806000612c268d8686612c21612bb6565b61340e565b919f909e50909c50959a5093985091965092945050505050565b60006110358284613a40565b601054610100900461ffff16158015612c705750601054600160c81b900461ffff16155b8015612c875750601154600160a01b900461ffff16155b8015612c9e5750601254600160a01b900461ffff16155b8015612cb55750601454600160a01b900461ffff16155b8015612ccc5750601554600160a01b900461ffff16155b15612cd357565b601080546011805460128054601480546015805462ffff0061ffff60c81b0119600160d81b600160c81b630100000061ffff6101008e0481169190910264ffff000000198e1681179290920481169290920261ffff60d81b1990911664ffff00000061ffff60d81b0119909c169b909b179a909a171690995561ffff60a01b19600160b01b600160a01b8089048b168202831663ffffffff60a01b19998a16179099558886048a168102821695881695909517909555868204881684028516918616919091179091559386049094169093029290921691909216179055565b600080600080600080612dc487612bf1565b6001600160a01b038f16600090815260066020526040902054959b50939950919750955093509150612df69088612c40565b6001600160a01b038a16600090815260066020908152604080832093909355600590522054612e259087612c40565b6001600160a01b03808b1660009081526005602052604080822093909355908a1681522054612e549086612be5565b6001600160a01b038916600090815260056020526040902055612e768161345e565b612e8084836134e6565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612ec591815260200190565b60405180910390a3505050505050505050565b600080600080600080612eea87612bf1565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150612f1c9087612c40565b6001600160a01b03808b16600090815260056020908152604080832094909455918b16815260069091522054612f529084612be5565b6001600160a01b038916600090815260066020908152604080832093909355600590522054612e549086612be5565b600080600080600080612f9387612bf1565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150612e259087612c40565b600080600080600080612fd787612bf1565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506130099088612c40565b6001600160a01b038a16600090815260066020908152604080832093909355600590522054612f1c9087612c40565b60006110358284613a21565b60178054600160a01b60ff60a01b1990911681179091556015546014546012546011546010546000959485900461ffff90811695948590048116949384900481169361309b9304811691600160c81b9004166139c3565b6130a591906139c3565b6130af91906139c3565b6130b991906139c3565b601054909150600090600160c81b900461ffff161561310f576010546130f49061ffff600160c81b9091048116906127b49087908616612bd9565b60115490915061310f9084906001600160a01b03168361350a565b601154600160a01b900461ffff161561315f576011546131449061ffff600160a01b9091048116906127b49087908616612bd9565b60125490915061315f9084906001600160a01b03168361350a565b601254600160a01b900461ffff16156131af576012546131949061ffff600160a01b9091048116906127b49087908616612bd9565b6013549091506131af9084906001600160a01b03168361350a565b601454600160a01b900461ffff16156131ff576014546131e49061ffff600160a01b9091048116906127b49087908616612bd9565b6015549091506131ff9084906001600160a01b03168361350a565b50506017805460ff60a01b191690555050565b600c54600b546000918291825b600a5481101561339c578260056000600a848154811061324f57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806132c857508160066000600a84815481106132a157634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156132de57600c54600b54945094505050509091565b61333260056000600a848154811061330657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612c40565b925061338860066000600a848154811061335c57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612c40565b91508061339481613a92565b91505061321f565b50600b54600c546133ac91612bd9565b8210156133c357600c54600b549350935050509091565b90939092509050565b6000806000806133db85613670565b905060006133e886613692565b90506000613400826133fa8986612c40565b90612c40565b979296509094509092505050565b600080808061341d8886613038565b9050600061342b8887613038565b905060006134398888613038565b9050600061344b826133fa8686612c40565b939b939a50919850919650505050505050565b6000613468612bb6565b905060006134768383613038565b306000908152600560205260409020549091506134939082612be5565b3060009081526005602090815260408083209390935560099052205460ff1615611c9357306000908152600660205260409020546134d19084612be5565b30600090815260066020526040902055505050565b600c546134f39083612c40565b600c55600d546135039082612be5565b600d555050565b6001600160a01b03831660009081526005602052604090205461352d9082612c40565b6001600160a01b03808516600090815260056020526040808220939093559084168152205461355c9082612be5565b6001600160a01b0380841660009081526005602090815260408083209490945591861681526009909152205460ff16156135cd576001600160a01b0383166000908152600660205260409020546135b39082612c40565b6001600160a01b0384166000908152600660205260409020555b6001600160a01b03821660009081526009602052604090205460ff161561362b576001600160a01b0382166000908152600660205260409020546136119082612be5565b6001600160a01b0383166000908152600660205260409020555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161256891815260200190565b601054600090610ca190612710906127ae908590610100900461ffff16613038565b6000610ca18282613038565b803561ffff811681146136b057600080fd5b919050565b6000602082840312156136c6578081fd5b813561103581613ac3565b600080604083850312156136e3578081fd5b82356136ee81613ac3565b915060208301356136fe81613ac3565b809150509250929050565b60008060006060848603121561371d578081fd5b833561372881613ac3565b9250602084013561373881613ac3565b929592945050506040919091013590565b6000806040838503121561375b578182fd5b823561376681613ac3565b946020939093013593505050565b600060208284031215613785578081fd5b813561103581613ad8565b6000602082840312156137a1578081fd5b815161103581613ad8565b6000602082840312156137bd578081fd5b6110358261369e565b60008060008060008060c087890312156137de578182fd5b6137e78761369e565b95506137f56020880161369e565b94506138036040880161369e565b93506138116060880161369e565b925061381f6080880161369e565b915061382d60a0880161369e565b90509295509295509295565b60006020828403121561384a578081fd5b5035919050565b60008060408385031215613863578182fd5b8235915060208301356136fe81613ac3565b60008060408385031215613887578182fd5b8235915060208301356136fe81613ad8565b6000602080835283518082850152825b818110156138c5578581018301518582016040015282016138a9565b818111156138d65783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865204f776e6572604082015260600190565b6020808252601a908201527f4974206578636565647320616c6c6f77656420616d6f756e742e000000000000604082015260600190565b60208082526025908201527f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b6020808252600c908201526b5a45524f204144445245535360a01b604082015260600190565b600061ffff8083168185168083038211156139e0576139e0613aad565b01949350505050565b600082198211156139fc576139fc613aad565b500190565b600082613a1c57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615613a3b57613a3b613aad565b500290565b600082821015613a5257613a52613aad565b500390565b600181811c90821680613a6b57607f821691505b60208210811415613a8c57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415613aa657613aa6613aad565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461177257600080fd5b801515811461177257600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208dccb18d0a04d65efc1da29d15af9b3e46e69d60a0f4fad9af62a61ce309e8ba64736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000aa600a92bf5c0522770293d600311983b3f8c8620000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000108b2a2c280290940000000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : __metacrypt_target (address): 0xaA600a92bF5c0522770293D600311983B3f8c862
Arg [1] : __metacrypt_decimals (uint8): 7
Arg [2] : __metacrypt_initial (uint256): 20000000000000000000000000
Arg [3] : __metacrypt_router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000aa600a92bf5c0522770293d600311983b3f8c862
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [2] : 000000000000000000000000000000000000000000108b2a2c28029094000000
Arg [3] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
16726:27249:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43041:213;;;;;;;;;;-1:-1:-1;43041:213:0;;;;;:::i;:::-;;:::i;:::-;;20607:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21556:166;;;;;;;;;;-1:-1:-1;21556:166:0;;;;;:::i;:::-;;:::i;:::-;;;4916:14:1;;4909:22;4891:41;;4879:2;4864:18;21556:166:0;4846:92:1;20911:95:0;;;;;;;;;;-1:-1:-1;20991:7:0;;20911:95;;;16151:25:1;;;16139:2;16124:18;20911:95:0;16106:76:1;18756:29:0;;;;;;;;;;-1:-1:-1;18756:29:0;;;;-1:-1:-1;;;18756:29:0;;;;;;;;;15986:6:1;15974:19;;;15956:38;;15944:2;15929:18;18756:29:0;15911:89:1;29296:396:0;;;;;;;;;;-1:-1:-1;29296:396:0;;;;;:::i;:::-;;:::i;17910:33::-;;;;;;;;;;-1:-1:-1;17910:33:0;;;;-1:-1:-1;;;17910:33:0;;;;;;21730:446;;;;;;;;;;-1:-1:-1;21730:446:0;;;;;:::i;:::-;;:::i;42842:191::-;;;;;;;;;;;;;:::i;27920:454::-;;;;;;;;;;-1:-1:-1;27920:454:0;;;;;:::i;:::-;;:::i;42373:247::-;;;;;;;;;;-1:-1:-1;42373:247:0;;;;;:::i;:::-;;:::i;18878:37::-;;;;;;;;;;-1:-1:-1;18878:37:0;;;;-1:-1:-1;;;;;18878:37:0;;;;;;-1:-1:-1;;;;;4204:32:1;;;4186:51;;4174:2;4159:18;18878:37:0;4141:102:1;23858:246:0;;;;;;;;;;-1:-1:-1;23858:246:0;;;;;:::i;:::-;;:::i;28382:434::-;;;;;;;;;;-1:-1:-1;28382:434:0;;;;;:::i;:::-;;:::i;20811:92::-;;;;;;;;;;-1:-1:-1;20886:9:0;;20811:92;;20886:9;;;;16329:36:1;;16317:2;16302:18;20811:92:0;16284:87:1;24451:466:0;;;;;;;;;;-1:-1:-1;24451:466:0;;;;;:::i;:::-;;:::i;22184:273::-;;;;;;;;;;-1:-1:-1;22184:273:0;;;;;:::i;:::-;;:::i;17757:27::-;;;;;;;;;;-1:-1:-1;17757:27:0;;;;;;;;;;;22974:419;;;;;;;;;;-1:-1:-1;22974:419:0;;;;;:::i;:::-;;:::i;42163:202::-;;;;;;;;;;-1:-1:-1;42163:202:0;;;;;:::i;:::-;;:::i;18299:31::-;;;;;;;;;;-1:-1:-1;18299:31:0;;;;-1:-1:-1;;;18299:31:0;;;;;;37307:301;;;;;;;;;;-1:-1:-1;37307:301:0;;;;;:::i;:::-;;:::i;24925:113::-;;;;;;;;;;-1:-1:-1;24925:113:0;;;;;:::i;:::-;;:::i;23401:449::-;;;;;;;;;;-1:-1:-1;23401:449:0;;;;;:::i;:::-;;:::i;18983:40::-;;;;;;;;;;-1:-1:-1;18983:40:0;;;;-1:-1:-1;;;18983:40:0;;;;;;18922:24;;;;;;;;;;-1:-1:-1;18922:24:0;;;;-1:-1:-1;;;;;18922:24:0;;;24112:331;;;;;;;;;;-1:-1:-1;24112:331:0;;;;;:::i;:::-;;:::i;33070:124::-;;;;;;;;;;-1:-1:-1;33070:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;33159:27:0;33135:4;33159:27;;;:18;:27;;;;;;;;;33070:124;7069:89;;;;;;;;;;-1:-1:-1;7142:8:0;;;;;;;;;;;;-1:-1:-1;;;7142:8:0;;;;7069:89;;27463:449;;;;;;;;;;-1:-1:-1;27463:449:0;;;;;:::i;:::-;;:::i;43485:254::-;;;;;;;;;;-1:-1:-1;43485:254:0;;;;;:::i;:::-;;:::i;18101:33::-;;;;;;;;;;-1:-1:-1;18101:33:0;;;;-1:-1:-1;;;18101:33:0;;;;;;21014:198;;;;;;;;;;-1:-1:-1;21014:198:0;;;;;:::i;:::-;;:::i;9208:148::-;;;;;;;;;;;;;:::i;18036:38::-;;;;;;;;;;-1:-1:-1;18036:38:0;;;;-1:-1:-1;;;;;18036:38:0;;;18417:36;;;;;;;;;;-1:-1:-1;18417:36:0;;;;-1:-1:-1;;;;;18417:36:0;;;22846:120;;;;;;;;;;-1:-1:-1;22846:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;22938:20:0;22914:4;22938:20;;;:11;:20;;;;;;;;;22846:120;8980:87;;;;;;;;;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8980:87;;20707:96;;;;;;;;;;;;;:::i;22465:373::-;;;;;;;;;;-1:-1:-1;22465:373:0;;;;;:::i;:::-;;:::i;42628:202::-;;;;;;;;;;;;;:::i;21220:172::-;;;;;;;;;;-1:-1:-1;21220:172:0;;;;;:::i;:::-;;:::i;7578:99::-;;;;;;;;;;;;;:::i;17678:35::-;;;;;;;;;;;;;:::i;41865:290::-;;;;;;;;;;-1:-1:-1;41865:290:0;;;;;:::i;:::-;;:::i;17096:42::-;;;;;;;;;;-1:-1:-1;17096:42:0;;;;-1:-1:-1;;;17096:42:0;;;;;;18672:39;;;;;;;;;;-1:-1:-1;18672:39:0;;;;-1:-1:-1;;;;;18672:39:0;;;18527:34;;;;;;;;;;-1:-1:-1;18527:34:0;;;;-1:-1:-1;;;18527:34:0;;;;;;43745:227;;;;;;;;;;-1:-1:-1;43745:227:0;;;;;:::i;:::-;;:::i;28824:464::-;;;;;;;;;;-1:-1:-1;28824:464:0;;;;;:::i;:::-;;:::i;27255:173::-;;;;;;;;;;-1:-1:-1;27255:173:0;;;;;:::i;:::-;;:::i;17028:34::-;;;;;;;;;;-1:-1:-1;17028:34:0;;;;-1:-1:-1;;;17028:34:0;;;;;;17638:33;;;;;;;;;;;;;:::i;43260:219::-;;;;;;;;;;-1:-1:-1;43260:219:0;;;;;:::i;:::-;;:::i;18232:38::-;;;;;;;;;;-1:-1:-1;18232:38:0;;;;-1:-1:-1;;;;;18232:38:0;;;21400:148;;;;;;;;;;-1:-1:-1;21400:148:0;;;;;:::i;:::-;-1:-1:-1;;;;;21513:18:0;;;21481:7;21513:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;21400:148;25046:112;;;;;;;;;;-1:-1:-1;25046:112:0;;;;;:::i;:::-;;:::i;9364:249::-;;;;;;;;;;-1:-1:-1;9364:249:0;;;;;:::i;:::-;;:::i;25232:879::-;;;;;;;;;;-1:-1:-1;25232:879:0;;;;;:::i;:::-;;:::i;43041:213::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;;;;;;;;;43153:7:::1;43128:21;43138:10;43128:9;:21::i;:::-;:32;;43120:71;;;;-1:-1:-1::0;;;43120:71:0::1;;;;;;;:::i;:::-;43202:44;43217:7;9026::::0;9053:6;-1:-1:-1;;;;;9053:6:0;;8980:87;43217:7:::1;43226:3;43231:7;43240:5;43202:14;:44::i;:::-;43041:213:::0;;:::o;20607:92::-;20653:13;20686:5;20679:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20607:92;:::o;21556:166::-;21631:4;21653:39;8441:10;21676:7;21685:6;21653:8;:39::i;:::-;-1:-1:-1;21710:4:0;21556:166;;;;;:::o;29296:396::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29387:27:0;::::1;29379:52;;;;-1:-1:-1::0;;;29379:52:0::1;;;;;;;:::i;:::-;29446:10;::::0;-1:-1:-1;;;29446:10:0;::::1;-1:-1:-1::0;;;;;29446:10:0::1;:24:::0;29442:123:::1;;29503:10;::::0;29487:27:::1;::::0;-1:-1:-1;;;29503:10:0;::::1;-1:-1:-1::0;;;;;29503:10:0::1;29487:15;:27::i;:::-;29542:10;::::0;29529:24:::1;::::0;-1:-1:-1;;;29542:10:0;::::1;-1:-1:-1::0;;;;;29542:10:0::1;29529:12;:24::i;:::-;29575:32;29593:13;29575:17;:32::i;:::-;29618:29;29633:13;29618:14;:29::i;:::-;29658:10;:26:::0;;-1:-1:-1;;;;;29658:26:0;;::::1;-1:-1:-1::0;;;29658:26:0::1;-1:-1:-1::0;;;;;;29658:26:0;;::::1;::::0;;;::::1;::::0;;29296:396::o;21730:446::-;21862:4;21879:36;21889:6;21897:9;21908:6;21879:9;:36::i;:::-;21926:220;21949:6;8441:10;21997:138;22053:6;21997:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21997:19:0;;;;;;:11;:19;;;;;;;;8441:10;21997:33;;;;;;;;;;:37;:138::i;:::-;21926:8;:220::i;:::-;-1:-1:-1;22164:4:0;21730:446;;;;;:::o;42842:191::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;42898:30:::1;42923:4;42898:24;:30::i;:::-;42939:15;:13;:15::i;:::-;42965;:20:::0;;-1:-1:-1;;;;42996:29:0;-1:-1:-1;;;42996:29:0;;;42842:191::o;27920:454::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;28029:32:0;::::1;28021:57;;;;-1:-1:-1::0;;;28021:57:0::1;;;;;;;:::i;:::-;28093:15;::::0;-1:-1:-1;;;;;28093:15:0::1;:29:::0;28089:138:::1;;28155:15;::::0;28139:32:::1;::::0;-1:-1:-1;;;;;28155:15:0::1;28139;:32::i;:::-;28199:15;::::0;28186:29:::1;::::0;-1:-1:-1;;;;;28199:15:0::1;28186:12;:29::i;:::-;28237:37;28255:18;28237:17;:37::i;:::-;28285:34;28300:18;28285:14;:34::i;:::-;28330:15;:36:::0;;-1:-1:-1;;;;;;28330:36:0::1;-1:-1:-1::0;;;;;28330:36:0;;;::::1;::::0;;;::::1;::::0;;27920:454::o;42373:247::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;42513:5:::1;42484:25;:34;;;;42476:73;;;;-1:-1:-1::0;;;42476:73:0::1;;;;;;;:::i;:::-;42560:24;:52:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;42560:52:0::1;-1:-1:-1::0;;;;42560:52:0;;::::1;::::0;;;::::1;::::0;;42373:247::o;23858:246::-;23925:7;23969;;23958;:18;;23950:61;;;;-1:-1:-1;;;23950:61:0;;10354:2:1;23950:61:0;;;10336:21:1;10393:2;10373:18;;;10366:30;10432:32;10412:18;;;10405:60;10482:18;;23950:61:0;10326:180:1;23950:61:0;24022:19;24044:10;:8;:10::i;:::-;24022:32;-1:-1:-1;24072:24:0;:7;24022:32;24072:11;:24::i;:::-;24065:31;23858:246;-1:-1:-1;;;23858:246:0:o;28382:434::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;28487:30:0;::::1;28479:55;;;;-1:-1:-1::0;;;28479:55:0::1;;;;;;;:::i;:::-;28549:13;::::0;-1:-1:-1;;;;;28549:13:0::1;:27:::0;28545:132:::1;;28609:13;::::0;28593:30:::1;::::0;-1:-1:-1;;;;;28609:13:0::1;28593:15;:30::i;:::-;28651:13;::::0;28638:27:::1;::::0;-1:-1:-1;;;;;28651:13:0::1;28638:12;:27::i;:::-;28687:35;28705:16;28687:17;:35::i;:::-;28733:32;28748:16;28733:14;:32::i;:::-;28776:13;:32:::0;;-1:-1:-1;;;;;;28776:32:0::1;-1:-1:-1::0;;;;;28776:32:0;;;::::1;::::0;;;::::1;::::0;;28382:434::o;24451:466::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24531:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;24523:49;;;::::0;-1:-1:-1;;;24523:49:0;;10009:2:1;24523:49:0::1;::::0;::::1;9991:21:1::0;10048:2;10028:18;;;10021:30;-1:-1:-1;;;10067:18:1;;;10060:46;10123:18;;24523:49:0::1;9981:166:1::0;24523:49:0::1;24588:9;24583:327;24607:9;:16:::0;24603:20;::::1;24583:327;;;24665:7;-1:-1:-1::0;;;;;24649:23:0::1;:9;24659:1;24649:12;;;;;;-1:-1:-1::0;;;24649:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;24649:12:0::1;:23;24645:254;;;24708:9;24718:16:::0;;:20:::1;::::0;24737:1:::1;::::0;24718:20:::1;:::i;:::-;24708:31;;;;;;-1:-1:-1::0;;;24708:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;24693:9:::1;:12:::0;;-1:-1:-1;;;;;24708:31:0;;::::1;::::0;24703:1;;24693:12;::::1;;;-1:-1:-1::0;;;24693:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;24693:46:0::1;-1:-1:-1::0;;;;;24693:46:0;;::::1;;::::0;;24758:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;24797:11:::1;:20:::0;;;;:28;;-1:-1:-1;;24797:28:0::1;::::0;;24844:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;24844:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;24844:15:0;;;;;-1:-1:-1;;;;;;24844:15:0::1;::::0;;;;;43041:213;;:::o;24645:254::-:1;24625:3:::0;::::1;::::0;::::1;:::i;:::-;;;;24583:327;;22184:273:::0;8441:10;22272:4;22366:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;22366:34:0;;;;;;;;;;22272:4;;22294:133;;22344:7;;22366:50;;22405:10;22366:38;:50::i;22974:419::-;8441:10;23026:14;23089:19;;;:11;:19;;;;;;;;23088:20;23066:114;;;;-1:-1:-1;;;23066:114:0;;15240:2:1;23066:114:0;;;15222:21:1;15279:2;15259:18;;;15252:30;15318:34;15298:18;;;15291:62;-1:-1:-1;;;15369:18:1;;;15362:42;15421:19;;23066:114:0;15212:234:1;23066:114:0;23192:15;23221:19;23232:7;23221:10;:19::i;:::-;-1:-1:-1;;;;;;;;;23269:15:0;;;;;;:7;:15;;;;;;23191:49;;-1:-1:-1;23269:28:0;;:15;-1:-1:-1;23191:49:0;23269:19;:28::i;:::-;-1:-1:-1;;;;;23251:15:0;;;;;;:7;:15;;;;;:46;23318:7;;:20;;23330:7;23318:11;:20::i;:::-;23308:7;:30;23362:10;;:23;;23377:7;23362:14;:23::i;:::-;23349:10;:36;-1:-1:-1;;;22974:419:0:o;42163:202::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;42276:5:::1;42256:16;:25;;;;42248:64;;;;-1:-1:-1::0;;;42248:64:0::1;;;;;;;:::i;:::-;42323:15;:34:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;42323:34:0::1;-1:-1:-1::0;;;;42323:34:0;;::::1;::::0;;;::::1;::::0;;42163:202::o;37307:301::-;37396:6;37371:21;37381:10;37371:9;:21::i;:::-;:31;;37363:96;;;;-1:-1:-1;;;37363:96:0;;13728:2:1;37363:96:0;;;13710:21:1;13767:2;13747:18;;;13740:30;13806:34;13786:18;;;13779:62;-1:-1:-1;;;13857:18:1;;;13850:50;13917:19;;37363:96:0;13700:242:1;37363:96:0;37499:4;;37472:47;;37487:10;;-1:-1:-1;;;;;37499:4:0;37505:6;37499:4;37472:14;:47::i;:::-;37540:7;;:19;;37552:6;37540:11;:19::i;:::-;37530:7;:29;;;37580:10;:8;:10::i;:::-;:20;;;;:::i;:::-;37570:7;:30;-1:-1:-1;37307:301:0:o;24925:113::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24996:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;24996:34:0::1;25026:4;24996:34;::::0;;24925:113::o;23401:449::-;23492:7;23536;;23525;:18;;23517:59;;;;-1:-1:-1;;;23517:59:0;;7043:2:1;23517:59:0;;;7025:21:1;7082:2;7062:18;;;7055:30;7121;7101:18;;;7094:58;7169:18;;23517:59:0;7015:178:1;23517:59:0;23592:17;23587:256;;23627:15;23656:19;23667:7;23656:10;:19::i;:::-;-1:-1:-1;23626:49:0;;-1:-1:-1;23690:14:0;;-1:-1:-1;;;;;23690:14:0;23587:256;23740:23;23775:19;23786:7;23775:10;:19::i;:::-;-1:-1:-1;23737:57:0;;-1:-1:-1;23809:22:0;;-1:-1:-1;;;;;23809:22:0;24112:331;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24191:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;24186:250;;-1:-1:-1::0;;;;;24232:16:0;::::1;24251:1;24232:16:::0;;;:7:::1;:16;::::0;;;;;:20;24228:117:::1;;-1:-1:-1::0;;;;;24312:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;24292:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;24273:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;24228:117:::1;-1:-1:-1::0;;;;;24359:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;24359:27:0::1;24382:4;24359:27:::0;;::::1;::::0;;;24401:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;24401:23:0::1;::::0;;::::1;::::0;;24186:250:::1;24112:331:::0;:::o;27463:449::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27567:32:0;::::1;27559:57;;;;-1:-1:-1::0;;;27559:57:0::1;;;;;;;:::i;:::-;27631:15;::::0;-1:-1:-1;;;;;27631:15:0::1;:29:::0;27627:138:::1;;27693:15;::::0;27677:32:::1;::::0;-1:-1:-1;;;;;27693:15:0::1;27677;:32::i;:::-;27737:15;::::0;27724:29:::1;::::0;-1:-1:-1;;;;;27737:15:0::1;27724:12;:29::i;:::-;27775:37;27793:18;27775:17;:37::i;:::-;27823:34;27838:18;27823:14;:34::i;:::-;27868:15;:36:::0;;-1:-1:-1;;;;;;27868:36:0::1;-1:-1:-1::0;;;;;27868:36:0;;;::::1;::::0;;;::::1;::::0;;27463:449::o;43485:254::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;43610:9:::1;::::0;-1:-1:-1;;;;;43588:32:0;;::::1;43610:9:::0;::::1;43588:32;;43566:132;;;::::0;-1:-1:-1;;;43566:132:0;;14149:2:1;43566:132:0::1;::::0;::::1;14131:21:1::0;14188:2;14168:18;;;14161:30;14227:34;14207:18;;;14200:62;-1:-1:-1;;;14278:18:1;;;14271:48;14336:19;;43566:132:0::1;14121:240:1::0;43566:132:0::1;43709:9;:22:::0;;-1:-1:-1;;;;;;43709:22:0::1;-1:-1:-1::0;;;;;43709:22:0;;;::::1;::::0;;;::::1;::::0;;43485:254::o;21014:198::-;-1:-1:-1;;;;;21104:20:0;;21080:7;21104:20;;;:11;:20;;;;;;;;21100:49;;;-1:-1:-1;;;;;;21133:16:0;;;;;:7;:16;;;;;;;21014:198::o;21100:49::-;-1:-1:-1;;;;;21187:16:0;;;;;;:7;:16;;;;;;21167:37;;:19;:37::i;9208:148::-;9026:7;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;9115:23;9107:73;;;;-1:-1:-1;;;9107:73:0;;;;;;;:::i;:::-;9315:1:::1;9299:6:::0;;9278:40:::1;::::0;-1:-1:-1;;;;;9299:6:0;;::::1;::::0;9278:40:::1;::::0;9315:1;;9278:40:::1;9346:1;9329:19:::0;;-1:-1:-1;;;;;;9329:19:0::1;::::0;;9208:148::o;20707:96::-;20755:13;20788:7;20781:14;;;;;:::i;22465:373::-;22558:4;22580:228;8441:10;22630:7;22652:145;22709:15;22652:145;;;;;;;;;;;;;;;;;8441:10;22652:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;22652:34:0;;;;;;;;;;;;:38;:145::i;42628:202::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;42689:31:::1;42714:5;42689:24;:31::i;:::-;42731:14;:12;:14::i;:::-;42756:15;:23:::0;;-1:-1:-1;;;;42790:32:0;-1:-1:-1;;;42790:32:0;;;42628:202::o;21220:172::-;21298:4;21320:42;8441:10;21344:9;21355:6;21320:9;:42::i;7578:99::-;7624:13;7657:12;7650:19;;;;;:::i;17678:35::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;41865:290::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;42038:29:0;::::1;42062:4;42038:29;;42030:55;;;::::0;-1:-1:-1;;;42030:55:0;;8971:2:1;42030:55:0::1;::::0;::::1;8953:21:1::0;9010:2;8990:18;;;8983:30;-1:-1:-1;;;9029:18:1;;;9022:43;9082:18;;42030:55:0::1;8943:163:1::0;42030:55:0::1;42103:12;-1:-1:-1::0;;;;;42096:29:0::1;;42126:7;9026::::0;9053:6;-1:-1:-1;;;;;9053:6:0;;8980:87;42126:7:::1;42096:51;::::0;-1:-1:-1;;;;;;42096:51:0::1;::::0;;;;;;-1:-1:-1;;;;;4664:32:1;;;42096:51:0::1;::::0;::::1;4646::1::0;4713:18;;;4706:34;;;4619:18;;42096:51:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;41865:290:::0;;:::o;43745:227::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;43864:7:::1;43836:24;43854:4;43836:9;:24::i;:::-;:35;;43828:75;;;;-1:-1:-1::0;;;43828:75:0::1;;;;;;;:::i;:::-;43914:50;43937:4;43944:3;43949:7;43958:5;43914:14;:50::i;28824:464::-:0;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;28935:33:0;::::1;28927:58;;;;-1:-1:-1::0;;;28927:58:0::1;;;;;;;:::i;:::-;29000:16;::::0;-1:-1:-1;;;;;29000:16:0::1;:30:::0;28996:141:::1;;29063:16;::::0;29047:33:::1;::::0;-1:-1:-1;;;;;29063:16:0::1;29047:15;:33::i;:::-;29108:16;::::0;29095:30:::1;::::0;-1:-1:-1;;;;;29108:16:0::1;29095:12;:30::i;:::-;29147:38;29165:19;29147:17;:38::i;:::-;29196:35;29211:19;29196:14;:35::i;:::-;29242:16;:38:::0;;-1:-1:-1;;;;;;29242:38:0::1;-1:-1:-1::0;;;;;29242:38:0;;;::::1;::::0;;;::::1;::::0;;28824:464::o;27255:173::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;27334:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;27334:32:0::1;-1:-1:-1::0;;;;27334:32:0;;::::1;;::::0;;27382:38:::1;::::0;::::1;::::0;::::1;::::0;27358:8;4916:14:1;4909:22;4891:41;;4879:2;4864:18;;4846:92;27382:38:0::1;;;;;;;;27255:173:::0;:::o;17638:33::-;;;;;;;:::i;43260:219::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;43345:23:0;::::1;43337:48;;;;-1:-1:-1::0;;;43337:48:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;43396:29:0;::::1;;::::0;;;:18:::1;:29;::::0;;;;:36;;-1:-1:-1;;43396:36:0::1;43428:4;43396:36;::::0;;43443:28:::1;43415:9:::0;43443:17:::1;:28::i;25046:112::-:0;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25115:27:0::1;25145:5;25115:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;25115:35:0::1;::::0;;25046:112::o;9364:249::-;9026:7;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;9115:23;9107:73;;;;-1:-1:-1;;;9107:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9453:22:0;::::1;9445:78;;;::::0;-1:-1:-1;;;9445:78:0;;10713:2:1;9445:78:0::1;::::0;::::1;10695:21:1::0;10752:2;10732:18;;;10725:30;10791:34;10771:18;;;10764:62;-1:-1:-1;;;10842:18:1;;;10835:41;10893:19;;9445:78:0::1;10685:233:1::0;9445:78:0::1;9560:6;::::0;;9539:38:::1;::::0;-1:-1:-1;;;;;9539:38:0;;::::1;::::0;9560:6;::::1;::::0;9539:38:::1;::::0;::::1;9588:6;:17:::0;;-1:-1:-1;;;;;;9588:17:0::1;-1:-1:-1::0;;;;;9588:17:0;;;::::1;::::0;;;::::1;::::0;;9364:249::o;25232:879::-;19474:8;;-1:-1:-1;;;;;19474:8:0;8441:10;19474:24;;:51;;-1:-1:-1;9026:7:0;9053:6;-1:-1:-1;;;;;9053:6:0;8441:10;19502:23;19474:51;19466:96;;;;-1:-1:-1;;;19466:96:0;;;;;;;:::i;:::-;25501:6:::1;::::0;::::1;-1:-1:-1::0;;;25501:6:0;;::::1;::::0;::::1;25491:16:::0;;::::1;;;25468:52;;;::::0;-1:-1:-1;;;25468:52:0;;14904:2:1;25468:52:0::1;::::0;::::1;14886:21:1::0;14943:1;14923:18;;;14916:29;-1:-1:-1;;;14961:18:1;;;14954:38;15009:18;;25468:52:0::1;14876:157:1::0;25468:52:0::1;25576:6;::::0;::::1;-1:-1:-1::0;;;25576:6:0;;::::1;::::0;::::1;25560:22:::0;;::::1;;;25531:64;;;::::0;-1:-1:-1;;;25531:64:0;;5987:2:1;25531:64:0::1;::::0;::::1;5969:21:1::0;6026:1;6006:18;;;5999:29;-1:-1:-1;;;6044:18:1;;;6037:38;6092:18;;25531:64:0::1;5959:157:1::0;25531:64:0::1;25651:6;::::0;::::1;-1:-1:-1::0;;;25651:6:0;;::::1;::::0;::::1;25635:22:::0;;::::1;;;25606:64;;;::::0;-1:-1:-1;;;25606:64:0;;9673:2:1;25606:64:0::1;::::0;::::1;9655:21:1::0;9712:1;9692:18;;;9685:29;-1:-1:-1;;;9730:18:1;;;9723:38;9778:18;;25606:64:0::1;9645:157:1::0;25606:64:0::1;25722:6;::::0;::::1;-1:-1:-1::0;;;25722:6:0;;::::1;::::0;::::1;25708:20:::0;;::::1;;;25681:60;;;::::0;-1:-1:-1;;;25681:60:0;;14568:2:1;25681:60:0::1;::::0;::::1;14550:21:1::0;14607:1;14587:18;;;14580:29;-1:-1:-1;;;14625:18:1;;;14618:38;14673:18;;25681:60:0::1;14540:157:1::0;25681:60:0::1;25799:6;::::0;::::1;-1:-1:-1::0;;;25799:6:0;;::::1;::::0;::::1;25782:23:::0;;::::1;;;25752:66;;;::::0;-1:-1:-1;;;25752:66:0;;12296:2:1;25752:66:0::1;::::0;::::1;12278:21:1::0;12335:1;12315:18;;;12308:29;-1:-1:-1;;;12353:18:1;;;12346:38;12401:18;;25752:66:0::1;12268:157:1::0;25752:66:0::1;25868:6;::::0;::::1;-1:-1:-1::0;;;25868:6:0;;::::1;::::0;::::1;25855:19:::0;;::::1;;25829:58;;;::::0;-1:-1:-1;;;25829:58:0;;12632:2:1;25829:58:0::1;::::0;::::1;12614:21:1::0;12671:1;12651:18;;;12644:29;-1:-1:-1;;;12689:18:1;;;12682:38;12737:18;;25829:58:0::1;12604:157:1::0;25829:58:0::1;25898:7;:16:::0;;-1:-1:-1;;;;;;25925:28:0;25898:16:::1;;::::0;;::::1;;-1:-1:-1::0;;;;25925:28:0;;-1:-1:-1;;;25925:28:0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;25964:11:::1;:24:::0;;-1:-1:-1;;;;25964:24:0;;::::1;-1:-1:-1::0;;;25964:24:0;;::::1;::::0;::::1;;::::0;;;25999:13:::1;:28:::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;25964:11:::1;26038:30:::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;26079:11:::1;:24:::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;;25232:879::o;37689:838::-;37845:7;37840:28;;37854:14;:12;:14::i;:::-;-1:-1:-1;;;;;37885:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;37909:22:0;;;;;;:11;:22;;;;;;;;37908:23;37885:46;37881:597;;;37948:48;37970:6;37978:9;37989:6;37948:21;:48::i;:::-;37881:597;;;-1:-1:-1;;;;;38019:19:0;;;;;;:11;:19;;;;;;;;38018:20;:46;;;;-1:-1:-1;;;;;;38042:22:0;;;;;;:11;:22;;;;;;;;38018:46;38014:464;;;38081:46;38101:6;38109:9;38120:6;38081:19;:46::i;38014:464::-;-1:-1:-1;;;;;38150:19:0;;;;;;:11;:19;;;;;;;;38149:20;:47;;;;-1:-1:-1;;;;;;38174:22:0;;;;;;:11;:22;;;;;;;;38173:23;38149:47;38145:333;;;38213:44;38231:6;38239:9;38250:6;38213:17;:44::i;38145:333::-;-1:-1:-1;;;;;38279:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;38302:22:0;;;;;;:11;:22;;;;;;;;38279:45;38275:203;;;38341:48;38363:6;38371:9;38382:6;38341:21;:48::i;38275:203::-;38422:44;38440:6;38448:9;38459:6;38422:17;:44::i;:::-;38495:7;38490:29;;38504:15;:13;:15::i;:::-;37689:838;;;;:::o;33202:363::-;-1:-1:-1;;;;;33329:19:0;;33321:64;;;;-1:-1:-1;;;33321:64:0;;15653:2:1;33321:64:0;;;15635:21:1;;;15672:18;;;15665:30;15731:34;15711:18;;;15704:62;15783:18;;33321:64:0;15625:182:1;33321:64:0;-1:-1:-1;;;;;33404:21:0;;33396:64;;;;-1:-1:-1;;;33396:64:0;;6684:2:1;33396:64:0;;;6666:21:1;6723:2;6703:18;;;6696:30;6762:32;6742:18;;;6735:60;6812:18;;33396:64:0;6656:180:1;33396:64:0;-1:-1:-1;;;;;33473:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;33525:32;;16151:25:1;;;33525:32:0;;16124:18:1;33525:32:0;;;;;;;;33202:363;;;:::o;33571:2048::-;-1:-1:-1;;;;;33693:18:0;;33685:64;;;;-1:-1:-1;;;33685:64:0;;8213:2:1;33685:64:0;;;8195:21:1;8252:2;8232:18;;;8225:30;8291:34;8271:18;;;8264:62;-1:-1:-1;;;8342:18:1;;;8335:31;8383:19;;33685:64:0;8185:223:1;33685:64:0;-1:-1:-1;;;;;33768:16:0;;33760:60;;;;-1:-1:-1;;;33760:60:0;;9313:2:1;33760:60:0;;;9295:21:1;9352:2;9332:18;;;9325:30;9391:33;9371:18;;;9364:61;9442:18;;33760:60:0;9285:181:1;33760:60:0;33848:1;33839:6;:10;33831:64;;;;-1:-1:-1;;;33831:64:0;;11886:2:1;33831:64:0;;;11868:21:1;11925:2;11905:18;;;11898:30;11964:34;11944:18;;;11937:62;-1:-1:-1;;;12015:18:1;;;12008:39;12064:19;;33831:64:0;11858:231:1;33831:64:0;33932:6;33914:15;33924:4;33914:9;:15::i;:::-;:24;33906:77;;;;-1:-1:-1;;;33906:77:0;;7804:2:1;33906:77:0;;;7786:21:1;7843:2;7823:18;;;7816:30;7882:34;7862:18;;;7855:62;-1:-1:-1;;;7933:18:1;;;7926:38;7981:19;;33906:77:0;7776:230:1;33906:77:0;34010:9;;-1:-1:-1;;;;;34002:17:0;;;34010:9;;34002:17;;:53;;-1:-1:-1;;;;;;34023:14:0;;;;;;:8;:14;;;;;;34040:15;-1:-1:-1;34002:53:0;33994:93;;;;-1:-1:-1;;;33994:93:0;;8615:2:1;33994:93:0;;;8597:21:1;8654:2;8634:18;;;8627:30;8693:29;8673:18;;;8666:57;8740:18;;33994:93:0;8587:177:1;33994:93:0;34107:9;;-1:-1:-1;;;;;34101:15:0;;;34107:9;;34101:15;:82;;;;-1:-1:-1;34158:24:0;;34130:53;;34158:24;-1:-1:-1;;;34158:24:0;;;;34130:23;34148:4;34130:13;20991:7;;;20911:95;34130:13;:17;;:23::i;:::-;:27;;:53::i;:::-;34120:6;:63;;34101:82;34098:347;;;-1:-1:-1;;;;;34202:16:0;;;;;;:10;:16;;;;;;34199:87;;34261:25;:15;34279:7;34261:25;:::i;:::-;-1:-1:-1;;;;;34242:16:0;;;;;;:10;:16;;;;;:44;34199:87;-1:-1:-1;;;;;34309:16:0;;;;;;:10;:16;;;;;;34328:15;-1:-1:-1;34301:97:0;;;;-1:-1:-1;;;34301:97:0;;12968:2:1;34301:97:0;;;12950:21:1;13007:2;12987:18;;;12980:30;13046:34;13026:18;;;13019:62;-1:-1:-1;;;13097:18:1;;;13090:48;13155:19;;34301:97:0;12940:240:1;34301:97:0;-1:-1:-1;;;;;34413:16:0;;34432:1;34413:16;;;:10;:16;;;;;:20;34098:347;34474:28;:15;34492:10;34474:28;:::i;:::-;-1:-1:-1;;;;;34457:14:0;;;;;;:8;:14;;;;;:45;;;;34660:11;;;34630:14;34603:11;;34574:13;;34545;;34660:11;-1:-1:-1;;;34660:11:0;;;;;;;34630:14;;;;;;;34603:11;;;;;;;34545:42;;34574:13;;;;-1:-1:-1;;;34545:13:0;;;:42;:::i;:::-;:69;;;;:::i;:::-;:99;;;;:::i;:::-;:126;;;;:::i;:::-;34515:156;-1:-1:-1;34684:28:0;34715:29;34738:5;34715:18;:6;:18;;;:10;:18::i;:29::-;34684:60;-1:-1:-1;34755:15:0;34773:32;:6;34684:60;34773:10;:32::i;:::-;34828:9;;34755:50;;-1:-1:-1;;;;;;34822:15:0;;;34828:9;;34822:15;;;;:42;;-1:-1:-1;;;;;;34842:22:0;;;;;;:18;:22;;;;;;;;34841:23;34822:42;34818:187;;;34926:15;;34914:7;;:39;;34947:5;;34914:28;;-1:-1:-1;;;34926:15:0;;;;34914:11;:28::i;:39::-;34897:13;34907:2;34897:9;:13::i;:::-;34887:23;;:7;:23;:::i;:::-;:66;;34879:114;;;;-1:-1:-1;;;34879:114:0;;7400:2:1;34879:114:0;;;7382:21:1;7439:2;7419:18;;;7412:30;7478:34;7458:18;;;7451:62;-1:-1:-1;;;7529:18:1;;;7522:33;7572:19;;34879:114:0;7372:225:1;34879:114:0;35020:16;;-1:-1:-1;;;35020:16:0;;;;35019:17;:59;;;;-1:-1:-1;35049:9:0;;-1:-1:-1;;;;;35041:17:0;;;35049:9;;35041:17;;:36;;-1:-1:-1;35068:9:0;;-1:-1:-1;;;;;35062:15:0;;;35068:9;;35062:15;35041:36;35019:84;;;;-1:-1:-1;35082:21:0;;-1:-1:-1;;;35082:21:0;;;;35019:84;35015:188;;;35149:42;35164:20;35186:4;35149:14;:42::i;:::-;-1:-1:-1;;;;;35397:24:0;;35276:12;35397:24;;;:18;:24;;;;;;35291:4;;35397:24;;;:50;;-1:-1:-1;;;;;;35425:22:0;;;;;;:18;:22;;;;;;;;35397:50;35393:98;;;-1:-1:-1;35474:5:0;35393:98;35569:42;35584:4;35590:2;35594:7;35603;35569:14;:42::i;:::-;33571:2048;;;;;;;:::o;14759:240::-;14879:7;14940:12;14932:6;;;;14924:29;;;;-1:-1:-1;;;14924:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;14975:5:0;;;14759:240::o;26831:311::-;26885:15;;;-1:-1:-1;;;;;;26885:15:0;;;;;;;26875:25;-1:-1:-1;;26875:25:0;;;;26927:21;;;;;;26911:37;;;;-1:-1:-1;;;;26911:37:0;;;-1:-1:-1;;;;;;26911:37:0;;;;;;;;;;;;;;26975:21;;;-1:-1:-1;;;;;;26975:21:0;;;;;26959:37;;-1:-1:-1;;;;26959:37:0;;;;;;;27021:19;;;;;;;;27007:33;;;;;;;;26959:13;27068:22;;;;;;;27051:39;;;;;;;;27115:19;;;;;;;;;27101:33;;;;;;26831:311::o;31625:164::-;31667:7;31688:15;31705;31724:19;:17;:19::i;:::-;31687:56;;-1:-1:-1;31687:56:0;-1:-1:-1;31761:20:0;31687:56;;31761:11;:20::i;:::-;31754:27;;;;31625:164;:::o;13617:98::-;13675:7;13702:5;13706:1;13702;:5;:::i;12480:98::-;12538:7;12565:5;12569:1;12565;:5;:::i;30029:624::-;30129:7;30151;30173;30195;30217;30239;30275:23;30299:12;30312:18;30334:20;30346:7;30334:11;:20::i;:::-;30274:80;;;;;;30366:15;30383:23;30408:12;30424:47;30436:7;30444:4;30449:10;30460;:8;:10::i;:::-;30424:11;:47::i;:::-;30365:106;;;;-1:-1:-1;30365:106:0;;-1:-1:-1;30575:15:0;;-1:-1:-1;30605:4:0;;-1:-1:-1;30624:10:0;;-1:-1:-1;30029:624:0;;-1:-1:-1;;;;;30029:624:0:o;12861:98::-;12919:7;12946:5;12950:1;12946;:5;:::i;26119:704::-;26180:7;;;;;;;:12;:47;;;;-1:-1:-1;26209:13:0;;-1:-1:-1;;;26209:13:0;;;;:18;26180:47;:82;;;;-1:-1:-1;26244:13:0;;-1:-1:-1;;;26244:13:0;;;;:18;26180:82;:115;;;;-1:-1:-1;26279:11:0;;-1:-1:-1;;;26279:11:0;;;;:16;26180:115;:151;;;;-1:-1:-1;26312:14:0;;-1:-1:-1;;;26312:14:0;;;;:19;26180:151;:184;;;;-1:-1:-1;26348:11:0;;-1:-1:-1;;;26348:11:0;;;;:16;26180:184;26162:221;;;26119:704::o;26162:221::-;26413:7;;;26503:13;;;26549:11;;;26503:13;26596:14;;26643:11;;;-1:-1:-1;;;;;;;;;;;;26395:25:0;26413:7;;;;;;26395:25;;;;-1:-1:-1;;26395:25:0;;;;26455:13;;;;;;26431:37;;;;-1:-1:-1;;;;26431:37:0;;;-1:-1:-1;;;;;;26431:37:0;;;;;;;;;;;26689:17;;;;-1:-1:-1;;;;;;;;;;26503:13:0;;;;;26479:37;;26717:17;;-1:-1:-1;;;;26717:17:0;;;;;;;26549:11;;;;;26527:33;;26745:15;;;;;;;;;;;;26596:14;;;;;26571:39;;26771:18;;;;;;;;;;;;26643:11;;;;;;26621:33;;;26800:15;;;;;;;;;;;26119:704::o;39874:686::-;40025:15;40055:23;40093:12;40120:23;40158:12;40185:18;40217:19;40228:7;40217:10;:19::i;:::-;-1:-1:-1;;;;;40265:15:0;;;;;;:7;:15;;;;;;40010:226;;-1:-1:-1;40010:226:0;;-1:-1:-1;40010:226:0;;-1:-1:-1;40010:226:0;-1:-1:-1;40010:226:0;-1:-1:-1;40010:226:0;-1:-1:-1;40265:28:0;;40285:7;40265:19;:28::i;:::-;-1:-1:-1;;;;;40247:15:0;;;;;;:7;:15;;;;;;;;:46;;;;40322:7;:15;;;;:28;;40342:7;40322:19;:28::i;:::-;-1:-1:-1;;;;;40304:15:0;;;;;;;:7;:15;;;;;;:46;;;;40382:18;;;;;;;:39;;40405:15;40382:22;:39::i;:::-;-1:-1:-1;;;;;40361:18:0;;;;;;:7;:18;;;;;:60;40432:26;40447:10;40432:14;:26::i;:::-;40469:23;40481:4;40487;40469:11;:23::i;:::-;40525:9;-1:-1:-1;;;;;40508:44:0;40517:6;-1:-1:-1;;;;;40508:44:0;;40536:15;40508:44;;;;16151:25:1;;16139:2;16124:18;;16106:76;40508:44:0;;;;;;;;39874:686;;;;;;;;;:::o;39168:698::-;39317:15;39347:23;39385:12;39412:23;39450:12;39477:18;39509:19;39520:7;39509:10;:19::i;:::-;-1:-1:-1;;;;;39557:15:0;;;;;;:7;:15;;;;;;39302:226;;-1:-1:-1;39302:226:0;;-1:-1:-1;39302:226:0;;-1:-1:-1;39302:226:0;-1:-1:-1;39302:226:0;-1:-1:-1;39302:226:0;-1:-1:-1;39557:28:0;;39302:226;39557:19;:28::i;:::-;-1:-1:-1;;;;;39539:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;39617:18;;;;;:7;:18;;;;;:39;;39640:15;39617:22;:39::i;:::-;-1:-1:-1;;;;;39596:18:0;;;;;;:7;:18;;;;;;;;:60;;;;39688:7;:18;;;;:39;;39711:15;39688:22;:39::i;38535:625::-;38682:15;38712:23;38750:12;38777:23;38815:12;38842:18;38874:19;38885:7;38874:10;:19::i;:::-;-1:-1:-1;;;;;38922:15:0;;;;;;:7;:15;;;;;;38667:226;;-1:-1:-1;38667:226:0;;-1:-1:-1;38667:226:0;;-1:-1:-1;38667:226:0;-1:-1:-1;38667:226:0;-1:-1:-1;38667:226:0;-1:-1:-1;38922:28:0;;38667:226;38922:19;:28::i;40568:757::-;40719:15;40749:23;40787:12;40814:23;40852:12;40879:18;40911:19;40922:7;40911:10;:19::i;:::-;-1:-1:-1;;;;;40959:15:0;;;;;;:7;:15;;;;;;40704:226;;-1:-1:-1;40704:226:0;;-1:-1:-1;40704:226:0;;-1:-1:-1;40704:226:0;-1:-1:-1;40704:226:0;-1:-1:-1;40704:226:0;-1:-1:-1;40959:28:0;;40979:7;40959:19;:28::i;:::-;-1:-1:-1;;;;;40941:15:0;;;;;;:7;:15;;;;;;;;:46;;;;41016:7;:15;;;;:28;;41036:7;41016:19;:28::i;13218:98::-;13276:7;13303:5;13307:1;13303;:5;:::i;35627:1562::-;19346:16;:23;;-1:-1:-1;;;;;;;19346:23:0;;;;;;;;35961:11:::1;::::0;19346:16;35931:14;35904:11:::1;::::0;35875:13:::1;::::0;35846::::1;::::0;-1:-1:-1;;35961:11:0;;;::::1;;::::0;;::::1;::::0;35931:14;;;::::1;::::0;::::1;::::0;35904:11;;;::::1;::::0;::::1;::::0;35846:42:::1;::::0;35875:13:::1;::::0;::::1;::::0;-1:-1:-1;;;35846:13:0;::::1;;:42;:::i;:::-;:69;;;;:::i;:::-;:99;;;;:::i;:::-;:126;;;;:::i;:::-;36063:13;::::0;35816:156;;-1:-1:-1;35983:19:0::1;::::0;-1:-1:-1;;;36063:13:0;::::1;;;:18:::0;36059:250:::1;;36149:13;::::0;36112:51:::1;::::0;36149:13:::1;-1:-1:-1::0;;;36149:13:0;;::::1;::::0;::::1;::::0;36112:32:::1;::::0;:20;;:32;::::1;:24;:32::i;:51::-;36205:15;::::0;36098:65;;-1:-1:-1;36178:56:0::1;::::0;36198:5;;-1:-1:-1;;;;;36205:15:0::1;36098:65:::0;36178:19:::1;:56::i;:::-;36323:13;::::0;-1:-1:-1;;;36323:13:0;::::1;;;:18:::0;36319:282:::1;;36427:13;::::0;36372:83:::1;::::0;36427:13:::1;-1:-1:-1::0;;;36427:13:0;;::::1;::::0;::::1;::::0;36372:32:::1;::::0;:20;;:32;::::1;:24;:32::i;:83::-;36497:15;::::0;36358:97;;-1:-1:-1;36470:56:0::1;::::0;36490:5;;-1:-1:-1;;;;;36497:15:0::1;36358:97:::0;36470:19:::1;:56::i;:::-;36615:11;::::0;-1:-1:-1;;;36615:11:0;::::1;;;:16:::0;36611:276:::1;;36717:11;::::0;36662:81:::1;::::0;36717:11:::1;-1:-1:-1::0;;;36717:11:0;;::::1;::::0;::::1;::::0;36662:32:::1;::::0;:20;;:32;::::1;:24;:32::i;:81::-;36785:13;::::0;36648:95;;-1:-1:-1;36758:54:0::1;::::0;36778:5;;-1:-1:-1;;;;;36785:13:0::1;36648:95:::0;36758:19:::1;:54::i;:::-;36901:14;::::0;-1:-1:-1;;;36901:14:0;::::1;;;:19:::0;36897:285:::1;;37006:14;::::0;36951:84:::1;::::0;37006:14:::1;-1:-1:-1::0;;;37006:14:0;;::::1;::::0;::::1;::::0;36951:32:::1;::::0;:20;;:32;::::1;:24;:32::i;:84::-;37077:16;::::0;36937:98;;-1:-1:-1;37050:57:0::1;::::0;37070:5;;-1:-1:-1;;;;;37077:16:0::1;36937:98:::0;37050:19:::1;:57::i;:::-;-1:-1:-1::0;;19392:16:0;:24;;-1:-1:-1;;;;19392:24:0;;;-1:-1:-1;;35627:1562:0:o;31797:605::-;31895:7;;31931;;31848;;;;;31949:338;31973:9;:16;31969:20;;31949:338;;;32057:7;32033;:21;32041:9;32051:1;32041:12;;;;;;-1:-1:-1;;;32041:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32041:12:0;32033:21;;;;;;;;;;;;;:31;;:83;;;32109:7;32085;:21;32093:9;32103:1;32093:12;;;;;;-1:-1:-1;;;32093:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32093:12:0;32085:21;;;;;;;;;;;;;:31;32033:83;32011:146;;;32140:7;;32149;;32132:25;;;;;;;31797:605;;:::o;32011:146::-;32182:34;32194:7;:21;32202:9;32212:1;32202:12;;;;;;-1:-1:-1;;;32202:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32202:12:0;32194:21;;;;;;;;;;;;;32182:7;;:11;:34::i;:::-;32172:44;;32241:34;32253:7;:21;32261:9;32271:1;32261:12;;;;;;-1:-1:-1;;;32261:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32261:12:0;32253:21;;;;;;;;;;;;;32241:7;;:11;:34::i;:::-;32231:44;-1:-1:-1;31991:3:0;;;;:::i;:::-;;;;31949:338;;;-1:-1:-1;32323:7:0;;32311;;:20;;:11;:20::i;:::-;32301:7;:30;32297:61;;;32341:7;;32350;;32333:25;;;;;;31797:605;;:::o;32297:61::-;32377:7;;32386;;-1:-1:-1;31797:605:0;-1:-1:-1;31797:605:0:o;30661:394::-;30744:7;30766;30788;30823:12;30838:24;30854:7;30838:15;:24::i;:::-;30823:39;;30873:18;30894:30;30916:7;30894:21;:30::i;:::-;30873:51;-1:-1:-1;30935:23:0;30961:33;30873:51;30961:17;:7;30973:4;30961:11;:17::i;:::-;:21;;:33::i;:::-;30935:59;31030:4;;-1:-1:-1;31036:10:0;;-1:-1:-1;30661:394:0;;-1:-1:-1;;;30661:394:0:o;31063:554::-;31262:7;;;;31359:24;:7;31371:11;31359;:24::i;:::-;31341:42;-1:-1:-1;31394:12:0;31409:21;:4;31418:11;31409:8;:21::i;:::-;31394:36;-1:-1:-1;31441:18:0;31462:27;:10;31477:11;31462:14;:27::i;:::-;31441:48;-1:-1:-1;31500:23:0;31526:33;31441:48;31526:17;:7;31538:4;31526:11;:17::i;:33::-;31578:7;;;;-1:-1:-1;31604:4:0;;-1:-1:-1;31063:554:0;;-1:-1:-1;;;;;;;31063:554:0:o;32410:355::-;32473:19;32495:10;:8;:10::i;:::-;32473:32;-1:-1:-1;32516:18:0;32537:27;:10;32473:32;32537:14;:27::i;:::-;32616:4;32600:22;;;;:7;:22;;;;;;32516:48;;-1:-1:-1;32600:38:0;;32516:48;32600:26;:38::i;:::-;32591:4;32575:22;;;;:7;:22;;;;;;;;:63;;;;32653:11;:26;;;;;;32649:108;;;32735:4;32719:22;;;;:7;:22;;;;;;:38;;32746:10;32719:26;:38::i;:::-;32710:4;32694:22;;;;:7;:22;;;;;:63;32410:355;;;:::o;29874:147::-;29952:7;;:17;;29964:4;29952:11;:17::i;:::-;29942:7;:27;29993:10;;:20;;30008:4;29993:14;:20::i;:::-;29980:10;:33;-1:-1:-1;;29874:147:0:o;41333:524::-;-1:-1:-1;;;;;41484:15:0;;;;;;:7;:15;;;;;;:27;;41504:6;41484:19;:27::i;:::-;-1:-1:-1;;;;;41466:15:0;;;;;;;:7;:15;;;;;;:45;;;;41543:18;;;;;;;:30;;41566:6;41543:22;:30::i;:::-;-1:-1:-1;;;;;41522:18:0;;;;;;;:7;:18;;;;;;;;:51;;;;41590:19;;;;;:11;:19;;;;;;;41586:97;;;-1:-1:-1;;;;;41644:15:0;;;;;;:7;:15;;;;;;:27;;41664:6;41644:19;:27::i;:::-;-1:-1:-1;;;;;41626:15:0;;;;;;:7;:15;;;;;:45;41586:97;-1:-1:-1;;;;;41697:22:0;;;;;;:11;:22;;;;;;;;41693:106;;;-1:-1:-1;;;;;41757:18:0;;;;;;:7;:18;;;;;;:30;;41780:6;41757:22;:30::i;:::-;-1:-1:-1;;;;;41736:18:0;;;;;;:7;:18;;;;;:51;41693:106;41831:9;-1:-1:-1;;;;;41814:35:0;41823:6;-1:-1:-1;;;;;41814:35:0;;41842:6;41814:35;;;;16151:25:1;;16139:2;16124:18;;16106:76;32773:130:0;32876:7;;32837;;32864:31;;32889:5;;32864:20;;:7;;32876;;;;;32864:11;:20::i;32911:151::-;33008:7;33040:14;:7;33008;33040:11;:14::i;14:159:1:-;81:20;;141:6;130:18;;120:29;;110:2;;163:1;160;153:12;110:2;62:111;;;:::o;178:257::-;237:6;290:2;278:9;269:7;265:23;261:32;258:2;;;311:6;303;296:22;258:2;355:9;342:23;374:31;399:5;374:31;:::i;710:398::-;778:6;786;839:2;827:9;818:7;814:23;810:32;807:2;;;860:6;852;845:22;807:2;904:9;891:23;923:31;948:5;923:31;:::i;:::-;973:5;-1:-1:-1;1030:2:1;1015:18;;1002:32;1043:33;1002:32;1043:33;:::i;:::-;1095:7;1085:17;;;797:311;;;;;:::o;1113:466::-;1190:6;1198;1206;1259:2;1247:9;1238:7;1234:23;1230:32;1227:2;;;1280:6;1272;1265:22;1227:2;1324:9;1311:23;1343:31;1368:5;1343:31;:::i;:::-;1393:5;-1:-1:-1;1450:2:1;1435:18;;1422:32;1463:33;1422:32;1463:33;:::i;:::-;1217:362;;1515:7;;-1:-1:-1;;;1569:2:1;1554:18;;;;1541:32;;1217:362::o;1584:325::-;1652:6;1660;1713:2;1701:9;1692:7;1688:23;1684:32;1681:2;;;1734:6;1726;1719:22;1681:2;1778:9;1765:23;1797:31;1822:5;1797:31;:::i;:::-;1847:5;1899:2;1884:18;;;;1871:32;;-1:-1:-1;;;1671:238:1:o;1914:251::-;1970:6;2023:2;2011:9;2002:7;1998:23;1994:32;1991:2;;;2044:6;2036;2029:22;1991:2;2088:9;2075:23;2107:28;2129:5;2107:28;:::i;2170:255::-;2237:6;2290:2;2278:9;2269:7;2265:23;2261:32;2258:2;;;2311:6;2303;2296:22;2258:2;2348:9;2342:16;2367:28;2389:5;2367:28;:::i;2430:194::-;2488:6;2541:2;2529:9;2520:7;2516:23;2512:32;2509:2;;;2562:6;2554;2547:22;2509:2;2590:28;2608:9;2590:28;:::i;2629:557::-;2727:6;2735;2743;2751;2759;2767;2820:3;2808:9;2799:7;2795:23;2791:33;2788:2;;;2842:6;2834;2827:22;2788:2;2870:28;2888:9;2870:28;:::i;:::-;2860:38;;2917:37;2950:2;2939:9;2935:18;2917:37;:::i;:::-;2907:47;;2973:37;3006:2;2995:9;2991:18;2973:37;:::i;:::-;2963:47;;3029:37;3062:2;3051:9;3047:18;3029:37;:::i;:::-;3019:47;;3085:38;3118:3;3107:9;3103:19;3085:38;:::i;:::-;3075:48;;3142:38;3175:3;3164:9;3160:19;3142:38;:::i;:::-;3132:48;;2778:408;;;;;;;;:::o;3191:190::-;3250:6;3303:2;3291:9;3282:7;3278:23;3274:32;3271:2;;;3324:6;3316;3309:22;3271:2;-1:-1:-1;3352:23:1;;3261:120;-1:-1:-1;3261:120:1:o;3386:325::-;3454:6;3462;3515:2;3503:9;3494:7;3490:23;3486:32;3483:2;;;3536:6;3528;3521:22;3483:2;3577:9;3564:23;3554:33;;3637:2;3626:9;3622:18;3609:32;3650:31;3675:5;3650:31;:::i;3716:319::-;3781:6;3789;3842:2;3830:9;3821:7;3817:23;3813:32;3810:2;;;3863:6;3855;3848:22;3810:2;3904:9;3891:23;3881:33;;3964:2;3953:9;3949:18;3936:32;3977:28;3999:5;3977:28;:::i;5177:603::-;5289:4;5318:2;5347;5336:9;5329:21;5379:6;5373:13;5422:6;5417:2;5406:9;5402:18;5395:34;5447:4;5460:140;5474:6;5471:1;5468:13;5460:140;;;5569:14;;;5565:23;;5559:30;5535:17;;;5554:2;5531:26;5524:66;5489:10;;5460:140;;;5618:6;5615:1;5612:13;5609:2;;;5688:4;5683:2;5674:6;5663:9;5659:22;5655:31;5648:45;5609:2;-1:-1:-1;5764:2:1;5743:15;-1:-1:-1;;5739:29:1;5724:45;;;;5771:2;5720:54;;5298:482;-1:-1:-1;;;5298:482:1:o;6121:356::-;6323:2;6305:21;;;6342:18;;;6335:30;6401:34;6396:2;6381:18;;6374:62;6468:2;6453:18;;6295:182::o;10923:350::-;11125:2;11107:21;;;11164:2;11144:18;;;11137:30;11203:28;11198:2;11183:18;;11176:56;11264:2;11249:18;;11097:176::o;11278:401::-;11480:2;11462:21;;;11519:2;11499:18;;;11492:30;11558:34;11553:2;11538:18;;11531:62;-1:-1:-1;;;11624:2:1;11609:18;;11602:35;11669:3;11654:19;;11452:227::o;13185:336::-;13387:2;13369:21;;;13426:2;13406:18;;;13399:30;-1:-1:-1;;;13460:2:1;13445:18;;13438:42;13512:2;13497:18;;13359:162::o;16376:224::-;16415:3;16443:6;16476:2;16473:1;16469:10;16506:2;16503:1;16499:10;16537:3;16533:2;16529:12;16524:3;16521:21;16518:2;;;16545:18;;:::i;:::-;16581:13;;16423:177;-1:-1:-1;;;;16423:177:1:o;16605:128::-;16645:3;16676:1;16672:6;16669:1;16666:13;16663:2;;;16682:18;;:::i;:::-;-1:-1:-1;16718:9:1;;16653:80::o;16738:217::-;16778:1;16804;16794:2;;-1:-1:-1;;;16829:31:1;;16883:4;16880:1;16873:15;16911:4;16836:1;16901:15;16794:2;-1:-1:-1;16940:9:1;;16784:171::o;16960:168::-;17000:7;17066:1;17062;17058:6;17054:14;17051:1;17048:21;17043:1;17036:9;17029:17;17025:45;17022:2;;;17073:18;;:::i;:::-;-1:-1:-1;17113:9:1;;17012:116::o;17133:125::-;17173:4;17201:1;17198;17195:8;17192:2;;;17206:18;;:::i;:::-;-1:-1:-1;17243:9:1;;17182:76::o;17263:380::-;17342:1;17338:12;;;;17385;;;17406:2;;17460:4;17452:6;17448:17;17438:27;;17406:2;17513;17505:6;17502:14;17482:18;17479:38;17476:2;;;17559:10;17554:3;17550:20;17547:1;17540:31;17594:4;17591:1;17584:15;17622:4;17619:1;17612:15;17476:2;;17318:325;;;:::o;17648:135::-;17687:3;-1:-1:-1;;17708:17:1;;17705:2;;;17728:18;;:::i;:::-;-1:-1:-1;17775:1:1;17764:13;;17695:88::o;17788:127::-;17849:10;17844:3;17840:20;17837:1;17830:31;17880:4;17877:1;17870:15;17904:4;17901:1;17894:15;17920:131;-1:-1:-1;;;;;17995:31:1;;17985:42;;17975:2;;18041:1;18038;18031:12;18056:118;18142:5;18135:13;18128:21;18121:5;18118:32;18108:2;;18164:1;18161;18154:12
Swarm Source
ipfs://8dccb18d0a04d65efc1da29d15af9b3e46e69d60a0f4fad9af62a61ce309e8ba
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.