Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 34 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 23466550 | 177 days ago | IN | 0 ETH | 0.00001036 | ||||
| Approve | 21867719 | 401 days ago | IN | 0 ETH | 0.00041924 | ||||
| Approve | 15243738 | 1334 days ago | IN | 0 ETH | 0.0004409 | ||||
| Approve | 15240435 | 1334 days ago | IN | 0 ETH | 0.00050474 | ||||
| Approve | 15240430 | 1334 days ago | IN | 0 ETH | 0.0005688 | ||||
| Approve | 15238824 | 1335 days ago | IN | 0 ETH | 0.00077692 | ||||
| Approve | 15238092 | 1335 days ago | IN | 0 ETH | 0.00114856 | ||||
| Approve | 15238084 | 1335 days ago | IN | 0 ETH | 0.00194456 | ||||
| Approve | 15237913 | 1335 days ago | IN | 0 ETH | 0.00115146 | ||||
| Approve | 15237902 | 1335 days ago | IN | 0 ETH | 0.001159 | ||||
| Approve | 15237775 | 1335 days ago | IN | 0 ETH | 0.00187032 | ||||
| Approve | 15237704 | 1335 days ago | IN | 0 ETH | 0.00107953 | ||||
| Approve | 15237693 | 1335 days ago | IN | 0 ETH | 0.00079746 | ||||
| Approve | 15237687 | 1335 days ago | IN | 0 ETH | 0.00091963 | ||||
| Tax Manual Swap ... | 15237608 | 1335 days ago | IN | 0 ETH | 0.00027597 | ||||
| Approve | 15237546 | 1335 days ago | IN | 0 ETH | 0.00057084 | ||||
| Approve | 15237534 | 1335 days ago | IN | 0 ETH | 0.00054872 | ||||
| Increase Limits | 15237508 | 1335 days ago | IN | 0 ETH | 0.000562 | ||||
| Approve | 15237459 | 1335 days ago | IN | 0 ETH | 0.00071617 | ||||
| Approve | 15237456 | 1335 days ago | IN | 0 ETH | 0.00079987 | ||||
| Approve | 15237441 | 1335 days ago | IN | 0 ETH | 0.00061068 | ||||
| Approve | 15237441 | 1335 days ago | IN | 0 ETH | 0.00061068 | ||||
| Approve | 15237438 | 1335 days ago | IN | 0 ETH | 0.00058747 | ||||
| Approve | 15237436 | 1335 days ago | IN | 0 ETH | 0.00057984 | ||||
| Approve | 15237389 | 1335 days ago | IN | 0 ETH | 0.00077782 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 23466550 | 177 days ago | 0.00051668 ETH | ||||
| Add Liquidity ET... | 23466550 | 177 days ago | 0.00022963 ETH | ||||
| Transfer | 23466550 | 177 days ago | 0.00074632 ETH | ||||
| Transfer | 21867724 | 401 days ago | 0.0010676 ETH | ||||
| Add Liquidity ET... | 21867724 | 401 days ago | 0.00047449 ETH | ||||
| Transfer | 21867724 | 401 days ago | 0.00154209 ETH | ||||
| Transfer | 15267531 | 1330 days ago | 0.00056349 ETH | ||||
| Add Liquidity ET... | 15267531 | 1330 days ago | 0.00025044 ETH | ||||
| Transfer | 15267531 | 1330 days ago | 0.00081393 ETH | ||||
| Transfer | 15258984 | 1332 days ago | 0.00109156 ETH | ||||
| Add Liquidity ET... | 15258984 | 1332 days ago | 0.00048513 ETH | ||||
| Transfer | 15258984 | 1332 days ago | 0.0015767 ETH | ||||
| Transfer | 15243740 | 1334 days ago | 0.00056126 ETH | ||||
| Add Liquidity ET... | 15243740 | 1334 days ago | 0.00024945 ETH | ||||
| Transfer | 15243740 | 1334 days ago | 0.00081072 ETH | ||||
| Transfer | 15242429 | 1334 days ago | 0.00058907 ETH | ||||
| Add Liquidity ET... | 15242429 | 1334 days ago | 0.00026181 ETH | ||||
| Transfer | 15242429 | 1334 days ago | 0.00085088 ETH | ||||
| Transfer | 15240437 | 1334 days ago | 0.00060105 ETH | ||||
| Add Liquidity ET... | 15240437 | 1334 days ago | 0.00026713 ETH | ||||
| Transfer | 15240437 | 1334 days ago | 0.00086818 ETH | ||||
| Transfer | 15240433 | 1334 days ago | 0.00057559 ETH | ||||
| Add Liquidity ET... | 15240433 | 1334 days ago | 0.00025581 ETH | ||||
| Transfer | 15240433 | 1334 days ago | 0.0008314 ETH | ||||
| Transfer | 15238817 | 1335 days ago | 0.00052687 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MadaraInu
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-07-29
*/
/**
MADARA INU ($MINU)
Stealth Launch
The next big inu
Taxes for buy backs
Ownership Renounced
7 Days Liquidity Lock will be extended
Telegram: @MadaraInuERC
Website : http://madarainu.org/
6% burns and 4% will go to the lp
*/
//SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
interface IERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address _owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
abstract contract Auth {
address internal owner;
constructor(address _owner) { owner = _owner; }
modifier onlyOwner() { require(msg.sender == owner, "Only contract owner can call this function"); _; }
function transferOwnership(address payable newOwner) external onlyOwner { owner = newOwner; emit OwnershipTransferred(newOwner); }
event OwnershipTransferred(address owner);
}
interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
function WETH() external pure returns (address);
function factory() external pure returns (address);
function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
contract MadaraInu is IERC20, Auth {
string constant _name = "Madara Inu";
string constant _symbol = "MINU";
uint8 constant _decimals = 9;
uint256 constant _totalSupply = 1_000_000 * 10**_decimals;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
uint256 private _tradingOpenBlock;
mapping (address => bool) private _isLiqPool;
uint16 private _blacklistedWallets = 0;
uint8 private fee_taxRateMaxLimit; uint8 private fee_taxRateBuy; uint8 private fee_taxRateSell; uint8 private fee_taxRateTransfer;
uint16 private fee_sharesAutoLP; uint16 private fee_sharesBurn; uint16 private fee_sharesDevelopment; uint16 private fee_sharesTOTAL;
uint256 private lim_maxTxAmount; uint256 private lim_maxWalletAmount;
uint256 private lim_taxSwapMin; uint256 private lim_taxSwapMax;
address payable private wlt_development;
address private _liquidityPool;
mapping(address => bool) private exm_noFees;
mapping(address => bool) private exm_noLimits;
uint256 private _humanBlock = 0;
mapping (address => bool) private _nonSniper;
mapping (address => uint256) private _blacklistBlock;
bool private _inTaxSwap = false;
address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
address private _wethAddress = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
IUniswapV2Router02 private _uniswapV2Router;
modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; }
event TokensBurned(address burnedFrom, uint256 tokenAmount);
event TaxRatesChanged(uint8 taxRateBuy, uint8 taxRateSell, uint8 taxRateTransfer);
event TaxWalletChanged(address development);
event TaxDistributionChanged(uint16 autoLP, uint16 burn, uint16 development);
event LimitsIncreased(uint256 maxTransaction, uint256 maxWalletSize);
event TaxSwapSettingsChanged(uint256 taxSwapMin, uint256 taxSwapMax);
event WalletExemptionsSet(address wallet, bool noFees, bool noLimits);
constructor() Auth(msg.sender) {
_tradingOpenBlock = type(uint256).max;
fee_taxRateMaxLimit = 8;
lim_maxTxAmount = _totalSupply;
lim_maxWalletAmount = _totalSupply;
lim_taxSwapMin = _totalSupply * 1 / 10000;
lim_taxSwapMax = _totalSupply * 50 / 10000;
fee_sharesAutoLP = 400;
fee_sharesBurn = 600;
fee_sharesDevelopment = 300;
fee_sharesTOTAL = fee_sharesAutoLP + fee_sharesBurn + fee_sharesDevelopment;
_uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);
wlt_development = payable(0x0D9aAc718056C16D8cCd766586B4a663bA969A17);
exm_noFees[owner] = true;
exm_noFees[address(this)] = true;
exm_noFees[_uniswapV2RouterAddress] = true;
exm_noFees[wlt_development] = true;
exm_noLimits[owner] = true;
exm_noLimits[address(this)] = true;
exm_noLimits[_uniswapV2RouterAddress] = true;
exm_noLimits[wlt_development] = true;
_balances[address(this)] = _totalSupply;
emit Transfer(address(0), address(this), _totalSupply);
}
receive() external payable {}
function totalSupply() external pure override returns (uint256) { return _totalSupply; }
function decimals() external pure override returns (uint8) { return _decimals; }
function symbol() external pure override returns (string memory) { return _symbol; }
function name() external pure override returns (string memory) { return _name; }
function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function approve(address spender, uint256 amount) public override returns (bool) {
if ( _humanBlock > block.number && !_nonSniper[msg.sender] ) {
_addBlacklist(msg.sender, block.number, true);
}
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
require(_checkTradingOpen(), "Trading not open");
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
require(_checkTradingOpen(), "Trading not open");
if (_allowances[sender][msg.sender] != type(uint256).max){
_allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
}
return _transferFrom(sender, recipient, amount);
}
function addLP() external onlyOwner {
require(!_tradingOpen(), "trading already open");
require(_liquidityPool == address(0), "LP already added");
_nonSniper[address(this)] = true;
_nonSniper[owner] = true;
_nonSniper[wlt_development] = true;
_wethAddress = _uniswapV2Router.WETH();
_liquidityPool = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _wethAddress);
_isLiqPool[_liquidityPool] = true;
_nonSniper[_liquidityPool] = true;
uint256 _contractETHBalance = address(this).balance;
require(_contractETHBalance >= 0, "no eth");
uint256 _contractTokenBalance = balanceOf(address(this));
require(_contractTokenBalance > 0, "no tokens");
_approveRouter(_contractTokenBalance);
_addLiquidity(_contractTokenBalance, _contractETHBalance, false);
uint256 _blks = 14;
_openTrading(_blks);
}
function _approveRouter(uint256 _tokenAmount) internal {
if ( _allowances[address(this)][_uniswapV2RouterAddress] < _tokenAmount ) {
_allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max;
emit Approval(address(this), _uniswapV2RouterAddress, type(uint256).max);
}
}
function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
address lpTokenRecipient = address(0);
if ( !autoburn ) { lpTokenRecipient = owner; }
_uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
}
function _openTrading(uint256 blks) internal {
lim_maxTxAmount = 100 * _totalSupply / 10000 + 10**_decimals;
lim_maxWalletAmount = 100 * _totalSupply / 10000 + 10**_decimals;
fee_taxRateBuy = 5;
fee_taxRateSell = 8;
fee_taxRateTransfer = 0;
_tradingOpenBlock = block.number + blks;
_humanBlock = _tradingOpenBlock + 9;
}
function tradingOpen() external view returns (bool) {
if (_tradingOpen() && block.number >= _humanBlock + 10) { return _tradingOpen(); }
else { return false; }
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
require(sender!=address(0) && recipient!=address(0), "Zero address not allowed");
if ( _humanBlock > block.number ) {
if ( _blacklistBlock[sender] == 0 ) { _addBlacklist(recipient, block.number, true); }
else { _addBlacklist(recipient, _blacklistBlock[sender], false); }
} else {
if ( _blacklistBlock[sender] != 0 ) { _addBlacklist(recipient, _blacklistBlock[sender], false); }
}
if ( _tradingOpen() && _blacklistBlock[sender] != 0 && _blacklistBlock[sender] < block.number ) { revert("blacklisted"); }
if ( !_inTaxSwap && _isLiqPool[recipient] ) { _swapTaxAndLiquify(); }
if ( sender != address(this) && recipient != address(this) && sender != owner ) { require(_checkLimits(sender, recipient, amount), "TX exceeds limits"); }
uint256 _taxAmount = _calculateTax(sender, recipient, amount);
uint256 _transferAmount = amount - _taxAmount;
_balances[sender] = _balances[sender] - amount;
if ( _taxAmount > 0 ) { _balances[address(this)] = _balances[address(this)] + _taxAmount; }
_balances[recipient] = _balances[recipient] + _transferAmount;
emit Transfer(sender, recipient, amount);
return true;
}
function _addBlacklist(address wallet, uint256 blackBlockNum, bool addSniper) internal {
if ( !_nonSniper[wallet] && _blacklistBlock[wallet] == 0 ) {
_blacklistBlock[wallet] = blackBlockNum;
if ( addSniper) { _blacklistedWallets ++; }
}
}
function _checkLimits(address sender, address recipient, uint256 transferAmount) internal view returns (bool) {
bool limitCheckPassed = true;
if ( _tradingOpen() && !exm_noLimits[recipient] && !exm_noLimits[sender] ) {
if ( transferAmount > lim_maxTxAmount ) { limitCheckPassed = false; }
else if ( !_isLiqPool[recipient] && (_balances[recipient] + transferAmount > lim_maxWalletAmount) ) { limitCheckPassed = false; }
}
return limitCheckPassed;
}
function _tradingOpen() private view returns (bool) {
bool result = false;
if (block.number >= _tradingOpenBlock) { result = true; }
return result;
}
function _checkTradingOpen() private view returns (bool){
bool checkResult = false;
if ( _tradingOpen() ) { checkResult = true; }
else if ( tx.origin == owner ) { checkResult = true; }
return checkResult;
}
function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
uint256 taxAmount;
if ( !_tradingOpen() || exm_noFees[sender] || exm_noFees[recipient] ) { taxAmount = 0; }
else if ( _isLiqPool[sender] ) { taxAmount = amount * fee_taxRateBuy / 100; }
else if ( _isLiqPool[recipient] ) { taxAmount = amount * fee_taxRateSell / 100; }
else { taxAmount = amount * fee_taxRateTransfer / 100; }
return taxAmount;
}
function getBlacklistStatus(address wallet) external view returns(bool isBlacklisted, uint256 blacklistBlock, uint16 totalBlacklistedWallets) {
bool _isBlacklisted;
if ( _blacklistBlock[wallet] != 0 ) { _isBlacklisted = true; }
return ( _isBlacklisted, _blacklistBlock[wallet], _blacklistedWallets);
}
function getExemptions(address wallet) external view returns(bool noFees, bool noLimits) {
return (exm_noFees[wallet], exm_noLimits[wallet]);
}
function setExemptions(address wallet, bool noFees, bool noLimits) external onlyOwner {
exm_noFees[wallet] = noFees;
exm_noLimits[wallet] = noLimits;
emit WalletExemptionsSet(wallet, noFees, noLimits);
}
function getFeeSettings() external view returns(uint8 taxRateMaxLimit, uint8 taxRateBuy, uint8 taxRateSell, uint8 taxRateTransfer, uint16 sharesAutoLP, uint16 sharesBurn, uint16 sharesDevelopment ) {
return (fee_taxRateMaxLimit, fee_taxRateBuy, fee_taxRateSell, fee_taxRateTransfer, fee_sharesAutoLP, fee_sharesBurn, fee_sharesDevelopment);
}
function setTaxRates(uint8 newBuyTax, uint8 newSellTax, uint8 newTxTax) external onlyOwner {
require(newBuyTax+newSellTax <= 2*fee_taxRateMaxLimit, "Avg tax too high");
require(newTxTax <= fee_taxRateMaxLimit, "Tax too high");
fee_taxRateBuy = newBuyTax;
fee_taxRateSell = newSellTax;
fee_taxRateTransfer = newTxTax;
emit TaxRatesChanged(newBuyTax, newSellTax, newTxTax);
}
function setTaxDistribution(uint16 sharesAutoLP, uint16 sharesBurn, uint16 sharesDevelopment) external onlyOwner {
fee_sharesAutoLP = sharesAutoLP;
fee_sharesBurn = sharesBurn;
fee_sharesDevelopment = sharesDevelopment;
fee_sharesTOTAL = fee_sharesAutoLP + fee_sharesBurn + fee_sharesDevelopment;
emit TaxDistributionChanged(sharesAutoLP, sharesBurn, sharesDevelopment);
}
function getWallets() external view returns(address contractOwner, address liquidityPool, address development) {
return (owner, _liquidityPool, wlt_development);
}
function setTaxWallets(address newDevelopmentWallet) external onlyOwner {
wlt_development = payable(newDevelopmentWallet);
exm_noFees[newDevelopmentWallet] = true;
exm_noLimits[newDevelopmentWallet] = true;
emit TaxWalletChanged(newDevelopmentWallet);
}
function getLimits() external view returns(uint256 maxTxAmount, uint256 maxWalletAmount, uint256 taxSwapMin, uint256 taxSwapMax) {
return (lim_maxTxAmount, lim_maxWalletAmount, lim_taxSwapMin, lim_taxSwapMax);
}
function increaseLimits(uint16 maxTxAmtPermile, uint16 maxWalletAmtPermile) external onlyOwner {
uint256 newTxAmt = _totalSupply * maxTxAmtPermile / 1000 + 1;
require(newTxAmt >= lim_maxTxAmount, "tx limit too low");
lim_maxTxAmount = newTxAmt;
uint256 newWalletAmt = _totalSupply * maxWalletAmtPermile / 1000 + 1;
require(newWalletAmt >= lim_maxWalletAmount, "wallet limit too low");
lim_maxWalletAmount = newWalletAmt;
emit LimitsIncreased(lim_maxTxAmount, lim_maxWalletAmount);
}
function setTaxSwapLimits(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner {
lim_taxSwapMin = _totalSupply * minValue / minDivider;
lim_taxSwapMax = _totalSupply * maxValue / maxDivider;
require(lim_taxSwapMax > lim_taxSwapMin);
emit TaxSwapSettingsChanged(lim_taxSwapMin, lim_taxSwapMax);
}
function _burnTokens(uint256 amount, address burnedFrom) private {
if ( amount > 0 ) {
_balances[burnedFrom] -= amount;
_balances[address(0)] += amount;
emit Transfer(burnedFrom, address(0), amount);
emit TokensBurned(burnedFrom, amount);
}
}
function _swapTaxAndLiquify() private lockTaxSwap {
uint256 _taxTokensAvailable = balanceOf(address(this));
if ( _taxTokensAvailable >= lim_taxSwapMin && _tradingOpen() ) {
if ( _taxTokensAvailable >= lim_taxSwapMax ) { _taxTokensAvailable = lim_taxSwapMax; }
uint256 _tokensForLP = _taxTokensAvailable * fee_sharesAutoLP / fee_sharesTOTAL / 2;
uint256 _tokensToBurn = _taxTokensAvailable * fee_sharesBurn / fee_sharesTOTAL;
_burnTokens(_tokensToBurn, address(this));
uint256 _tokensToSwap = _taxTokensAvailable - _tokensToBurn - _tokensForLP;
if (_tokensToSwap >= 10**_decimals) {
uint256 _ethPreSwap = address(this).balance;
_swapTaxTokensForEth(_tokensToSwap);
uint256 _ethSwapped = address(this).balance - _ethPreSwap;
if ( fee_sharesAutoLP > 0 ) {
uint256 _ethWeiAmount = _ethSwapped * fee_sharesAutoLP / fee_sharesTOTAL ;
_approveRouter(_tokensForLP);
_addLiquidity(_tokensForLP, _ethWeiAmount, false);
}
}
uint256 _contractETHBalance = address(this).balance;
if (_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
}
}
function _swapTaxTokensForEth(uint256 _tokenAmount) private {
_approveRouter(_tokenAmount);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = _wethAddress;
_uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp);
}
function _distributeTaxEth(uint256 _amount) private {
if ( fee_sharesDevelopment > 0 ) { wlt_development.transfer(_amount); }
}
function taxManualSwapSend(bool swapTokens, bool sendEth) external onlyOwner {
if (swapTokens) {
uint256 taxTokenBalance = balanceOf(address(this));
require(taxTokenBalance > 0, "No tokens");
_swapTaxTokensForEth(taxTokenBalance);
}
if (sendEth) {
_distributeTaxEth(address(this).balance);
}
}
function burnTokens(uint256 amount) external {
uint256 _tokensAvailable = balanceOf(msg.sender);
require(amount <= _tokensAvailable, "Token balance too low");
_burnTokens(amount, msg.sender);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTransaction","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"LimitsIncreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"autoLP","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"burn","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"development","type":"uint16"}],"name":"TaxDistributionChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"taxRateBuy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"taxRateSell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"taxRateTransfer","type":"uint8"}],"name":"TaxRatesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"taxSwapMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"taxSwapMax","type":"uint256"}],"name":"TaxSwapSettingsChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"development","type":"address"}],"name":"TaxWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"burnedFrom","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"noFees","type":"bool"},{"indexed":false,"internalType":"bool","name":"noLimits","type":"bool"}],"name":"WalletExemptionsSet","type":"event"},{"inputs":[],"name":"addLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getBlacklistStatus","outputs":[{"internalType":"bool","name":"isBlacklisted","type":"bool"},{"internalType":"uint256","name":"blacklistBlock","type":"uint256"},{"internalType":"uint16","name":"totalBlacklistedWallets","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getExemptions","outputs":[{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeSettings","outputs":[{"internalType":"uint8","name":"taxRateMaxLimit","type":"uint8"},{"internalType":"uint8","name":"taxRateBuy","type":"uint8"},{"internalType":"uint8","name":"taxRateSell","type":"uint8"},{"internalType":"uint8","name":"taxRateTransfer","type":"uint8"},{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesBurn","type":"uint16"},{"internalType":"uint16","name":"sharesDevelopment","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLimits","outputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"},{"internalType":"uint256","name":"taxSwapMin","type":"uint256"},{"internalType":"uint256","name":"taxSwapMax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallets","outputs":[{"internalType":"address","name":"contractOwner","type":"address"},{"internalType":"address","name":"liquidityPool","type":"address"},{"internalType":"address","name":"development","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxAmtPermile","type":"uint16"},{"internalType":"uint16","name":"maxWalletAmtPermile","type":"uint16"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExemptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesBurn","type":"uint16"},{"internalType":"uint16","name":"sharesDevelopment","type":"uint16"}],"name":"setTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newBuyTax","type":"uint8"},{"internalType":"uint8","name":"newSellTax","type":"uint8"},{"internalType":"uint8","name":"newTxTax","type":"uint8"}],"name":"setTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"setTaxSwapLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevelopmentWallet","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"swapTokens","type":"bool"},{"internalType":"bool","name":"sendEth","type":"bool"}],"name":"taxManualSwapSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526005805461ffff191690556000600e55601180546001600160a81b03191674c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2001790553480156200004857600080fd5b50600080546001600160a01b03191633179055600019600355600580546208000062ff000019909116179055620000826009600a62000475565b6200009190620f42406200048d565b600655620000a26009600a62000475565b620000b190620f42406200048d565b600755612710620000c56009600a62000475565b620000d490620f42406200048d565b620000e19060016200048d565b620000ed9190620004af565b600855612710620001016009600a62000475565b6200011090620f42406200048d565b6200011d9060326200048d565b620001299190620004af565b6009556005805465ffffffffffff60301b19166b012c02580190000000000000179081905561ffff6a0100000000000000000000820481169162000187916801000000000000000082048116916601000000000000900416620004d2565b620001939190620004d2565b6005805461ffff929092166c010000000000000000000000000261ffff60601b19909216919091179055601280546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155600a8054909116730d9aac718056c16d8ccd766586b4a663ba969a17178155600080546001600160a01b039081168252600c60209081526040808420805460ff1990811660019081179092553080875283872080548316841790557f0ec9aca9afadc09fc0bd96ec7d7d6cfbb5408a5bc5bcf87bc0656b65508e559a80548316841790558754861687528387208054831684179055865486168752600d909452828620805482168317905592855281852080548416821790557fe491d3ddab46a3ddc2b907c015f7e2686859fac31a4f174b9b79a82620b0324e8054841682179055855490931684529092208054909216179055620002e89060099062000475565b620002f790620f42406200048d565b30600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200033a6009600a62000475565b6200034990620f42406200048d565b60405190815260200160405180910390a3620004fb565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003b75781600019048211156200039b576200039b62000360565b80851615620003a957918102915b93841c93908002906200037b565b509250929050565b600082620003d0575060016200046f565b81620003df575060006200046f565b8160018114620003f85760028114620004035762000423565b60019150506200046f565b60ff84111562000417576200041762000360565b50506001821b6200046f565b5060208310610133831016604e8410600b841016171562000448575081810a6200046f565b62000454838362000376565b80600019048211156200046b576200046b62000360565b0290505b92915050565b60006200048660ff841683620003bf565b9392505050565b6000816000190483118215151615620004aa57620004aa62000360565b500290565b600082620004cd57634e487b7160e01b600052601260045260246000fd5b500490565b600061ffff808316818516808303821115620004f257620004f262000360565b01949350505050565b6125e1806200050b6000396000f3fe60806040526004361061016a5760003560e01c80638c194bd9116100d1578063d01dc84b1161008a578063de1a356c11610064578063de1a356c1461058c578063e4dbc45b146105ac578063f2fde38b146105cc578063ffb54a99146105ec57600080fd5b8063d01dc84b146104e6578063db7a460514610506578063dd62ed3e1461054657600080fd5b80638c194bd9146103e3578063931b68ea1461040357806395d89b4114610464578063a9059cbb14610491578063b1421803146104b1578063bc37e1a3146104d157600080fd5b80632b38400e116101235780632b38400e14610270578063313ce567146102f757806358d2b4a5146103135780636d1b229d146103545780636f89e4091461037457806370a08231146103ad57600080fd5b806306fdde0314610176578063095ea7b3146101bb57806309ef509f146101eb57806318160ddd1461020d57806318839bc31461023057806323b872dd1461025057600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152600a8152694d616461726120496e7560b01b60208201525b6040516101b29190611f92565b60405180910390f35b3480156101c757600080fd5b506101db6101d6366004611ffc565b610601565b60405190151581526020016101b2565b3480156101f757600080fd5b5061020b610206366004612039565b61069a565b005b34801561021957600080fd5b50610222610818565b6040519081526020016101b2565b34801561023c57600080fd5b5061020b61024b36600461208c565b610838565b34801561025c57600080fd5b506101db61026b3660046120c8565b6108d9565b34801561027c57600080fd5b506005546040805160ff6201000084048116825263010000008404811660208301526401000000008404811692820192909252650100000000008304909116606082015261ffff600160301b830481166080830152600160401b8304811660a0830152600160501b90920490911660c082015260e0016101b2565b34801561030357600080fd5b50604051600981526020016101b2565b34801561031f57600080fd5b5061033361032e366004612109565b6109b5565b604080519315158452602084019290925261ffff16908201526060016101b2565b34801561036057600080fd5b5061020b61036f366004612126565b610a0a565b34801561038057600080fd5b506006546007546008546009546040805194855260208501939093529183015260608201526080016101b2565b3480156103b957600080fd5b506102226103c8366004612109565b6001600160a01b031660009081526001602052604090205490565b3480156103ef57600080fd5b5061020b6103fe36600461213f565b610a70565b34801561040f57600080fd5b5061044d61041e366004612109565b6001600160a01b03166000908152600c6020908152604080832054600d9092529091205460ff91821692911690565b6040805192151583529015156020830152016101b2565b34801561047057600080fd5b506040805180820190915260048152634d494e5560e01b60208201526101a5565b34801561049d57600080fd5b506101db6104ac366004611ffc565b610b03565b3480156104bd57600080fd5b5061020b6104cc366004612184565b610b5e565b3480156104dd57600080fd5b5061020b610ceb565b3480156104f257600080fd5b5061020b610501366004612109565b61101f565b34801561051257600080fd5b50600054600b54600a54604080516001600160a01b03948516815292841660208401529216918101919091526060016101b2565b34801561055257600080fd5b506102226105613660046121ae565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561059857600080fd5b5061020b6105a73660046121e7565b6110cc565b3480156105b857600080fd5b5061020b6105c7366004612235565b6111cb565b3480156105d857600080fd5b5061020b6105e7366004612109565b6112b8565b3480156105f857600080fd5b506101db611330565b600043600e541180156106245750336000908152600f602052604090205460ff16155b156106355761063533436001611366565b3360008181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6000546001600160a01b031633146106cd5760405162461bcd60e51b81526004016106c490612289565b60405180910390fd5b6005546106e49062010000900460ff1660026122e9565b60ff166106f18385612312565b60ff1611156107355760405162461bcd60e51b815260206004820152601060248201526f082ecce40e8c2f040e8dede40d0d2ced60831b60448201526064016106c4565b60055460ff62010000909104811690821611156107835760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b60448201526064016106c4565b6005805464ffff0000001916630100000060ff86811691820264ff000000001916929092176401000000008684169081029190911765ff000000000019166501000000000093861693840217909355604080519182526020820193909352918201527f3936da96a2d6c0884221e809bd19e72c2f0ac9e9d7e63d75e371a66e8f71144a906060015b60405180910390a1505050565b60006108266009600a612413565b61083390620f4240612422565b905090565b6000546001600160a01b031633146108625760405162461bcd60e51b81526004016106c490612289565b6001600160a01b0383166000818152600c60209081526040808320805487151560ff199182168117909255600d84529382902080548715159516851790558151948552918401919091528201527fd1210f82d8da3a4173d7d74f8a9f5c81b8f83b77529ac2684baff199241f4ed09060600161080b565b60006108e36113ff565b6109225760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016106c4565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146109a2576001600160a01b038416600090815260026020908152604080832033845290915290205461097d908390612441565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6109ad848484611432565b949350505050565b6001600160a01b038116600090815260106020526040812054819081908190156109dd575060015b6001600160a01b03949094166000908152601060205260409020546005549495909461ffff169350915050565b3360009081526001602052604090205480821115610a625760405162461bcd60e51b8152602060048201526015602482015274546f6b656e2062616c616e636520746f6f206c6f7760581b60448201526064016106c4565b610a6c82336117a8565b5050565b6000546001600160a01b03163314610a9a5760405162461bcd60e51b81526004016106c490612289565b8115610af4573060009081526001602052604090205480610ae95760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b60448201526064016106c4565b610af2816118a2565b505b8015610a6c57610a6c47611994565b6000610b0d6113ff565b610b4c5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016106c4565b610b57338484611432565b9392505050565b6000546001600160a01b03163314610b885760405162461bcd60e51b81526004016106c490612289565b60006103e861ffff8416610b9e6009600a612413565b610bab90620f4240612422565b610bb59190612422565b610bbf9190612458565b610bca90600161247a565b9050600654811015610c115760405162461bcd60e51b815260206004820152601060248201526f7478206c696d697420746f6f206c6f7760801b60448201526064016106c4565b600681905560006103e861ffff8416610c2c6009600a612413565b610c3990620f4240612422565b610c439190612422565b610c4d9190612458565b610c5890600161247a565b9050600754811015610ca35760405162461bcd60e51b815260206004820152601460248201527377616c6c6574206c696d697420746f6f206c6f7760601b60448201526064016106c4565b600781905560065460408051918252602082018390527f72c1c0546833bfc2a43408333cd18ef1d9c882e9d46f89002a3fd40bceffe5f791015b60405180910390a150505050565b6000546001600160a01b03163314610d155760405162461bcd60e51b81526004016106c490612289565b610d1d6119e4565b15610d615760405162461bcd60e51b81526020600482015260146024820152733a3930b234b7339030b63932b0b23c9037b832b760611b60448201526064016106c4565b600b546001600160a01b031615610dad5760405162461bcd60e51b815260206004820152601060248201526f131408185b1c9958591e48185919195960821b60448201526064016106c4565b306000908152600f602090815260408083208054600160ff19918216811790925584546001600160a01b0390811686528386208054831684179055600a5481168652948390208054909116909117905560125481516315ab88c960e31b8152915193169263ad5c4648926004808401939192918290030181865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d9190612492565b60118054610100600160a81b0319166101006001600160a01b03938416021790556012546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015610ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190612492565b6011546040516364e329cb60e11b81523060048201526001600160a01b036101009092048216602482015291169063c9c65396906044016020604051808303816000875af1158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190612492565b600b80546001600160a01b0319166001600160a01b0392831690811782556000908152600460209081526040808320805460ff19908116600190811790925594549095168352600f82528083208054909416851790935530825292909252902054479080610ffa5760405162461bcd60e51b81526020600482015260096024820152686e6f20746f6b656e7360b81b60448201526064016106c4565b611003816119fa565b61100f81836000611a9e565b600e61101a81611b4f565b505050565b6000546001600160a01b031633146110495760405162461bcd60e51b81526004016106c490612289565b600a80546001600160a01b0319166001600160a01b0383169081179091556000818152600c60209081526040808320805460ff199081166001908117909255600d84529382902080549094161790925590519182527ea263b61aab5ebdcff20c4c0c74c2589ea5ab52149abde19eca17ad5221789991015b60405180910390a150565b6000546001600160a01b031633146110f65760405162461bcd60e51b81526004016106c490612289565b6005805469ffffffff0000000000001916600160301b61ffff868116820269ffff0000000000000000191692909217600160401b86841681029190911761ffff60501b1916600160501b868516810291909117948590558404831693611164939181048216929004166124af565b61116e91906124af565b6005805461ffff60601b1916600160601b61ffff938416021790556040805185831681528483166020820152918316908201527f09d1c6e0dc7290333e3eb301ba9b06f7ec15ce885a8a1efc702befd956c1bd939060600161080b565b6000546001600160a01b031633146111f55760405162461bcd60e51b81526004016106c490612289565b63ffffffff80841690851661120c6009600a612413565b61121990620f4240612422565b6112239190612422565b61122d9190612458565b60085563ffffffff8082169083166112476009600a612413565b61125490620f4240612422565b61125e9190612422565b6112689190612458565b60098190556008541061127a57600080fd5b7f325d25781eb858cfe3b3ede984fc8a66dd8e8be0b4a349189e05d0a35e6803bb600854600954604051610cdd929190918252602082015260400190565b6000546001600160a01b031633146112e25760405162461bcd60e51b81526004016106c490612289565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163906020016110c1565b600061133a6119e4565b80156113535750600e5461134f90600a61247a565b4310155b15611360576108336119e4565b50600090565b6001600160a01b0383166000908152600f602052604090205460ff161580156113a557506001600160a01b038316600090815260106020526040902054155b1561101a576001600160a01b0383166000908152601060205260409020829055801561101a576005805461ffff169060006113df836124d5565b91906101000a81548161ffff021916908361ffff16021790555050505050565b60008061140a6119e4565b1561141757506001919050565b6000546001600160a01b0316320361142d575060015b919050565b60006001600160a01b0384161580159061145457506001600160a01b03831615155b6114a05760405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f776564000000000000000060448201526064016106c4565b43600e5411156114ff576001600160a01b03841660009081526010602052604081205490036114da576114d583436001611366565b611542565b6001600160a01b0384166000908152601060205260408120546114d591859190611366565b6001600160a01b03841660009081526010602052604090205415611542576001600160a01b03841660009081526010602052604081205461154291859190611366565b61154a6119e4565b801561156d57506001600160a01b03841660009081526010602052604090205415155b801561159057506001600160a01b03841660009081526010602052604090205443115b156115cb5760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016106c4565b60115460ff161580156115f657506001600160a01b03831660009081526004602052604090205460ff165b1561160357611603611c19565b6001600160a01b038416301480159061162557506001600160a01b0383163014155b801561163f57506000546001600160a01b03858116911614155b1561168f5761164f848484611db2565b61168f5760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b60448201526064016106c4565b600061169c858585611e7c565b905060006116aa8285612441565b6001600160a01b0387166000908152600160205260409020549091506116d1908590612441565b6001600160a01b038716600090815260016020526040902055811561171c573060009081526001602052604090205461170b90839061247a565b306000908152600160205260409020555b6001600160a01b03851660009081526001602052604090205461174090829061247a565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117949088815260200190565b60405180910390a350600195945050505050565b8115610a6c576001600160a01b038116600090815260016020526040812080548492906117d6908490612441565b9091555050600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49805484929061181690849061247a565b90915550506040518281526000906001600160a01b038316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604080516001600160a01b0383168152602081018490527ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6910160405180910390a15050565b6118ab816119fa565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118e0576118e06124f6565b6001600160a01b03928316602091820292909201015260115482516101009091049091169082906001908110611918576119186124f6565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac9479061195e90859060009086903090429060040161250c565b600060405180830381600087803b15801561197857600080fd5b505af115801561198c573d6000803e3d6000fd5b505050505050565b600554600160501b900461ffff16156119e157600a546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a6c573d6000803e3d6000fd5b50565b6003546000908190431061142d57506001919050565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156119e157306000818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190206000199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350565b600081611ab357506000546001600160a01b03165b60125460405163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990859060c40160606040518083038185885af1158015611b21573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b46919061257d565b50505050505050565b611b5b6009600a612413565b612710611b6a6009600a612413565b611b7790620f4240612422565b611b82906064612422565b611b8c9190612458565b611b96919061247a565b600655611ba56009600a612413565b612710611bb46009600a612413565b611bc190620f4240612422565b611bcc906064612422565b611bd69190612458565b611be0919061247a565b6007556005805465ffffff0000001916640805000000179055611c03814361247a565b6003819055611c1390600961247a565b600e5550565b6011805460ff191660011790556000611c47306001600160a01b031660009081526001602052604090205490565b90506008548110158015611c5e5750611c5e6119e4565b15611da5576009548110611c7157506009545b60055460009060029061ffff600160601b8204811691611c9a91600160301b9091041685612422565b611ca49190612458565b611cae9190612458565b60055490915060009061ffff600160601b8204811691611cd791600160401b9091041685612422565b611ce19190612458565b9050611ced81306117a8565b600082611cfa8386612441565b611d049190612441565b9050611d126009600a612413565b8110611d905747611d22826118a2565b6000611d2e8247612441565b600554909150600160301b900461ffff1615611d8d5760055460009061ffff600160601b8204811691611d6a91600160301b9091041684612422565b611d749190612458565b9050611d7f866119fa565b611d8b86826000611a9e565b505b50505b478015611da057611da081611994565b505050505b506011805460ff19169055565b60006001611dbe6119e4565b8015611de357506001600160a01b0384166000908152600d602052604090205460ff16155b8015611e0857506001600160a01b0385166000908152600d602052604090205460ff16155b156109ad57600654831115611e1f575060006109ad565b6001600160a01b03841660009081526004602052604090205460ff16158015611e6c57506007546001600160a01b038516600090815260016020526040902054611e6a90859061247a565b115b156109ad57506000949350505050565b600080611e876119e4565b1580611eab57506001600160a01b0385166000908152600c602052604090205460ff165b80611ece57506001600160a01b0384166000908152600c602052604090205460ff165b15611edb575060006109ad565b6001600160a01b03851660009081526004602052604090205460ff1615611f2757600554606490611f16906301000000900460ff1685612422565b611f209190612458565b90506109ad565b6001600160a01b03841660009081526004602052604090205460ff1615611f6357600554606490611f1690640100000000900460ff1685612422565b600554606490611f7f9065010000000000900460ff1685612422565b611f899190612458565b95945050505050565b600060208083528351808285015260005b81811015611fbf57858101830151858201604001528201611fa3565b81811115611fd1576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146119e157600080fd5b6000806040838503121561200f57600080fd5b823561201a81611fe7565b946020939093013593505050565b803560ff8116811461142d57600080fd5b60008060006060848603121561204e57600080fd5b61205784612028565b925061206560208501612028565b915061207360408501612028565b90509250925092565b8035801515811461142d57600080fd5b6000806000606084860312156120a157600080fd5b83356120ac81611fe7565b92506120ba6020850161207c565b91506120736040850161207c565b6000806000606084860312156120dd57600080fd5b83356120e881611fe7565b925060208401356120f881611fe7565b929592945050506040919091013590565b60006020828403121561211b57600080fd5b8135610b5781611fe7565b60006020828403121561213857600080fd5b5035919050565b6000806040838503121561215257600080fd5b61215b8361207c565b91506121696020840161207c565b90509250929050565b803561ffff8116811461142d57600080fd5b6000806040838503121561219757600080fd5b6121a083612172565b915061216960208401612172565b600080604083850312156121c157600080fd5b82356121cc81611fe7565b915060208301356121dc81611fe7565b809150509250929050565b6000806000606084860312156121fc57600080fd5b61220584612172565b925061221360208501612172565b915061207360408501612172565b803563ffffffff8116811461142d57600080fd5b6000806000806080858703121561224b57600080fd5b61225485612221565b935061226260208601612221565b925061227060408601612221565b915061227e60608601612221565b905092959194509250565b6020808252602a908201527f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c207468696040820152693990333ab731ba34b7b760b11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168160ff048111821515161561230a5761230a6122d3565b029392505050565b600060ff821660ff84168060ff0382111561232f5761232f6122d3565b019392505050565b600181815b80851115612372578160001904821115612358576123586122d3565b8085161561236557918102915b93841c939080029061233c565b509250929050565b60008261238957506001610694565b8161239657506000610694565b81600181146123ac57600281146123b6576123d2565b6001915050610694565b60ff8411156123c7576123c76122d3565b50506001821b610694565b5060208310610133831016604e8410600b84101617156123f5575081810a610694565b6123ff8383612337565b806000190482111561230a5761230a6122d3565b6000610b5760ff84168361237a565b600081600019048311821515161561243c5761243c6122d3565b500290565b600082821015612453576124536122d3565b500390565b60008261247557634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561248d5761248d6122d3565b500190565b6000602082840312156124a457600080fd5b8151610b5781611fe7565b600061ffff8083168185168083038211156124cc576124cc6122d3565b01949350505050565b600061ffff8083168181036124ec576124ec6122d3565b6001019392505050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561255c5784516001600160a01b031683529383019391830191600101612537565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561259257600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220798c6ebfc5ece0695f91430edb722b95b44c3b1e6f5be61e37f6713fbb67ef6064736f6c634300080f0033
Deployed Bytecode
0x60806040526004361061016a5760003560e01c80638c194bd9116100d1578063d01dc84b1161008a578063de1a356c11610064578063de1a356c1461058c578063e4dbc45b146105ac578063f2fde38b146105cc578063ffb54a99146105ec57600080fd5b8063d01dc84b146104e6578063db7a460514610506578063dd62ed3e1461054657600080fd5b80638c194bd9146103e3578063931b68ea1461040357806395d89b4114610464578063a9059cbb14610491578063b1421803146104b1578063bc37e1a3146104d157600080fd5b80632b38400e116101235780632b38400e14610270578063313ce567146102f757806358d2b4a5146103135780636d1b229d146103545780636f89e4091461037457806370a08231146103ad57600080fd5b806306fdde0314610176578063095ea7b3146101bb57806309ef509f146101eb57806318160ddd1461020d57806318839bc31461023057806323b872dd1461025057600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152600a8152694d616461726120496e7560b01b60208201525b6040516101b29190611f92565b60405180910390f35b3480156101c757600080fd5b506101db6101d6366004611ffc565b610601565b60405190151581526020016101b2565b3480156101f757600080fd5b5061020b610206366004612039565b61069a565b005b34801561021957600080fd5b50610222610818565b6040519081526020016101b2565b34801561023c57600080fd5b5061020b61024b36600461208c565b610838565b34801561025c57600080fd5b506101db61026b3660046120c8565b6108d9565b34801561027c57600080fd5b506005546040805160ff6201000084048116825263010000008404811660208301526401000000008404811692820192909252650100000000008304909116606082015261ffff600160301b830481166080830152600160401b8304811660a0830152600160501b90920490911660c082015260e0016101b2565b34801561030357600080fd5b50604051600981526020016101b2565b34801561031f57600080fd5b5061033361032e366004612109565b6109b5565b604080519315158452602084019290925261ffff16908201526060016101b2565b34801561036057600080fd5b5061020b61036f366004612126565b610a0a565b34801561038057600080fd5b506006546007546008546009546040805194855260208501939093529183015260608201526080016101b2565b3480156103b957600080fd5b506102226103c8366004612109565b6001600160a01b031660009081526001602052604090205490565b3480156103ef57600080fd5b5061020b6103fe36600461213f565b610a70565b34801561040f57600080fd5b5061044d61041e366004612109565b6001600160a01b03166000908152600c6020908152604080832054600d9092529091205460ff91821692911690565b6040805192151583529015156020830152016101b2565b34801561047057600080fd5b506040805180820190915260048152634d494e5560e01b60208201526101a5565b34801561049d57600080fd5b506101db6104ac366004611ffc565b610b03565b3480156104bd57600080fd5b5061020b6104cc366004612184565b610b5e565b3480156104dd57600080fd5b5061020b610ceb565b3480156104f257600080fd5b5061020b610501366004612109565b61101f565b34801561051257600080fd5b50600054600b54600a54604080516001600160a01b03948516815292841660208401529216918101919091526060016101b2565b34801561055257600080fd5b506102226105613660046121ae565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561059857600080fd5b5061020b6105a73660046121e7565b6110cc565b3480156105b857600080fd5b5061020b6105c7366004612235565b6111cb565b3480156105d857600080fd5b5061020b6105e7366004612109565b6112b8565b3480156105f857600080fd5b506101db611330565b600043600e541180156106245750336000908152600f602052604090205460ff16155b156106355761063533436001611366565b3360008181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6000546001600160a01b031633146106cd5760405162461bcd60e51b81526004016106c490612289565b60405180910390fd5b6005546106e49062010000900460ff1660026122e9565b60ff166106f18385612312565b60ff1611156107355760405162461bcd60e51b815260206004820152601060248201526f082ecce40e8c2f040e8dede40d0d2ced60831b60448201526064016106c4565b60055460ff62010000909104811690821611156107835760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b60448201526064016106c4565b6005805464ffff0000001916630100000060ff86811691820264ff000000001916929092176401000000008684169081029190911765ff000000000019166501000000000093861693840217909355604080519182526020820193909352918201527f3936da96a2d6c0884221e809bd19e72c2f0ac9e9d7e63d75e371a66e8f71144a906060015b60405180910390a1505050565b60006108266009600a612413565b61083390620f4240612422565b905090565b6000546001600160a01b031633146108625760405162461bcd60e51b81526004016106c490612289565b6001600160a01b0383166000818152600c60209081526040808320805487151560ff199182168117909255600d84529382902080548715159516851790558151948552918401919091528201527fd1210f82d8da3a4173d7d74f8a9f5c81b8f83b77529ac2684baff199241f4ed09060600161080b565b60006108e36113ff565b6109225760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016106c4565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146109a2576001600160a01b038416600090815260026020908152604080832033845290915290205461097d908390612441565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6109ad848484611432565b949350505050565b6001600160a01b038116600090815260106020526040812054819081908190156109dd575060015b6001600160a01b03949094166000908152601060205260409020546005549495909461ffff169350915050565b3360009081526001602052604090205480821115610a625760405162461bcd60e51b8152602060048201526015602482015274546f6b656e2062616c616e636520746f6f206c6f7760581b60448201526064016106c4565b610a6c82336117a8565b5050565b6000546001600160a01b03163314610a9a5760405162461bcd60e51b81526004016106c490612289565b8115610af4573060009081526001602052604090205480610ae95760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b60448201526064016106c4565b610af2816118a2565b505b8015610a6c57610a6c47611994565b6000610b0d6113ff565b610b4c5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016106c4565b610b57338484611432565b9392505050565b6000546001600160a01b03163314610b885760405162461bcd60e51b81526004016106c490612289565b60006103e861ffff8416610b9e6009600a612413565b610bab90620f4240612422565b610bb59190612422565b610bbf9190612458565b610bca90600161247a565b9050600654811015610c115760405162461bcd60e51b815260206004820152601060248201526f7478206c696d697420746f6f206c6f7760801b60448201526064016106c4565b600681905560006103e861ffff8416610c2c6009600a612413565b610c3990620f4240612422565b610c439190612422565b610c4d9190612458565b610c5890600161247a565b9050600754811015610ca35760405162461bcd60e51b815260206004820152601460248201527377616c6c6574206c696d697420746f6f206c6f7760601b60448201526064016106c4565b600781905560065460408051918252602082018390527f72c1c0546833bfc2a43408333cd18ef1d9c882e9d46f89002a3fd40bceffe5f791015b60405180910390a150505050565b6000546001600160a01b03163314610d155760405162461bcd60e51b81526004016106c490612289565b610d1d6119e4565b15610d615760405162461bcd60e51b81526020600482015260146024820152733a3930b234b7339030b63932b0b23c9037b832b760611b60448201526064016106c4565b600b546001600160a01b031615610dad5760405162461bcd60e51b815260206004820152601060248201526f131408185b1c9958591e48185919195960821b60448201526064016106c4565b306000908152600f602090815260408083208054600160ff19918216811790925584546001600160a01b0390811686528386208054831684179055600a5481168652948390208054909116909117905560125481516315ab88c960e31b8152915193169263ad5c4648926004808401939192918290030181865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d9190612492565b60118054610100600160a81b0319166101006001600160a01b03938416021790556012546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015610ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190612492565b6011546040516364e329cb60e11b81523060048201526001600160a01b036101009092048216602482015291169063c9c65396906044016020604051808303816000875af1158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190612492565b600b80546001600160a01b0319166001600160a01b0392831690811782556000908152600460209081526040808320805460ff19908116600190811790925594549095168352600f82528083208054909416851790935530825292909252902054479080610ffa5760405162461bcd60e51b81526020600482015260096024820152686e6f20746f6b656e7360b81b60448201526064016106c4565b611003816119fa565b61100f81836000611a9e565b600e61101a81611b4f565b505050565b6000546001600160a01b031633146110495760405162461bcd60e51b81526004016106c490612289565b600a80546001600160a01b0319166001600160a01b0383169081179091556000818152600c60209081526040808320805460ff199081166001908117909255600d84529382902080549094161790925590519182527ea263b61aab5ebdcff20c4c0c74c2589ea5ab52149abde19eca17ad5221789991015b60405180910390a150565b6000546001600160a01b031633146110f65760405162461bcd60e51b81526004016106c490612289565b6005805469ffffffff0000000000001916600160301b61ffff868116820269ffff0000000000000000191692909217600160401b86841681029190911761ffff60501b1916600160501b868516810291909117948590558404831693611164939181048216929004166124af565b61116e91906124af565b6005805461ffff60601b1916600160601b61ffff938416021790556040805185831681528483166020820152918316908201527f09d1c6e0dc7290333e3eb301ba9b06f7ec15ce885a8a1efc702befd956c1bd939060600161080b565b6000546001600160a01b031633146111f55760405162461bcd60e51b81526004016106c490612289565b63ffffffff80841690851661120c6009600a612413565b61121990620f4240612422565b6112239190612422565b61122d9190612458565b60085563ffffffff8082169083166112476009600a612413565b61125490620f4240612422565b61125e9190612422565b6112689190612458565b60098190556008541061127a57600080fd5b7f325d25781eb858cfe3b3ede984fc8a66dd8e8be0b4a349189e05d0a35e6803bb600854600954604051610cdd929190918252602082015260400190565b6000546001600160a01b031633146112e25760405162461bcd60e51b81526004016106c490612289565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163906020016110c1565b600061133a6119e4565b80156113535750600e5461134f90600a61247a565b4310155b15611360576108336119e4565b50600090565b6001600160a01b0383166000908152600f602052604090205460ff161580156113a557506001600160a01b038316600090815260106020526040902054155b1561101a576001600160a01b0383166000908152601060205260409020829055801561101a576005805461ffff169060006113df836124d5565b91906101000a81548161ffff021916908361ffff16021790555050505050565b60008061140a6119e4565b1561141757506001919050565b6000546001600160a01b0316320361142d575060015b919050565b60006001600160a01b0384161580159061145457506001600160a01b03831615155b6114a05760405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f776564000000000000000060448201526064016106c4565b43600e5411156114ff576001600160a01b03841660009081526010602052604081205490036114da576114d583436001611366565b611542565b6001600160a01b0384166000908152601060205260408120546114d591859190611366565b6001600160a01b03841660009081526010602052604090205415611542576001600160a01b03841660009081526010602052604081205461154291859190611366565b61154a6119e4565b801561156d57506001600160a01b03841660009081526010602052604090205415155b801561159057506001600160a01b03841660009081526010602052604090205443115b156115cb5760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016106c4565b60115460ff161580156115f657506001600160a01b03831660009081526004602052604090205460ff165b1561160357611603611c19565b6001600160a01b038416301480159061162557506001600160a01b0383163014155b801561163f57506000546001600160a01b03858116911614155b1561168f5761164f848484611db2565b61168f5760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b60448201526064016106c4565b600061169c858585611e7c565b905060006116aa8285612441565b6001600160a01b0387166000908152600160205260409020549091506116d1908590612441565b6001600160a01b038716600090815260016020526040902055811561171c573060009081526001602052604090205461170b90839061247a565b306000908152600160205260409020555b6001600160a01b03851660009081526001602052604090205461174090829061247a565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117949088815260200190565b60405180910390a350600195945050505050565b8115610a6c576001600160a01b038116600090815260016020526040812080548492906117d6908490612441565b9091555050600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49805484929061181690849061247a565b90915550506040518281526000906001600160a01b038316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604080516001600160a01b0383168152602081018490527ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6910160405180910390a15050565b6118ab816119fa565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118e0576118e06124f6565b6001600160a01b03928316602091820292909201015260115482516101009091049091169082906001908110611918576119186124f6565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac9479061195e90859060009086903090429060040161250c565b600060405180830381600087803b15801561197857600080fd5b505af115801561198c573d6000803e3d6000fd5b505050505050565b600554600160501b900461ffff16156119e157600a546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a6c573d6000803e3d6000fd5b50565b6003546000908190431061142d57506001919050565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156119e157306000818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190206000199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350565b600081611ab357506000546001600160a01b03165b60125460405163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990859060c40160606040518083038185885af1158015611b21573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b46919061257d565b50505050505050565b611b5b6009600a612413565b612710611b6a6009600a612413565b611b7790620f4240612422565b611b82906064612422565b611b8c9190612458565b611b96919061247a565b600655611ba56009600a612413565b612710611bb46009600a612413565b611bc190620f4240612422565b611bcc906064612422565b611bd69190612458565b611be0919061247a565b6007556005805465ffffff0000001916640805000000179055611c03814361247a565b6003819055611c1390600961247a565b600e5550565b6011805460ff191660011790556000611c47306001600160a01b031660009081526001602052604090205490565b90506008548110158015611c5e5750611c5e6119e4565b15611da5576009548110611c7157506009545b60055460009060029061ffff600160601b8204811691611c9a91600160301b9091041685612422565b611ca49190612458565b611cae9190612458565b60055490915060009061ffff600160601b8204811691611cd791600160401b9091041685612422565b611ce19190612458565b9050611ced81306117a8565b600082611cfa8386612441565b611d049190612441565b9050611d126009600a612413565b8110611d905747611d22826118a2565b6000611d2e8247612441565b600554909150600160301b900461ffff1615611d8d5760055460009061ffff600160601b8204811691611d6a91600160301b9091041684612422565b611d749190612458565b9050611d7f866119fa565b611d8b86826000611a9e565b505b50505b478015611da057611da081611994565b505050505b506011805460ff19169055565b60006001611dbe6119e4565b8015611de357506001600160a01b0384166000908152600d602052604090205460ff16155b8015611e0857506001600160a01b0385166000908152600d602052604090205460ff16155b156109ad57600654831115611e1f575060006109ad565b6001600160a01b03841660009081526004602052604090205460ff16158015611e6c57506007546001600160a01b038516600090815260016020526040902054611e6a90859061247a565b115b156109ad57506000949350505050565b600080611e876119e4565b1580611eab57506001600160a01b0385166000908152600c602052604090205460ff165b80611ece57506001600160a01b0384166000908152600c602052604090205460ff165b15611edb575060006109ad565b6001600160a01b03851660009081526004602052604090205460ff1615611f2757600554606490611f16906301000000900460ff1685612422565b611f209190612458565b90506109ad565b6001600160a01b03841660009081526004602052604090205460ff1615611f6357600554606490611f1690640100000000900460ff1685612422565b600554606490611f7f9065010000000000900460ff1685612422565b611f899190612458565b95945050505050565b600060208083528351808285015260005b81811015611fbf57858101830151858201604001528201611fa3565b81811115611fd1576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146119e157600080fd5b6000806040838503121561200f57600080fd5b823561201a81611fe7565b946020939093013593505050565b803560ff8116811461142d57600080fd5b60008060006060848603121561204e57600080fd5b61205784612028565b925061206560208501612028565b915061207360408501612028565b90509250925092565b8035801515811461142d57600080fd5b6000806000606084860312156120a157600080fd5b83356120ac81611fe7565b92506120ba6020850161207c565b91506120736040850161207c565b6000806000606084860312156120dd57600080fd5b83356120e881611fe7565b925060208401356120f881611fe7565b929592945050506040919091013590565b60006020828403121561211b57600080fd5b8135610b5781611fe7565b60006020828403121561213857600080fd5b5035919050565b6000806040838503121561215257600080fd5b61215b8361207c565b91506121696020840161207c565b90509250929050565b803561ffff8116811461142d57600080fd5b6000806040838503121561219757600080fd5b6121a083612172565b915061216960208401612172565b600080604083850312156121c157600080fd5b82356121cc81611fe7565b915060208301356121dc81611fe7565b809150509250929050565b6000806000606084860312156121fc57600080fd5b61220584612172565b925061221360208501612172565b915061207360408501612172565b803563ffffffff8116811461142d57600080fd5b6000806000806080858703121561224b57600080fd5b61225485612221565b935061226260208601612221565b925061227060408601612221565b915061227e60608601612221565b905092959194509250565b6020808252602a908201527f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c207468696040820152693990333ab731ba34b7b760b11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168160ff048111821515161561230a5761230a6122d3565b029392505050565b600060ff821660ff84168060ff0382111561232f5761232f6122d3565b019392505050565b600181815b80851115612372578160001904821115612358576123586122d3565b8085161561236557918102915b93841c939080029061233c565b509250929050565b60008261238957506001610694565b8161239657506000610694565b81600181146123ac57600281146123b6576123d2565b6001915050610694565b60ff8411156123c7576123c76122d3565b50506001821b610694565b5060208310610133831016604e8410600b84101617156123f5575081810a610694565b6123ff8383612337565b806000190482111561230a5761230a6122d3565b6000610b5760ff84168361237a565b600081600019048311821515161561243c5761243c6122d3565b500290565b600082821015612453576124536122d3565b500390565b60008261247557634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561248d5761248d6122d3565b500190565b6000602082840312156124a457600080fd5b8151610b5781611fe7565b600061ffff8083168185168083038211156124cc576124cc6122d3565b01949350505050565b600061ffff8083168181036124ec576124ec6122d3565b6001019392505050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561255c5784516001600160a01b031683529383019391830191600101612537565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561259257600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220798c6ebfc5ece0695f91430edb722b95b44c3b1e6f5be61e37f6713fbb67ef6064736f6c634300080f0033
Deployed Bytecode Sourcemap
2153:15244:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5474:80;;;;;;;;;;-1:-1:-1;5546:5:0;;;;;;;;;;;;-1:-1:-1;;;5546:5:0;;;;5474:80;;;;;;;:::i;:::-;;;;;;;;5803:319;;;;;;;;;;-1:-1:-1;5803:319:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;5803:319:0;1072:187:1;12648:393:0;;;;;;;;;;-1:-1:-1;12648:393:0;;;;;:::i;:::-;;:::i;:::-;;5213:88;;;;;;;;;;;;;:::i;:::-;;;1898:25:1;;;1886:2;1871:18;5213:88:0;1752:177:1;12077:214:0;;;;;;;;;;-1:-1:-1;12077:214:0;;;;;:::i;:::-;;:::i;6332:363::-;;;;;;;;;;-1:-1:-1;6332:363:0;;;;;:::i;:::-;;:::i;12296:347::-;;;;;;;;;;-1:-1:-1;12507:19:0;;12296:347;;;12507:19;;;;;;3241:36:1;;12528:14:0;;;;;3308:2:1;3293:18;;3286:45;12544:15:0;;;;;3347:18:1;;;3340:45;;;;12561:19:0;;;;;;3416:2:1;3401:18;;3394:45;12582:16:0;-1:-1:-1;;;12582:16:0;;;;3495:3:1;3480:19;;3473:44;-1:-1:-1;;;12600:14:0;;;;3548:3:1;3533:19;;3526:44;-1:-1:-1;;;12616:21:0;;;;;;3601:3:1;3586:19;;3579:44;3228:3;3213:19;12296:347:0;2948:681:1;5304:80:0;;;;;;;;;;-1:-1:-1;5304:80:0;;2297:1;3776:36:1;;3764:2;3749:18;5304:80:0;3634:184:1;11606:313:0;;;;;;;;;;-1:-1:-1;11606:313:0;;;;;:::i;:::-;;:::i;:::-;;;;4294:14:1;;4287:22;4269:41;;4341:2;4326:18;;4319:34;;;;4401:6;4389:19;4369:18;;;4362:47;4257:2;4242:18;11606:313:0;4075:340:1;17190:204:0;;;;;;;;;;-1:-1:-1;17190:204:0;;;;;:::i;:::-;;:::i;13886:216::-;;;;;;;;;;-1:-1:-1;14028:15:0;;14045:19;;14066:14;;14082;;13886:216;;;4836:25:1;;;4892:2;4877:18;;4870:34;;;;4920:18;;;4913:34;4978:2;4963:18;;4956:34;4823:3;4808:19;13886:216:0;4605:391:1;5557:105:0;;;;;;;;;;-1:-1:-1;5557:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5641:18:0;5623:7;5641:18;;;:9;:18;;;;;;;5557:105;16857:328;;;;;;;;;;-1:-1:-1;16857:328:0;;;;;:::i;:::-;;:::i;11924:148::-;;;;;;;;;;-1:-1:-1;11924:148:0;;;;;:::i;:::-;-1:-1:-1;;;;;12026:18:0;11985:11;12026:18;;;:10;:18;;;;;;;;;12046:12;:20;;;;;;;12026:18;;;;;12046:20;;;11924:148;;;;;5441:14:1;;5434:22;5416:41;;5500:14;;5493:22;5488:2;5473:18;;5466:50;5389:18;11924:148:0;5254:268:1;5387:84:0;;;;;;;;;;-1:-1:-1;5461:7:0;;;;;;;;;;;;-1:-1:-1;;;5461:7:0;;;;5387:84;;6127:200;;;;;;;;;;-1:-1:-1;6127:200:0;;;;;:::i;:::-;;:::i;14107:505::-;;;;;;;;;;-1:-1:-1;14107:505:0;;;;;:::i;:::-;;:::i;6700:874::-;;;;;;;;;;;;;:::i;13614:267::-;;;;;;;;;;-1:-1:-1;13614:267:0;;;;;:::i;:::-;;:::i;13441:168::-;;;;;;;;;;-1:-1:-1;13485:21:0;13565:5;13572:14;;13588:15;;13441:168;;;-1:-1:-1;;;;;13565:5:0;;;6192:34:1;;13572:14:0;;;6257:2:1;6242:18;;6235:43;13588:15:0;;6294:18:1;;;6287:43;;;;6142:2;6127:18;13441:168:0;5952:384:1;5665:133:0;;;;;;;;;;-1:-1:-1;5665:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5767:19:0;;;5749:7;5767:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5665:133;13046:389;;;;;;;;;;-1:-1:-1;13046:389:0;;;;;:::i;:::-;;:::i;14617:347::-;;;;;;;;;;-1:-1:-1;14617:347:0;;;;;:::i;:::-;;:::i;1342:130::-;;;;;;;;;;-1:-1:-1;1342:130:0;;;;;:::i;:::-;;:::i;8563:169::-;;;;;;;;;;;;;:::i;5803:319::-;5878:4;5908:12;5894:11;;:26;:53;;;;-1:-1:-1;5936:10:0;5925:22;;;;:10;:22;;;;;;;;5924:23;5894:53;5889:118;;;5956:45;5970:10;5982:12;5996:4;5956:13;:45::i;:::-;6025:10;6013:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6013:32:0;;;;;;;;;;;;:41;;;6064:37;1898:25:1;;;6013:32:0;;6025:10;6064:37;;1871:18:1;6064:37:0;;;;;;;-1:-1:-1;6113:4:0;5803:319;;;;;:::o;12648:393::-;1281:5;;-1:-1:-1;;;;;1281:5:0;1267:10;:19;1259:74;;;;-1:-1:-1;;;1259:74:0;;;;;;;:::i;:::-;;;;;;;;;12778:19:::1;::::0;12776:21:::1;::::0;12778:19;;::::1;;;;12776:21;:::i;:::-;12752:45;;:20;12762:10:::0;12752:9;:20:::1;:::i;:::-;:45;;;;12744:74;;;::::0;-1:-1:-1;;;12744:74:0;;9098:2:1;12744:74:0::1;::::0;::::1;9080:21:1::0;9137:2;9117:18;;;9110:30;-1:-1:-1;;;9156:18:1;;;9149:46;9212:18;;12744:74:0::1;8896:340:1::0;12744:74:0::1;12843:19;::::0;::::1;::::0;;;::::1;::::0;::::1;12831:31:::0;;::::1;;;12823:56;;;::::0;-1:-1:-1;;;12823:56:0;;9443:2:1;12823:56:0::1;::::0;::::1;9425:21:1::0;9482:2;9462:18;;;9455:30;-1:-1:-1;;;9501:18:1;;;9494:42;9553:18;;12823:56:0::1;9241:336:1::0;12823:56:0::1;12884:14;:26:::0;;-1:-1:-1;;12915:28:0;12884:26;::::1;::::0;;::::1;::::0;;::::1;-1:-1:-1::0;;12915:28:0;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;12948:30:0::1;::::0;;;::::1;::::0;;::::1;;::::0;;;12988:48:::1;::::0;;9772:36:1;;;9839:2;9824:18;;9817:45;;;;9878:18;;;9871:45;12988:48:0::1;::::0;9760:2:1;9745:18;12988:48:0::1;;;;;;;;12648:393:::0;;;:::o;5213:88::-;5268:7;2346:13;2297:1;2346:2;:13;:::i;:::-;2334:25;;:9;:25;:::i;:::-;5279:19;;5213:88;:::o;12077:214::-;1281:5;;-1:-1:-1;;;;;1281:5:0;1267:10;:19;1259:74;;;;-1:-1:-1;;;1259:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12168:18:0;::::1;;::::0;;;:10:::1;:18;::::0;;;;;;;:27;;;::::1;;-1:-1:-1::0;;12168:27:0;;::::1;::::0;::::1;::::0;;;12200:12:::1;:20:::0;;;;;;:31;;;::::1;;::::0;::::1;::::0;::::1;::::0;;12241:45;;11673:51:1;;;11740:18;;;11733:50;;;;11799:18;;11792:50;12241:45:0::1;::::0;11661:2:1;11646:18;12241:45:0::1;11483:365:1::0;6332:363:0;6432:4;6451:19;:17;:19::i;:::-;6443:48;;;;-1:-1:-1;;;6443:48:0;;12055:2:1;6443:48:0;;;12037:21:1;12094:2;12074:18;;;12067:30;-1:-1:-1;;;12113:18:1;;;12106:46;12169:18;;6443:48:0;11853:340:1;6443:48:0;-1:-1:-1;;;;;6500:19:0;;;;;;:11;:19;;;;;;;;6520:10;6500:31;;;;;;;;-1:-1:-1;;6500:52:0;6496:143;;-1:-1:-1;;;;;6593:19:0;;;;;;:11;:19;;;;;;;;6613:10;6593:31;;;;;;;;:40;;6627:6;;6593:40;:::i;:::-;-1:-1:-1;;;;;6559:19:0;;;;;;:11;:19;;;;;;;;6579:10;6559:31;;;;;;;:74;6496:143;6650:40;6664:6;6672:9;6683:6;6650:13;:40::i;:::-;6643:47;6332:363;-1:-1:-1;;;;6332:363:0:o;11606:313::-;-1:-1:-1;;;;;11782:23:0;;11672:18;11782:23;;;:15;:23;;;;;;11672:18;;;;;;11782:28;11777:62;;-1:-1:-1;11832:4:0;11777:62;-1:-1:-1;;;;;11868:23:0;;;;;;;;:15;:23;;;;;;11893:19;;11852:14;;11868:23;;11893:19;;;-1:-1:-1;11606:313:0;-1:-1:-1;;11606:313:0:o;17190:204::-;17277:10;17240:24;5641:18;;;:9;:18;;;;;;17301:26;;;;17293:60;;;;-1:-1:-1;;;17293:60:0;;12530:2:1;17293:60:0;;;12512:21:1;12569:2;12549:18;;;12542:30;-1:-1:-1;;;12588:18:1;;;12581:51;12649:18;;17293:60:0;12328:345:1;17293:60:0;17358:31;17370:6;17378:10;17358:11;:31::i;:::-;17235:159;17190:204;:::o;16857:328::-;1281:5;;-1:-1:-1;;;;;1281:5:0;1267:10;:19;1259:74;;;;-1:-1:-1;;;1259:74:0;;;;;;;:::i;:::-;16943:10:::1;16939:168;;;17005:4;16961:23;5641:18:::0;;;:9;:18;;;;;;17025:19;17017:41:::1;;;::::0;-1:-1:-1;;;17017:41:0;;12880:2:1;17017:41:0::1;::::0;::::1;12862:21:1::0;12919:1;12899:18;;;12892:29;-1:-1:-1;;;12937:18:1;;;12930:39;12986:18;;17017:41:0::1;12678:332:1::0;17017:41:0::1;17064:37;17085:15;17064:20;:37::i;:::-;16955:152;16939:168;17119:7;17115:66;;;17134:40;17152:21;17134:17;:40::i;6127:200::-:0;6207:4;6226:19;:17;:19::i;:::-;6218:48;;;;-1:-1:-1;;;6218:48:0;;12055:2:1;6218:48:0;;;12037:21:1;12094:2;12074:18;;;12067:30;-1:-1:-1;;;12113:18:1;;;12106:46;12169:18;;6218:48:0;11853:340:1;6218:48:0;6278:44;6292:10;6304:9;6315:6;6278:13;:44::i;:::-;6271:51;6127:200;-1:-1:-1;;;6127:200:0:o;14107:505::-;1281:5;;-1:-1:-1;;;;;1281:5:0;1267:10;:19;1259:74;;;;-1:-1:-1;;;1259:74:0;;;;;;;:::i;:::-;14207:16:::1;14259:4;14226:30;::::0;::::1;2346:13;2297:1;2346:2;:13;:::i;:::-;2334:25;::::0;:9:::1;:25;:::i;:::-;14226:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;::::0;14266:1:::1;14226:41;:::i;:::-;14207:60;;14292:15;;14280:8;:27;;14272:56;;;::::0;-1:-1:-1;;;14272:56:0;;13572:2:1;14272:56:0::1;::::0;::::1;13554:21:1::0;13611:2;13591:18;;;13584:30;-1:-1:-1;;;13630:18:1;;;13623:46;13686:18;;14272:56:0::1;13370:340:1::0;14272:56:0::1;14333:15;:26:::0;;;14364:20:::1;14424:4;14387:34;::::0;::::1;2346:13;2297:1;2346:2;:13;:::i;:::-;2334:25;::::0;:9:::1;:25;:::i;:::-;14387:34;;;;:::i;:::-;:41;;;;:::i;:::-;:45;::::0;14431:1:::1;14387:45;:::i;:::-;14364:68;;14461:19;;14445:12;:35;;14437:68;;;::::0;-1:-1:-1;;;14437:68:0;;13917:2:1;14437:68:0::1;::::0;::::1;13899:21:1::0;13956:2;13936:18;;;13929:30;-1:-1:-1;;;13975:18:1;;;13968:50;14035:18;;14437:68:0::1;13715:344:1::0;14437:68:0::1;14510:19;:34:::0;;;14570:15:::1;::::0;14554:53:::1;::::0;;14238:25:1;;;14294:2;14279:18;;14272:34;;;14554:53:0::1;::::0;14211:18:1;14554:53:0::1;;;;;;;;14202:410;;14107:505:::0;;:::o;6700:874::-;1281:5;;-1:-1:-1;;;;;1281:5:0;1267:10;:19;1259:74;;;;-1:-1:-1;;;1259:74:0;;;;;;;:::i;:::-;6750:14:::1;:12;:14::i;:::-;6749:15;6741:48;;;::::0;-1:-1:-1;;;6741:48:0;;14519:2:1;6741:48:0::1;::::0;::::1;14501:21:1::0;14558:2;14538:18;;;14531:30;-1:-1:-1;;;14577:18:1;;;14570:50;14637:18;;6741:48:0::1;14317:344:1::0;6741:48:0::1;6802:14;::::0;-1:-1:-1;;;;;6802:14:0::1;:28:::0;6794:57:::1;;;::::0;-1:-1:-1;;;6794:57:0;;14868:2:1;6794:57:0::1;::::0;::::1;14850:21:1::0;14907:2;14887:18;;;14880:30;-1:-1:-1;;;14926:18:1;;;14919:46;14982:18;;6794:57:0::1;14666:340:1::0;6794:57:0::1;6877:4;6858:25;::::0;;;:10:::1;:25;::::0;;;;;;;:32;;6886:4:::1;-1:-1:-1::0;;6858:32:0;;::::1;::::0;::::1;::::0;;;6906:5;;-1:-1:-1;;;;;6906:5:0;;::::1;6895:17:::0;;;;;:24;;;::::1;::::0;::::1;::::0;;6935:15:::1;::::0;;::::1;6924:27:::0;;;;;;:34;;;;::::1;::::0;;::::1;::::0;;6980:16:::1;::::0;:23;;-1:-1:-1;;;6980:23:0;;;;:16;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;6858:25;;6980:23;;;;;;:16;:23:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6965:12;:38:::0;;-1:-1:-1;;;;;;6965:38:0::1;;-1:-1:-1::0;;;;;6965:38:0;;::::1;;;::::0;;7043:16:::1;::::0;:26:::1;::::0;;-1:-1:-1;;;7043:26:0;;;;:16;;;::::1;::::0;:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:16;:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7097:12;::::0;7025:85:::1;::::0;-1:-1:-1;;;7025:85:0;;7090:4:::1;7025:85;::::0;::::1;15479:34:1::0;-1:-1:-1;;;;;7097:12:0::1;::::0;;::::1;::::0;::::1;15529:18:1::0;;;15522:43;7025:56:0;::::1;::::0;::::1;::::0;15414:18:1;;7025:85:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7008:14;:102:::0;;-1:-1:-1;;;;;;7008:102:0::1;-1:-1:-1::0;;;;;7008:102:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7117:26:0;;;:10:::1;:26;::::0;;;;;;;:33;;-1:-1:-1;;7117:33:0;;::::1;-1:-1:-1::0;7117:33:0;;::::1;::::0;;;7166:14;;;;::::1;7155:26:::0;;:10:::1;:26:::0;;;;;:33;;;;::::1;::::0;::::1;::::0;;;7351:4:::1;5641:18:::0;;;;;;;;;7225:21:::1;::::0;5641:18;7362:47:::1;;;::::0;-1:-1:-1;;;7362:47:0;;16112:2:1;7362:47:0::1;::::0;::::1;16094:21:1::0;16151:1;16131:18;;;16124:29;-1:-1:-1;;;16169:18:1;;;16162:39;16218:18;;7362:47:0::1;15910:332:1::0;7362:47:0::1;7416:37;7431:21;7416:14;:37::i;:::-;7458:64;7472:21;7495:19;7516:5;7458:13;:64::i;:::-;7543:2;7550:19;7543:2:::0;7550:12:::1;:19::i;:::-;6736:838;;;6700:874::o:0;13614:267::-;1281:5;;-1:-1:-1;;;;;1281:5:0;1267:10;:19;1259:74;;;;-1:-1:-1;;;1259:74:0;;;;;;;:::i;:::-;13691:15:::1;:47:::0;;-1:-1:-1;;;;;;13691:47:0::1;-1:-1:-1::0;;;;;13691:47:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;13743:32:0;;;:10:::1;:32;::::0;;;;;;;:39;;-1:-1:-1;;13743:39:0;;::::1;-1:-1:-1::0;13743:39:0;;::::1;::::0;;;13787:12:::1;:34:::0;;;;;;:41;;;;::::1;;::::0;;;13838:38;;16393:51:1;;;13838:38:0::1;::::0;16366:18:1;13838:38:0::1;;;;;;;;13614:267:::0;:::o;13046:389::-;1281:5;;-1:-1:-1;;;;;1281:5:0;1267:10;:19;1259:74;;;;-1:-1:-1;;;1259:74:0;;;;;;;:::i;:::-;13164:16:::1;:31:::0;;-1:-1:-1;;13200:27:0;-1:-1:-1;;;13164:31:0::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;13200:27:0;;;;;-1:-1:-1;;;13200:27:0;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;;13232:41:0::1;-1:-1:-1::0;;;13232:41:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;13332:21;::::1;::::0;::::1;::::0;13296:33:::1;::::0;13315:14;;::::1;::::0;::::1;::::0;13296:16;::::1;;:33;:::i;:::-;:57;;;;:::i;:::-;13278:15;:75:::0;;-1:-1:-1;;;;13278:75:0::1;-1:-1:-1::0;;;13278:75:0::1;::::0;;::::1;;;::::0;;13363:67:::1;::::0;;16923:15:1;;;16905:34;;16975:15;;;16970:2;16955:18;;16948:43;17027:15;;;17007:18;;;17000:43;13363:67:0::1;::::0;16868:2:1;16853:18;13363:67:0::1;16684:365:1::0;14617:347:0;1281:5;;-1:-1:-1;;;;;1281:5:0;1267:10;:19;1259:74;;;;-1:-1:-1;;;1259:74:0;;;;;;;:::i;:::-;14756:36:::1;::::0;;::::1;::::0;:23;::::1;2346:13;2297:1;2346:2;:13;:::i;:::-;2334:25;::::0;:9:::1;:25;:::i;:::-;14756:23;;;;:::i;:::-;:36;;;;:::i;:::-;14739:14;:53:::0;14814:36:::1;::::0;;::::1;::::0;:23;::::1;2346:13;2297:1;2346:2;:13;:::i;:::-;2334:25;::::0;:9:::1;:25;:::i;:::-;14814:23;;;;:::i;:::-;:36;;;;:::i;:::-;14797:14;:53:::0;;;14880:14:::1;::::0;-1:-1:-1;14855:40:0::1;;;::::0;::::1;;14905:54;14928:14;;14944;;14905:54;;;;;;14238:25:1::0;;;14294:2;14279:18;;14272:34;14226:2;14211:18;;14064:248;1342:130:0;1281:5;;-1:-1:-1;;;;;1281:5:0;1267:10;:19;1259:74;;;;-1:-1:-1;;;1259:74:0;;;;;;;:::i;:::-;1416:5:::1;:16:::0;;-1:-1:-1;;;;;;1416:16:0::1;-1:-1:-1::0;;;;;1416:16:0;::::1;::::0;;::::1;::::0;;;1439:30:::1;::::0;16393:51:1;;;1439:30:0::1;::::0;16381:2:1;16366:18;1439:30:0::1;16247:203:1::0;8563:169:0;8609:4;8624:14;:12;:14::i;:::-;:50;;;;-1:-1:-1;8658:11:0;;:16;;8672:2;8658:16;:::i;:::-;8642:12;:32;;8624:50;8620:108;;;8685:14;:12;:14::i;8620:108::-;-1:-1:-1;8720:5:0;;8563:169::o;10001:256::-;-1:-1:-1;;;;;10099:18:0;;;;;;:10;:18;;;;;;;;10098:19;:51;;;;-1:-1:-1;;;;;;10121:23:0;;;;;;:15;:23;;;;;;:28;10098:51;10093:160;;;-1:-1:-1;;;;;10159:23:0;;;;;;:15;:23;;;;;:39;;;10205:43;;;;10223:19;:22;;;;;:19;:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;10001:256;;;:::o;10902:222::-;10953:4;;10997:14;:12;:14::i;:::-;10992:104;;;-1:-1:-1;11030:4:0;11108:11;10902:222;-1:-1:-1;10902:222:0:o;10992:104::-;11065:5;;-1:-1:-1;;;;;11065:5:0;11052:9;:18;11047:49;;-1:-1:-1;11089:4:0;11047:49;11108:11;10902:222;-1:-1:-1;10902:222:0:o;8737:1259::-;8829:4;-1:-1:-1;;;;;8848:18:0;;;;;;:43;;-1:-1:-1;;;;;;8870:21:0;;;;8848:43;8840:80;;;;-1:-1:-1;;;8840:80:0;;17674:2:1;8840:80:0;;;17656:21:1;17713:2;17693:18;;;17686:30;17752:26;17732:18;;;17725:54;17796:18;;8840:80:0;17472:348:1;8840:80:0;8944:12;8930:11;;:26;8925:315;;;-1:-1:-1;;;;;8970:23:0;;;;;;:15;:23;;;;;;:28;;8965:156;;9003:44;9017:9;9028:12;9042:4;9003:13;:44::i;:::-;8925:315;;8965:156;-1:-1:-1;;;;;9087:23:0;;;;;;:15;:23;;;;;;9062:56;;9076:9;;9087:23;9062:13;:56::i;8925:315::-;-1:-1:-1;;;;;9143:23:0;;;;;;:15;:23;;;;;;:28;9138:97;;-1:-1:-1;;;;;9201:23:0;;;;;;:15;:23;;;;;;9176:56;;9190:9;;9201:23;9176:13;:56::i;:::-;9251:14;:12;:14::i;:::-;:46;;;;-1:-1:-1;;;;;;9269:23:0;;;;;;:15;:23;;;;;;:28;;9251:46;:88;;;;-1:-1:-1;;;;;;9301:23:0;;;;;;:15;:23;;;;;;9327:12;-1:-1:-1;9251:88:0;9246:122;;;9344:21;;-1:-1:-1;;;9344:21:0;;18027:2:1;9344:21:0;;;18009::1;18066:2;18046:18;;;18039:30;-1:-1:-1;;;18085:18:1;;;18078:41;18136:18;;9344:21:0;17825:335:1;9246:122:0;9380:10;;;;9379:11;:36;;;;-1:-1:-1;;;;;;9394:21:0;;;;;;:10;:21;;;;;;;;9379:36;9374:69;;;9420:20;:18;:20::i;:::-;-1:-1:-1;;;;;9454:23:0;;9472:4;9454:23;;;;:53;;-1:-1:-1;;;;;;9481:26:0;;9502:4;9481:26;;9454:53;:72;;;;-1:-1:-1;9521:5:0;;-1:-1:-1;;;;;9511:15:0;;;9521:5;;9511:15;;9454:72;9449:154;;;9539:39;9552:6;9560:9;9571:6;9539:12;:39::i;:::-;9531:69;;;;-1:-1:-1;;;9531:69:0;;18367:2:1;9531:69:0;;;18349:21:1;18406:2;18386:18;;;18379:30;-1:-1:-1;;;18425:18:1;;;18418:47;18482:18;;9531:69:0;18165:341:1;9531:69:0;9607:18;9628:40;9642:6;9650:9;9661:6;9628:13;:40::i;:::-;9607:61;-1:-1:-1;9673:23:0;9699:19;9607:61;9699:6;:19;:::i;:::-;-1:-1:-1;;;;;9743:17:0;;;;;;:9;:17;;;;;;9673:45;;-1:-1:-1;9743:26:0;;9763:6;;9743:26;:::i;:::-;-1:-1:-1;;;;;9723:17:0;;;;;;:9;:17;;;;;:46;9779:14;;9774:91;;9843:4;9825:24;;;;:9;:24;;;;;;:37;;9852:10;;9825:37;:::i;:::-;9816:4;9798:24;;;;:9;:24;;;;;:64;9774:91;-1:-1:-1;;;;;9892:20:0;;;;;;:9;:20;;;;;;:38;;9915:15;;9892:38;:::i;:::-;-1:-1:-1;;;;;9869:20:0;;;;;;;:9;:20;;;;;;;:61;;;;9940:35;;;;;;;;;;9968:6;1898:25:1;;1886:2;1871:18;;1752:177;9940:35:0;;;;;;;;-1:-1:-1;9987:4:0;;8737:1259;-1:-1:-1;;;;;8737:1259:0:o;14969:266::-;15044:10;;15039:192;;-1:-1:-1;;;;;15063:21:0;;;;;;:9;:21;;;;;:31;;15088:6;;15063:21;:31;;15088:6;;15063:31;:::i;:::-;;;;-1:-1:-1;;15100:21:0;;;;:9;:21;;;:31;;15125:6;;15100:21;:31;;15125:6;;15100:31;:::i;:::-;;;;-1:-1:-1;;15142:40:0;;1898:25:1;;;15171:1:0;;-1:-1:-1;;;;;15142:40:0;;;;;1886:2:1;1871:18;15142:40:0;;;;;;;15193:32;;;-1:-1:-1;;;;;18703:32:1;;18685:51;;18767:2;18752:18;;18745:34;;;15193:32:0;;18658:18:1;15193:32:0;;;;;;;14969:266;;:::o;16394:321::-;16459:28;16474:12;16459:14;:28::i;:::-;16516:16;;;16530:1;16516:16;;;;;;;;16492:21;;16516:16;;;;;;;;;;-1:-1:-1;16516:16:0;16492:40;;16555:4;16537;16542:1;16537:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16537:23:0;;;:7;;;;;;;;;:23;16575:12;;16565:7;;16575:12;;;;;;;;16565:4;;16575:12;;16565:7;;;;;;:::i;:::-;-1:-1:-1;;;;;16565:22:0;;;:7;;;;;;;;;:22;16592:16;;:118;;-1:-1:-1;;;16592:118:0;;:16;;;:67;;:118;;16660:12;;16592:16;;16675:4;;16688;;16694:15;;16592:118;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16454:261;16394:321;:::o;16720:132::-;16782:21;;-1:-1:-1;;;16782:21:0;;;;:25;16777:71;;16812:15;;:33;;-1:-1:-1;;;;;16812:15:0;;;;:33;;;;;16837:7;;16812:15;:33;:15;:33;16837:7;16812:15;:33;;;;;;;;;;;;;;;;;;;16777:71;16720:132;:::o;10737:160::-;10838:17;;10783:4;;;;10822:12;:33;10818:57;;-1:-1:-1;10868:4:0;10886:6;10737:160;-1:-1:-1;10737:160:0:o;7579:299::-;7664:4;7644:26;;;;:11;:26;;;;;;;;3423:42;7644:51;;;;;;;;:66;-1:-1:-1;7639:235:0;;;7739:4;7719:26;;;;:11;:26;;;;;;;;3423:42;7719:51;;;;;;;;;;-1:-1:-1;;7719:71:0;;;;7801:67;;1898:25:1;;;3423:42:0;;7739:4;7801:67;;1871:18:1;7801:67:0;;;;;;;7579:299;:::o;7883:321::-;7980:24;8028:8;8022:46;;-1:-1:-1;8060:5:0;;-1:-1:-1;;;;;8060:5:0;8022:46;8072:16;;:127;;-1:-1:-1;;;8072:127:0;;8137:4;8072:127;;;20380:34:1;20430:18;;;20423:34;;;8072:16:0;20473:18:1;;;20466:34;;;20516:18;;;20509:34;-1:-1:-1;;;;;20580:15:1;;;20559:19;;;20552:44;8182:15:0;20612:19:1;;;20605:35;8072:16:0;;;;:32;;8112:13;;20314:19:1;;8072:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7975:229;7883:321;;;:::o;8209:349::-;8310:13;2297:1;8310:2;:13;:::i;:::-;8302:5;2346:13;2297:1;2346:2;:13;:::i;:::-;2334:25;;:9;:25;:::i;:::-;8281:18;;:3;:18;:::i;:::-;:26;;;;:::i;:::-;:42;;;;:::i;:::-;8259:15;:64;8380:13;2297:1;8380:2;:13;:::i;:::-;8372:5;2346:13;2297:1;2346:2;:13;:::i;:::-;2334:25;;:9;:25;:::i;:::-;8351:18;;:3;:18;:::i;:::-;:26;;;;:::i;:::-;:42;;;;:::i;:::-;8329:19;:64;8415:1;8398:18;;-1:-1:-1;;8445:23:0;8421:19;8445:23;;;8494:19;8509:4;8494:12;:19;:::i;:::-;8474:17;:39;;;8532:21;;8552:1;8532:21;:::i;:::-;8518:11;:35;-1:-1:-1;8209:349:0:o;15240:1149::-;3626:10;:17;;-1:-1:-1;;3626:17:0;3639:4;3626:17;;;:10;15325:24:::1;15343:4;-1:-1:-1::0;;;;;5641:18:0;5623:7;5641:18;;;:9;:18;;;;;;;5557:105;15325:24:::1;15295:54;;15384:14;;15361:19;:37;;:55;;;;;15402:14;:12;:14::i;:::-;15356:1029;;;15453:14;;15430:19;:37;15425:86;;-1:-1:-1::0;15494:14:0::1;::::0;15425:86:::1;15585:15;::::0;15521:20:::1;::::0;15603:1:::1;::::0;15585:15:::1;-1:-1:-1::0;;;15585:15:0;::::1;::::0;::::1;::::0;15544:38:::1;::::0;-1:-1:-1;;;15566:16:0;;::::1;;15544:19:::0;:38:::1;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;15678:15;::::0;15521:83;;-1:-1:-1;15615:21:0::1;::::0;15678:15:::1;-1:-1:-1::0;;;15678:15:0;::::1;::::0;::::1;::::0;15639:36:::1;::::0;-1:-1:-1;;;15661:14:0;;::::1;;15639:19:::0;:36:::1;:::i;:::-;:54;;;;:::i;:::-;15615:78;;15699:41;15711:13;15734:4;15699:11;:41::i;:::-;15748:21;15810:12:::0;15772:35:::1;15794:13:::0;15772:19;:35:::1;:::i;:::-;:50;;;;:::i;:::-;15748:74:::0;-1:-1:-1;15849:13:0::1;2297:1;15849:2;:13;:::i;:::-;15832;:30;15828:415;;15893:21;15921:35;15942:13:::0;15921:20:::1;:35::i;:::-;15963:19;15985:35;16009:11:::0;15985:21:::1;:35;:::i;:::-;16032:16;::::0;15963:57;;-1:-1:-1;;;;16032:16:0;::::1;;;:20:::0;16027:210:::1;;16120:15;::::0;16063:21:::1;::::0;16120:15:::1;-1:-1:-1::0;;;16120:15:0;::::1;::::0;::::1;::::0;16087:30:::1;::::0;-1:-1:-1;;;16101:16:0;;::::1;;16087:11:::0;:30:::1;:::i;:::-;:48;;;;:::i;:::-;16063:72;;16144:28;16159:12;16144:14;:28::i;:::-;16180:49;16194:12;16208:13;16223:5;16180:13;:49::i;:::-;16055:182;16027:210;15864:379;;15828:415;16278:21;16312:23:::0;;16308:72:::1;;16339:38;16357:19;16339:17;:38::i;:::-;15419:966;;;;15356:1029;-1:-1:-1::0;3648:10:0;:18;;-1:-1:-1;;3648:18:0;;;15240:1149::o;10263:469::-;10367:4;10402;10416:14;:12;:14::i;:::-;:42;;;;-1:-1:-1;;;;;;10435:23:0;;;;;;:12;:23;;;;;;;;10434:24;10416:42;:67;;;;-1:-1:-1;;;;;;10463:20:0;;;;;;:12;:20;;;;;;;;10462:21;10416:67;10411:289;;;10514:15;;10497:14;:32;10492:203;;;-1:-1:-1;10553:5:0;10492:203;;;-1:-1:-1;;;;;10577:21:0;;;;;;:10;:21;;;;;;;;10576:22;:87;;;;-1:-1:-1;10643:19:0;;-1:-1:-1;;;;;10603:20:0;;;;;;:9;:20;;;;;;:37;;10626:14;;10603:37;:::i;:::-;:59;10576:87;10571:124;;;-1:-1:-1;10687:5:0;10711:16;10263:469;-1:-1:-1;;;;10263:469:0:o;11129:472::-;11226:7;11240:17;11268:14;:12;:14::i;:::-;11267:15;:37;;;-1:-1:-1;;;;;;11286:18:0;;;;;;:10;:18;;;;;;;;11267:37;:62;;;-1:-1:-1;;;;;;11308:21:0;;;;;;:10;:21;;;;;;;;11267:62;11262:314;;;-1:-1:-1;11346:1:0;11262:314;;;-1:-1:-1;;;;;11364:18:0;;;;;;:10;:18;;;;;;;;11359:217;;;11408:14;;11425:3;;11399:23;;11408:14;;;;;11399:6;:23;:::i;:::-;:29;;;;:::i;:::-;11387:41;;11359:217;;;-1:-1:-1;;;;;11445:21:0;;;;;;:10;:21;;;;;;;;11440:136;;;11492:15;;11510:3;;11483:24;;11492:15;;;;;11483:6;:24;:::i;11440:136::-;11548:19;;11570:3;;11539:28;;11548:19;;;;;11539:6;:28;:::i;:::-;:34;;;;:::i;:::-;11527:46;11129:472;-1:-1:-1;;;;;11129:472:0:o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:156::-;1330:20;;1390:4;1379:16;;1369:27;;1359:55;;1410:1;1407;1400:12;1425:322;1496:6;1504;1512;1565:2;1553:9;1544:7;1540:23;1536:32;1533:52;;;1581:1;1578;1571:12;1533:52;1604:27;1621:9;1604:27;:::i;:::-;1594:37;;1650:36;1682:2;1671:9;1667:18;1650:36;:::i;:::-;1640:46;;1705:36;1737:2;1726:9;1722:18;1705:36;:::i;:::-;1695:46;;1425:322;;;;;:::o;1934:160::-;1999:20;;2055:13;;2048:21;2038:32;;2028:60;;2084:1;2081;2074:12;2099:383;2170:6;2178;2186;2239:2;2227:9;2218:7;2214:23;2210:32;2207:52;;;2255:1;2252;2245:12;2207:52;2294:9;2281:23;2313:31;2338:5;2313:31;:::i;:::-;2363:5;-1:-1:-1;2387:35:1;2418:2;2403:18;;2387:35;:::i;:::-;2377:45;;2441:35;2472:2;2461:9;2457:18;2441:35;:::i;2487:456::-;2564:6;2572;2580;2633:2;2621:9;2612:7;2608:23;2604:32;2601:52;;;2649:1;2646;2639:12;2601:52;2688:9;2675:23;2707:31;2732:5;2707:31;:::i;:::-;2757:5;-1:-1:-1;2814:2:1;2799:18;;2786:32;2827:33;2786:32;2827:33;:::i;:::-;2487:456;;2879:7;;-1:-1:-1;;;2933:2:1;2918:18;;;;2905:32;;2487:456::o;3823:247::-;3882:6;3935:2;3923:9;3914:7;3910:23;3906:32;3903:52;;;3951:1;3948;3941:12;3903:52;3990:9;3977:23;4009:31;4034:5;4009:31;:::i;4420:180::-;4479:6;4532:2;4520:9;4511:7;4507:23;4503:32;4500:52;;;4548:1;4545;4538:12;4500:52;-1:-1:-1;4571:23:1;;4420:180;-1:-1:-1;4420:180:1:o;5001:248::-;5063:6;5071;5124:2;5112:9;5103:7;5099:23;5095:32;5092:52;;;5140:1;5137;5130:12;5092:52;5163:26;5179:9;5163:26;:::i;:::-;5153:36;;5208:35;5239:2;5228:9;5224:18;5208:35;:::i;:::-;5198:45;;5001:248;;;;;:::o;5527:159::-;5594:20;;5654:6;5643:18;;5633:29;;5623:57;;5676:1;5673;5666:12;5691:256;5757:6;5765;5818:2;5806:9;5797:7;5793:23;5789:32;5786:52;;;5834:1;5831;5824:12;5786:52;5857:28;5875:9;5857:28;:::i;:::-;5847:38;;5904:37;5937:2;5926:9;5922:18;5904:37;:::i;6341:388::-;6409:6;6417;6470:2;6458:9;6449:7;6445:23;6441:32;6438:52;;;6486:1;6483;6476:12;6438:52;6525:9;6512:23;6544:31;6569:5;6544:31;:::i;:::-;6594:5;-1:-1:-1;6651:2:1;6636:18;;6623:32;6664:33;6623:32;6664:33;:::i;:::-;6716:7;6706:17;;;6341:388;;;;;:::o;6734:328::-;6808:6;6816;6824;6877:2;6865:9;6856:7;6852:23;6848:32;6845:52;;;6893:1;6890;6883:12;6845:52;6916:28;6934:9;6916:28;:::i;:::-;6906:38;;6963:37;6996:2;6985:9;6981:18;6963:37;:::i;:::-;6953:47;;7019:37;7052:2;7041:9;7037:18;7019:37;:::i;7067:163::-;7134:20;;7194:10;7183:22;;7173:33;;7163:61;;7220:1;7217;7210:12;7235:401;7317:6;7325;7333;7341;7394:3;7382:9;7373:7;7369:23;7365:33;7362:53;;;7411:1;7408;7401:12;7362:53;7434:28;7452:9;7434:28;:::i;:::-;7424:38;;7481:37;7514:2;7503:9;7499:18;7481:37;:::i;:::-;7471:47;;7537:37;7570:2;7559:9;7555:18;7537:37;:::i;:::-;7527:47;;7593:37;7626:2;7615:9;7611:18;7593:37;:::i;:::-;7583:47;;7235:401;;;;;;;:::o;7901:406::-;8103:2;8085:21;;;8142:2;8122:18;;;8115:30;8181:34;8176:2;8161:18;;8154:62;-1:-1:-1;;;8247:2:1;8232:18;;8225:40;8297:3;8282:19;;7901:406::o;8312:127::-;8373:10;8368:3;8364:20;8361:1;8354:31;8404:4;8401:1;8394:15;8428:4;8425:1;8418:15;8444:238;8482:7;8522:4;8519:1;8515:12;8554:4;8551:1;8547:12;8614:3;8608:4;8604:14;8599:3;8596:23;8589:3;8582:11;8575:19;8571:49;8568:75;;;8623:18;;:::i;:::-;8663:13;;8444:238;-1:-1:-1;;;8444:238:1:o;8687:204::-;8725:3;8761:4;8758:1;8754:12;8793:4;8790:1;8786:12;8828:3;8822:4;8818:14;8813:3;8810:23;8807:49;;;8836:18;;:::i;:::-;8872:13;;8687:204;-1:-1:-1;;;8687:204:1:o;9927:422::-;10016:1;10059:5;10016:1;10073:270;10094:7;10084:8;10081:21;10073:270;;;10153:4;10149:1;10145:6;10141:17;10135:4;10132:27;10129:53;;;10162:18;;:::i;:::-;10212:7;10202:8;10198:22;10195:55;;;10232:16;;;;10195:55;10311:22;;;;10271:15;;;;10073:270;;;10077:3;9927:422;;;;;:::o;10354:806::-;10403:5;10433:8;10423:80;;-1:-1:-1;10474:1:1;10488:5;;10423:80;10522:4;10512:76;;-1:-1:-1;10559:1:1;10573:5;;10512:76;10604:4;10622:1;10617:59;;;;10690:1;10685:130;;;;10597:218;;10617:59;10647:1;10638:10;;10661:5;;;10685:130;10722:3;10712:8;10709:17;10706:43;;;10729:18;;:::i;:::-;-1:-1:-1;;10785:1:1;10771:16;;10800:5;;10597:218;;10899:2;10889:8;10886:16;10880:3;10874:4;10871:13;10867:36;10861:2;10851:8;10848:16;10843:2;10837:4;10834:12;10830:35;10827:77;10824:159;;;-1:-1:-1;10936:19:1;;;10968:5;;10824:159;11015:34;11040:8;11034:4;11015:34;:::i;:::-;11085:6;11081:1;11077:6;11073:19;11064:7;11061:32;11058:58;;;11096:18;;:::i;11165:140::-;11223:5;11252:47;11293:4;11283:8;11279:19;11273:4;11252:47;:::i;11310:168::-;11350:7;11416:1;11412;11408:6;11404:14;11401:1;11398:21;11393:1;11386:9;11379:17;11375:45;11372:71;;;11423:18;;:::i;:::-;-1:-1:-1;11463:9:1;;11310:168::o;12198:125::-;12238:4;12266:1;12263;12260:8;12257:34;;;12271:18;;:::i;:::-;-1:-1:-1;12308:9:1;;12198:125::o;13015:217::-;13055:1;13081;13071:132;;13125:10;13120:3;13116:20;13113:1;13106:31;13160:4;13157:1;13150:15;13188:4;13185:1;13178:15;13071:132;-1:-1:-1;13217:9:1;;13015:217::o;13237:128::-;13277:3;13308:1;13304:6;13301:1;13298:13;13295:39;;;13314:18;;:::i;:::-;-1:-1:-1;13350:9:1;;13237:128::o;15011:251::-;15081:6;15134:2;15122:9;15113:7;15109:23;15105:32;15102:52;;;15150:1;15147;15140:12;15102:52;15182:9;15176:16;15201:31;15226:5;15201:31;:::i;16455:224::-;16494:3;16522:6;16555:2;16552:1;16548:10;16585:2;16582:1;16578:10;16616:3;16612:2;16608:12;16603:3;16600:21;16597:47;;;16624:18;;:::i;:::-;16660:13;;16455:224;-1:-1:-1;;;;16455:224:1:o;17270:197::-;17308:3;17336:6;17377:2;17370:5;17366:14;17404:2;17395:7;17392:15;17389:41;;17410:18;;:::i;:::-;17459:1;17446:15;;17270:197;-1:-1:-1;;;17270:197:1:o;18922:127::-;18983:10;18978:3;18974:20;18971:1;18964:31;19014:4;19011:1;19004:15;19038:4;19035:1;19028:15;19054:980;19316:4;19364:3;19353:9;19349:19;19395:6;19384:9;19377:25;19421:2;19459:6;19454:2;19443:9;19439:18;19432:34;19502:3;19497:2;19486:9;19482:18;19475:31;19526:6;19561;19555:13;19592:6;19584;19577:22;19630:3;19619:9;19615:19;19608:26;;19669:2;19661:6;19657:15;19643:29;;19690:1;19700:195;19714:6;19711:1;19708:13;19700:195;;;19779:13;;-1:-1:-1;;;;;19775:39:1;19763:52;;19870:15;;;;19835:12;;;;19811:1;19729:9;19700:195;;;-1:-1:-1;;;;;;;19951:32:1;;;;19946:2;19931:18;;19924:60;-1:-1:-1;;;20015:3:1;20000:19;19993:35;19912:3;19054:980;-1:-1:-1;;;19054:980:1:o;20651:306::-;20739:6;20747;20755;20808:2;20796:9;20787:7;20783:23;20779:32;20776:52;;;20824:1;20821;20814:12;20776:52;20853:9;20847:16;20837:26;;20903:2;20892:9;20888:18;20882:25;20872:35;;20947:2;20936:9;20932:18;20926:25;20916:35;;20651:306;;;;;:::o
Swarm Source
ipfs://798c6ebfc5ece0695f91430edb722b95b44c3b1e6f5be61e37f6713fbb67ef60
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.