ETH Price: $2,391.49 (-0.48%)

Contract

0xf2919b9c55F28c2BC64df776e9e08eE810a168E3
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $2,391.49/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer185424872023-11-10 15:37:47299 days ago1699630667IN
0xf2919b9c...810a168E3
0 ETH0.0031918745.9665704
Owner Update Buy...185424442023-11-10 15:29:11299 days ago1699630151IN
0xf2919b9c...810a168E3
0 ETH0.0018505952.4010384
Owner Set Limits185424432023-11-10 15:28:59299 days ago1699630139IN
0xf2919b9c...810a168E3
0 ETH0.0021612351.72160343
Owner Update Sel...185424352023-11-10 15:27:23299 days ago1699630043IN
0xf2919b9c...810a168E3
0 ETH0.0020227145.73691019
Owner Update Buy...185424322023-11-10 15:26:47299 days ago1699630007IN
0xf2919b9c...810a168E3
0 ETH0.0026705143.57817877
Approve185424272023-11-10 15:25:47299 days ago1699629947IN
0xf2919b9c...810a168E3
0 ETH0.0023464750.46839508
Approve185424222023-11-10 15:24:47299 days ago1699629887IN
0xf2919b9c...810a168E3
0 ETH0.0024551352.79181789
Owner Set Limits185424212023-11-10 15:24:35299 days ago1699629875IN
0xf2919b9c...810a168E3
0 ETH0.0018412750.91729798
Owner Set Target...185424172023-11-10 15:23:47299 days ago1699629827IN
0xf2919b9c...810a168E3
0 ETH0.0014195449.5356602
Approve185424132023-11-10 15:22:59299 days ago1699629779IN
0xf2919b9c...810a168E3
0 ETH0.0023782551.15182921
Approve185424132023-11-10 15:22:59299 days ago1699629779IN
0xf2919b9c...810a168E3
0 ETH0.0035870977.15182921
Approve185424112023-11-10 15:22:35299 days ago1699629755IN
0xf2919b9c...810a168E3
0 ETH0.0022020747.35024338
Approve185424112023-11-10 15:22:35299 days ago1699629755IN
0xf2919b9c...810a168E3
0 ETH0.0030848866.35024338
Control Anti Sni...185424102023-11-10 15:22:23299 days ago1699629743IN
0xf2919b9c...810a168E3
0 ETH0.0013560447.19645093
Owner Set Initia...185423982023-11-10 15:19:59299 days ago1699629599IN
0xf2919b9c...810a168E3
0 ETH0.0013012445.7716711
Approve185423512023-11-10 15:10:35299 days ago1699629035IN
0xf2919b9c...810a168E3
0 ETH0.002051644.11494739
0x60806040185423242023-11-10 15:05:11299 days ago1699628711IN
 Create: Zenithra
0 ETH0.2331514547.13004766

Latest 8 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
185424432023-11-10 15:28:59299 days ago1699630139
0xf2919b9c...810a168E3
0.00874311 ETH
185424432023-11-10 15:28:59299 days ago1699630139
0xf2919b9c...810a168E3
0.00874311 ETH
185424432023-11-10 15:28:59299 days ago1699630139
0xf2919b9c...810a168E3
0.00437155 ETH
185424432023-11-10 15:28:59299 days ago1699630139
0xf2919b9c...810a168E3
0.02185779 ETH
185424202023-11-10 15:24:23299 days ago1699629863
0xf2919b9c...810a168E3
0.00525972 ETH
185424202023-11-10 15:24:23299 days ago1699629863
0xf2919b9c...810a168E3
0.00788958 ETH
185424202023-11-10 15:24:23299 days ago1699629863
0xf2919b9c...810a168E3
0.00197239 ETH
185424202023-11-10 15:24:23299 days ago1699629863
0xf2919b9c...810a168E3
0.0151217 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Zenithra

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-10
*/

/**
Zenithra - Insure, Interact, Invest

https://zenithra.finance/
https://t.me/ZenithraFinance
https://docs.zenithra.finance/
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

interface ERC20 {
    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 getOwner() external view returns (address);
    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);
}

/**
 * Basic access control mechanism
 */

abstract contract Ownable {
    address internal owner;
    address private _previousOwner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!YOU ARE NOT THE OWNER"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }
}

/**
 * Router Interfaces
 */

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

/**
 * Token Contract Code
 */

contract Zenithra is ERC20, Ownable {
    // -- Mappings --
    mapping(address => bool) public _blacklisted;
    mapping(address => bool) private _whitelisted;
    mapping(address => bool) public _automatedMarketMakers;
    mapping(address => bool) private _isLimitless;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    // -- Basic Token Information --
    string constant _name = "Zenithra";
    string constant _symbol = "ZTF";
    uint8 constant _decimals = 18;
    uint256 private _totalSupply = 1_000_000 * 10 ** _decimals;


    // -- Transaction & Wallet Limits --
    uint256 public maxBuyPercentage;
    uint256 public maxSellPercentage;
    uint256 public maxWalletPercentage;

    uint256 private maxBuyAmount;
    uint256 private maxSellAmount;
    uint256 private maxWalletAmount;

    // -- Contract Variables --
    address[] private sniperList;
    uint256 tokenTax;
    uint256 transferFee;
    uint256 private targetLiquidity = 50;

    // -- Fee Structs --
    struct BuyFee {
        uint256 liquidityFee;
        uint256 insurancefee;
        uint256 marketingfee;
        uint256 total;
    }

    struct SellFee {
        uint256 liquidityFee;
        uint256 insurancefee;
        uint256 marketingfee;
        uint256 total;
    }

    BuyFee public buyFee;
    SellFee public sellFee;

    // -- Addresses --
    address public _exchangeRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;

    address public insuranceReciever = 0x8371572FFc59Ae42fF6840A4295f8c94711D30aA;
    address public marketingReceiver = 0x8371572FFc59Ae42fF6840A4295f8c94711D30aA;

    IDEXRouter public router;
    address public pair;

    // -- Misc Variables --
    bool public antiSniperMode = true;  // AntiSniper active at launch by default
    bool private _addingLP;
    bool private inSwap;
    bool private _initialDistributionFinished;

    // -- Swap Variables --
    bool public swapEnabled = true;
    uint256 private swapThreshold = _totalSupply / 1000;
    
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () Ownable(msg.sender) {

        // Initialize Pancake Pair
        router = IDEXRouter(_exchangeRouterAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        _automatedMarketMakers[pair]=true;
        
        // Set Initial Buy Fees -- Base 1000 Set 10 for 1%
        buyFee.liquidityFee = 0; buyFee.insurancefee = 30; buyFee.marketingfee = 20;
        buyFee.total = buyFee.liquidityFee + buyFee.insurancefee + buyFee.marketingfee;

        // Set Initial Sell Fees -- Base 1000 Set 10 for 1%
        sellFee.liquidityFee = 30; sellFee.insurancefee = 30; sellFee.marketingfee = 20;
        sellFee.total = sellFee.liquidityFee + sellFee.insurancefee + sellFee.marketingfee;

        // Set Initial Buy, Sell & Wallet Limits -- Base 1000 Set 10 for 1%
        maxBuyPercentage = 20; maxBuyAmount = _totalSupply /1000 * maxBuyPercentage;
        maxSellPercentage = 10; maxSellAmount = _totalSupply /1000 * maxSellPercentage;
        maxWalletPercentage = 20; maxWalletAmount = _totalSupply /1000 * maxWalletPercentage;

        // Exclude from fees & limits
        _isLimitless[owner] = _isLimitless[address(this)] = true;

        // Mint _totalSupply to owner address
        _balances[owner] = _totalSupply;
        emit Transfer(address(0x0), owner, _totalSupply);
    }


    ///////////////////////////////////////// -- Setter Functions -- /////////////////////////////////////////

        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerSetLimits(uint256 _maxBuyPercentage, uint256 _maxSellPercentage, uint256 _maxWalletPercentage) external onlyOwner {
        maxBuyAmount = _totalSupply /1000 * _maxBuyPercentage;
        maxSellAmount = _totalSupply /1000 * _maxSellPercentage;
        maxWalletAmount = _totalSupply /1000 * _maxWalletPercentage;
    }

    function ownerSetInitialDistributionFinished() external onlyOwner {
        _initialDistributionFinished = true;
    }

    function ownerSetLimitlessAddress(address _addr, bool _status) external onlyOwner {
        _isLimitless[_addr] = _status;
    }

    function ownerSetSwapBackSettings(bool _enabled, uint256 _percentageBase1000) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _totalSupply / 1000 * _percentageBase1000;
    }

    function ownerSetTargetLiquidity(uint256 target) external onlyOwner {
        targetLiquidity = target;
    }
       // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateBuyFees (uint256 _liquidityFee, uint256 _insurancefee, uint256 _marketingfee) external onlyOwner {
        buyFee.liquidityFee = _liquidityFee;
        buyFee.insurancefee = _insurancefee;
        buyFee.marketingfee = _marketingfee;
        buyFee.total = buyFee.liquidityFee + buyFee.insurancefee + buyFee.marketingfee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateSellFees (uint256 _liquidityFee, uint256 _insurancefee, uint256 _marketingfee) external onlyOwner {
        sellFee.liquidityFee = _liquidityFee;
        sellFee.insurancefee = _insurancefee;
        sellFee.marketingfee = _marketingfee;
        sellFee.total = sellFee.liquidityFee + sellFee.insurancefee + sellFee.marketingfee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateTransferFee (uint256 _transferFee) external onlyOwner {
        transferFee = _transferFee;
    }

    function ownerSetReceivers (address _insurance, address _marketing) external onlyOwner {
        insuranceReciever = _insurance;
        marketingReceiver = _marketing;
    }

    function reverseSniper(address sniper) external onlyOwner {
        _blacklisted[sniper] = false;
    }

    function addNewMarketMaker(address newAMM) external onlyOwner {
        _automatedMarketMakers[newAMM]=true;
        _isLimitless[newAMM]=true;
    }

    function controlAntiSniperMode(bool value) external onlyOwner {
        antiSniperMode = value;
    }

    function clearStuckBalance() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner).transfer(contractETHBalance);
    }
    ///////////////////////////////////////// -- Getter Functions -- /////////////////////////////////////////

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }

    function showSniperList() public view returns(address[] memory){
        return sniperList;
    }

    function showSniperListLength() public view returns(uint256){
        return sniperList.length;
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy * (balanceOf(pair) * (2)) / (getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

    ///////////////////////////////////////// -- Internal Functions -- /////////////////////////////////////////

    function _transfer(address sender,address recipient,uint256 amount) private {
        require(sender!=address(0)&&recipient!=address(0),"Cannot be address(0).");
        bool isBuy=_automatedMarketMakers[sender];
        bool isSell=_automatedMarketMakers[recipient];
        bool isExcluded=_isLimitless[sender]||_isLimitless[recipient]||_addingLP;

        if(isExcluded)_transferExcluded(sender,recipient,amount);
        else { require(_initialDistributionFinished);
            // Punish for Snipers
            if(antiSniperMode)_punishSnipers(sender,recipient,amount);
            // Buy Tokens
            else if(isBuy)_buyTokens(sender,recipient,amount);
            // Sell Tokens
            else if(isSell) {
                // Swap & Liquify
                if (shouldSwapBack()) {swapBack();}
                _sellTokens(sender,recipient,amount);
            } else {
                // P2P Transfer
                require(!_blacklisted[sender]&&!_blacklisted[recipient]);
                require(balanceOf(recipient)+amount<=maxWalletAmount);
                _P2PTransfer(sender,recipient,amount);
            }
        }
    }

    function _punishSnipers(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[recipient]);
        require(amount <= maxBuyAmount, "Buy exceeds limit");
        tokenTax = amount*90/100;
        _blacklisted[recipient]=true;
        sniperList.push(address(recipient));
        _transferIncluded(sender,recipient,amount,tokenTax);
    }

    function _buyTokens(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[recipient]);
        require(amount <= maxBuyAmount, "Buy exceeds limit");
        if(!_whitelisted[recipient]){
        tokenTax = amount*buyFee.total/1000;}
        else tokenTax = 0;
        _transferIncluded(sender,recipient,amount,tokenTax);
    }
    function _sellTokens(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[sender]);
        require(amount <= maxSellAmount);
        if(!_whitelisted[sender]){
        tokenTax = amount*sellFee.total/1000;}
        else tokenTax = 0;
        _transferIncluded(sender,recipient,amount,tokenTax);
    }

    function _P2PTransfer(address sender,address recipient,uint256 amount) private {
        tokenTax = amount * transferFee/1000;
        if( tokenTax > 0) {_transferIncluded(sender,recipient,amount,tokenTax);}
        else {_transferExcluded(sender,recipient,amount);}
    }

    function _transferExcluded(address sender,address recipient,uint256 amount) private {
        _updateBalance(sender,_balances[sender]-amount);
        _updateBalance(recipient,_balances[recipient]+amount);
        emit Transfer(sender,recipient,amount);
    }

    function _transferIncluded(address sender,address recipient,uint256 amount,uint256 taxAmount) private {
        uint256 newAmount = amount-tokenTax;
        _updateBalance(sender,_balances[sender]-amount);
        _updateBalance(address(this),_balances[address(this)]+taxAmount);
        _updateBalance(recipient,_balances[recipient]+newAmount);
        emit Transfer(sender,recipient,newAmount);
        emit Transfer(sender,address(this),taxAmount);
    }

    function _updateBalance(address account,uint256 newBalance) private {
        _balances[account] = newBalance;
    }

    function shouldSwapBack() private view returns (bool) {
        return
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }   

    function swapBack() private swapping {
        uint256 toSwap = balanceOf(address(this));

        uint256 totalLPTokens=toSwap*(sellFee.liquidityFee + buyFee.liquidityFee)/(sellFee.total + buyFee.total);
        uint256 tokensLeft=toSwap-totalLPTokens;
        uint256 LPTokens=totalLPTokens/2;
        uint256 LPETHTokens=totalLPTokens-LPTokens;
        toSwap=tokensLeft+LPETHTokens;
        uint256 oldETH=address(this).balance;
        _swapTokensForETH(toSwap);
        uint256 newETH=address(this).balance-oldETH;
        uint256 LPETH=(newETH*LPETHTokens)/toSwap;
        _addLiquidity(LPTokens,LPETH);
        uint256 remainingETH=address(this).balance-oldETH;
        _distributeETH(remainingETH);
    }

    function _distributeETH(uint256 remainingETH) private {
        uint256 marketingfee = (buyFee.marketingfee + sellFee.marketingfee);
        uint256 insurancefee = (buyFee.insurancefee + sellFee.insurancefee);
        uint256 totalFee = (marketingfee + insurancefee);

        uint256 amountETHmarketing = remainingETH * (marketingfee) / (totalFee);
        uint256 amountETHinsurance = remainingETH * (insurancefee) / (totalFee);

        if(amountETHinsurance > 0){
        (bool insuranceSuccess, /* bytes memory data */) = payable(insuranceReciever).call{value: amountETHinsurance, gas: 30000}("");
        require(insuranceSuccess, "receiver rejected ETH transfer"); }
        
        if(amountETHmarketing > 0){
        (bool marketingSuccess, /* bytes memory data */) = payable(marketingReceiver).call{value: amountETHmarketing, gas: 30000}("");
        require(marketingSuccess, "receiver rejected ETH transfer"); }
    }

    function _swapTokensForETH(uint256 amount) private {
        address[] memory path=new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _addLiquidity(uint256 amountTokens,uint256 amountETH) private {
        _addingLP=true;
        router.addLiquidityETH{value: amountETH}(
            address(this),
            amountTokens,
            0,
            0,
            marketingReceiver,
            block.timestamp
        );
        _addingLP=false;
    }

/**
 * IERC20
 */

    receive() external payable { }

    function totalSupply() external view 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 getOwner() external view override returns (address) { return owner; }
    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) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        uint256 allowance_ = _allowances[sender][msg.sender];
        require(allowance_ >= amount);
        
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        _transfer(sender, recipient, amount);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_automatedMarketMakers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_exchangeRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAMM","type":"address"}],"name":"addNewMarketMaker","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":[],"name":"antiSniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"insurancefee","type":"uint256"},{"internalType":"uint256","name":"marketingfee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"controlAntiSniperMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"insuranceReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"ownerSetInitialDistributionFinished","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ownerSetLimitlessAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxSellPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxWalletPercentage","type":"uint256"}],"name":"ownerSetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_insurance","type":"address"},{"internalType":"address","name":"_marketing","type":"address"}],"name":"ownerSetReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentageBase1000","type":"uint256"}],"name":"ownerSetSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"}],"name":"ownerSetTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_insurancefee","type":"uint256"},{"internalType":"uint256","name":"_marketingfee","type":"uint256"}],"name":"ownerUpdateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_insurancefee","type":"uint256"},{"internalType":"uint256","name":"_marketingfee","type":"uint256"}],"name":"ownerUpdateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"ownerUpdateTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"reverseSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"insurancefee","type":"uint256"},{"internalType":"uint256","name":"marketingfee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000523565b6200002190620f42406200053b565b60088190556032601255601b8054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031991821617909155601c8054738371572ffc59ae42ff6840a4295f8c94711d30aa9083168117909155601d8054909216179055601f805464ff000000ff60a01b19167801000000010000000000000000000000000000000000000000179055620000ba906103e8906200055d565b602055348015620000ca57600080fd5b5060008054336001600160a01b031991821617909155601b54601e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000137573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015d919062000580565b6001600160a01b031663c9c65396601e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e5919062000580565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000232573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000258919062000580565b601f80546001600160a01b0319166001600160a01b03928316178155306000908152600760209081526040808320601e80548716855290835281842060001990559354909416825260049052918220805460ff1916600117905560138290556014818155601581905591620002ce9190620005ab565b620002da9190620005ab565b601655601e601781905560188190556014601981905590620002fd9080620005ab565b620003099190620005ab565b601a556014600981905560085462000325906103e8906200055d565b6200033191906200053b565b600c55600a8080556008546200034b906103e8906200055d565b6200035791906200053b565b600d556014600b81905560085462000373906103e8906200055d565b6200037f91906200053b565b600e553060009081526005602090815260408083208054600160ff19918216811790925584546001600160a01b039081168652838620805490921690921790556008548454821685526006845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005c6565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004655781600019048211156200044957620004496200040e565b808516156200045757918102915b93841c939080029062000429565b509250929050565b6000826200047e575060016200051d565b816200048d575060006200051d565b8160018114620004a65760028114620004b157620004d1565b60019150506200051d565b60ff841115620004c557620004c56200040e565b50506001821b6200051d565b5060208310610133831016604e8410600b8410161715620004f6575081810a6200051d565b62000502838362000424565b80600019048211156200051957620005196200040e565b0290505b92915050565b60006200053460ff8416836200046d565b9392505050565b60008160001904831182151516156200055857620005586200040e565b500290565b6000826200057b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200059357600080fd5b81516001600160a01b03811681146200053457600080fd5b60008219821115620005c157620005c16200040e565b500190565b61201d80620005d66000396000f3fe6080604052600436106102765760003560e01c80636390aeeb1161014f578063a5949bcf116100c1578063dca3cef11161007a578063dca3cef1146107d8578063dd62ed3e146107f8578063e06509971461083e578063e5a772d214610854578063f2fde38b14610874578063f887ea401461089457600080fd5b8063a5949bcf14610722578063a8aa1b3114610742578063a9059cbb14610762578063b46ba24b14610782578063b704a9f6146107a2578063d51ed1c8146107b857600080fd5b806383bd84851161011357806383bd84851461065857806387cfc49314610678578063893d20e8146106985780638ca42e4e146106b65780638ee41ca8146106d657806395d89b41146106f657600080fd5b80636390aeeb146105a75780636ddd1713146105bc57806370a08231146105dd578063715018a6146106135780637a6d69b41461062857600080fd5b80632d3b4047116101e857806347375a37116101ac57806347375a37146104fb5780634c5d87101461051057806352aae9dd1461053057806353cd621014610550578063599ca3971461057157806359d3cac21461058757600080fd5b80632d3b4047146104585780632f54bf6e14610478578063313ce567146104a7578063364333f4146104c357806347062402146104d857600080fd5b806318160ddd1161023a57806318160ddd146103675780631ad79535146103865780631ca0b1d0146103be57806323b872dd146103e05780632b112e49146104005780632b14ca561461041557600080fd5b806306fdde0314610282578063095ea7b3146102c55780630c5b1d93146102f55780630cb23d86146103175780631161ae391461034757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b506040805180820190915260088152675a656e697468726160c01b60208201525b6040516102bc9190611c1e565b60405180910390f35b3480156102d157600080fd5b506102e56102e0366004611c8b565b6108b4565b60405190151581526020016102bc565b34801561030157600080fd5b50610315610310366004611ccc565b610920565b005b34801561032357600080fd5b506102e5610332366004611d01565b60046020526000908152604090205460ff1681565b34801561035357600080fd5b506102e5610362366004611d25565b61097e565b34801561037357600080fd5b506008545b6040519081526020016102bc565b34801561039257600080fd5b50601c546103a6906001600160a01b031681565b6040516001600160a01b0390911681526020016102bc565b3480156103ca57600080fd5b506103d3610992565b6040516102bc9190611d8b565b3480156103ec57600080fd5b506102e56103fb366004611d9e565b6109f4565b34801561040c57600080fd5b50610378610abb565b34801561042157600080fd5b50601754601854601954601a546104389392919084565b6040805194855260208501939093529183015260608201526080016102bc565b34801561046457600080fd5b50601b546103a6906001600160a01b031681565b34801561048457600080fd5b506102e5610493366004611d01565b6000546001600160a01b0391821691161490565b3480156104b357600080fd5b50604051601281526020016102bc565b3480156104cf57600080fd5b50610315610b2b565b3480156104e457600080fd5b506013546014546015546016546104389392919084565b34801561050757600080fd5b50610315610b94565b34801561051c57600080fd5b5061031561052b366004611ddf565b610bd3565b34801561053c57600080fd5b5061031561054b366004611e0b565b610c5e565b34801561055c57600080fd5b50601f546102e590600160a01b900460ff1681565b34801561057d57600080fd5b50610378600b5481565b34801561059357600080fd5b506103156105a2366004611ddf565b610c8d565b3480156105b357600080fd5b50600f54610378565b3480156105c857600080fd5b50601f546102e590600160c01b900460ff1681565b3480156105e957600080fd5b506103786105f8366004611d01565b6001600160a01b031660009081526006602052604090205490565b34801561061f57600080fd5b50610315610ce3565b34801561063457600080fd5b506102e5610643366004611d01565b60026020526000908152604090205460ff1681565b34801561066457600080fd5b50610315610673366004611e24565b610d57565b34801561068457600080fd5b50610315610693366004611d01565b610d9f565b3480156106a457600080fd5b506000546001600160a01b03166103a6565b3480156106c257600080fd5b506103156106d1366004611e0b565b610dea565b3480156106e257600080fd5b506103156106f1366004611e3f565b610e19565b34801561070257600080fd5b506040805180820190915260038152622d2a2360e91b60208201526102af565b34801561072e57600080fd5b50601d546103a6906001600160a01b031681565b34801561074e57600080fd5b50601f546103a6906001600160a01b031681565b34801561076e57600080fd5b506102e561077d366004611c8b565b610e7d565b34801561078e57600080fd5b5061031561079d366004611ddf565b610e93565b3480156107ae57600080fd5b50610378600a5481565b3480156107c457600080fd5b506103786107d3366004611e0b565b610ee9565b3480156107e457600080fd5b506103156107f3366004611e5b565b610f33565b34801561080457600080fd5b50610378610813366004611e5b565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561084a57600080fd5b5061037860095481565b34801561086057600080fd5b5061031561086f366004611d01565b610f8b565b34801561088057600080fd5b5061031561088f366004611d01565b610ff1565b3480156108a057600080fd5b50601e546103a6906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061090f9086815260200190565b60405180910390a350600192915050565b6000546001600160a01b031633146109535760405162461bcd60e51b815260040161094a90611e94565b60405180910390fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b60008261098a83610ee9565b119392505050565b6060600f8054806020026020016040519081016040528092919081815260200182805480156109ea57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109cc575b5050505050905090565b6001600160a01b038316600090815260076020908152604080832033845290915281205482811015610a2557600080fd5b6001600160a01b038516600090815260076020908152604080832033845290915290205460001914610aa5576001600160a01b0385166000908152600760209081526040808320338452909152902054610a80908490611eda565b6001600160a01b03861660009081526007602090815260408083203384529091529020555b610ab08585856110db565b506001949350505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600854919291610b1c9190611eda565b610b269190611eda565b905090565b6000546001600160a01b03163314610b555760405162461bcd60e51b815260040161094a90611e94565b6000805460405147926001600160a01b039092169183156108fc02918491818181858888f19350505050158015610b90573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610bbe5760405162461bcd60e51b815260040161094a90611e94565b601f805460ff60b81b1916600160b81b179055565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b815260040161094a90611e94565b826103e8600854610c0e9190611ef1565b610c189190611f13565b600c556008548290610c2d906103e890611ef1565b610c379190611f13565b600d556008548190610c4c906103e890611ef1565b610c569190611f13565b600e55505050565b6000546001600160a01b03163314610c885760405162461bcd60e51b815260040161094a90611e94565b601255565b6000546001600160a01b03163314610cb75760405162461bcd60e51b815260040161094a90611e94565b60178390556018829055601981905580610cd18385611f32565b610cdb9190611f32565b601a55505050565b6000546001600160a01b03163314610d0d5760405162461bcd60e51b815260040161094a90611e94565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d815760405162461bcd60e51b815260040161094a90611e94565b601f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610dc95760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b03166000908152600260205260409020805460ff19169055565b6000546001600160a01b03163314610e145760405162461bcd60e51b815260040161094a90611e94565b601155565b6000546001600160a01b03163314610e435760405162461bcd60e51b815260040161094a90611e94565b601f805460ff60c01b1916600160c01b841515021790556008548190610e6c906103e890611ef1565b610e769190611f13565b6020555050565b6000610e8a3384846110db565b50600192915050565b6000546001600160a01b03163314610ebd5760405162461bcd60e51b815260040161094a90611e94565b60138390556014829055601581905580610ed78385611f32565b610ee19190611f32565b601655505050565b6000610ef3610abb565b601f546001600160a01b0316600090815260066020526040902054610f19906002611f13565b610f239084611f13565b610f2d9190611ef1565b92915050565b6000546001600160a01b03163314610f5d5760405162461bcd60e51b815260040161094a90611e94565b601c80546001600160a01b039384166001600160a01b031991821617909155601d8054929093169116179055565b6000546001600160a01b03163314610fb55760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b031660009081526004602090815260408083208054600160ff1991821681179092556005909352922080549091169091179055565b6000546001600160a01b0316331461101b5760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b0381166110805760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161094a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316158015906110fb57506001600160a01b03821615155b61113f5760405162461bcd60e51b815260206004820152601560248201527421b0b73737ba1031329030b2323932b9b99418149760591b604482015260640161094a565b6001600160a01b03808416600081815260046020908152604080832054948716835280832054938352600590915281205460ff9384169392831692168061119e57506001600160a01b03851660009081526005602052604090205460ff165b806111b25750601f54600160a81b900460ff165b905080156111ca576111c58686866112ca565b6112c2565b601f54600160b81b900460ff166111e057600080fd5b601f54600160a01b900460ff16156111fd576111c586868661138c565b821561120e576111c586868661148e565b81156112345761121c611551565b1561122957611229611599565b6111c5868686611699565b6001600160a01b03861660009081526002602052604090205460ff1615801561127657506001600160a01b03851660009081526002602052604090205460ff16155b61127f57600080fd5b600e54846112a2876001600160a01b031660009081526006602052604090205490565b6112ac9190611f32565b11156112b757600080fd5b6112c28686866116ff565b505050505050565b6001600160a01b0383166000908152600660205260409020546113109084906112f4908490611eda565b6001600160a01b03909116600090815260066020526040902055565b6001600160a01b03821660009081526006602052604090205461133a9083906112f4908490611f32565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161137f91815260200190565b60405180910390a3505050565b6001600160a01b03821660009081526002602052604090205460ff16156113b257600080fd5b600c548111156113f85760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161094a565b606461140582605a611f13565b61140f9190611ef1565b60109081556001600160a01b0383166000818152600260205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319169091179055546114899084908490849061173d565b505050565b6001600160a01b03821660009081526002602052604090205460ff16156114b457600080fd5b600c548111156114fa5760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161094a565b6001600160a01b03821660009081526003602052604090205460ff1661153d576016546103e89061152b9083611f13565b6115359190611ef1565b601055611543565b60006010555b61148983838360105461173d565b601f54600090600160b01b900460ff161580156115775750601f54600160c01b900460ff165b8015610b26575050602080543060009081526006909252604090912054101590565b601f805460ff60b01b1916600160b01b17905530600090815260066020526040812054601654601a549192506000916115d29190611f32565b6013546017546115e29190611f32565b6115ec9084611f13565b6115f69190611ef1565b905060006116048284611eda565b90506000611613600284611ef1565b905060006116218285611eda565b905061162d8184611f32565b94504761163986611858565b60006116458247611eda565b90506000876116548584611f13565b61165e9190611ef1565b905061166a8582611991565b60006116768447611eda565b905061168181611a4d565b5050601f805460ff60b01b1916905550505050505050565b6001600160a01b03831660009081526002602052604090205460ff16156116bf57600080fd5b600d548111156116ce57600080fd5b6001600160a01b03831660009081526003602052604090205460ff1661153d57601a546103e89061152b9083611f13565b6103e8601154826117109190611f13565b61171a9190611ef1565b6010819055156117325761148983838360105461173d565b6114898383836112ca565b60006010548361174d9190611eda565b6001600160a01b03861660009081526006602052604090205490915061177a9086906112f4908690611eda565b3060008181526006602052604090205461179a91906112f4908590611f32565b6001600160a01b0384166000908152600660205260409020546117c49085906112f4908490611f32565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161180991815260200190565b60405180910390a360405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061188d5761188d611f4a565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190a9190611f60565b8160018151811061191d5761191d611f4a565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac94790611963908590600090869030904290600401611f7d565b600060405180830381600087803b15801561197d57600080fd5b505af11580156112c2573d6000803e3d6000fd5b601f805460ff60a81b1916600160a81b179055601e54601d5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611a14573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a399190611fb9565b5050601f805460ff60a81b19169055505050565b601954601554600091611a5f91611f32565b601854601454919250600091611a759190611f32565b90506000611a838284611f32565b9050600081611a928587611f13565b611a9c9190611ef1565b9050600082611aab8588611f13565b611ab59190611ef1565b90508015611b6757601c546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611b0f576040519150601f19603f3d011682016040523d82523d6000602084013e611b14565b606091505b5050905080611b655760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161094a565b505b81156112c257601d546040516000916001600160a01b03169061753090859084818181858888f193505050503d8060008114611bbf576040519150601f19603f3d011682016040523d82523d6000602084013e611bc4565b606091505b5050905080611c155760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161094a565b50505050505050565b600060208083528351808285015260005b81811015611c4b57858101830151858201604001528201611c2f565b81811115611c5d576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c8857600080fd5b50565b60008060408385031215611c9e57600080fd5b8235611ca981611c73565b946020939093013593505050565b80358015158114611cc757600080fd5b919050565b60008060408385031215611cdf57600080fd5b8235611cea81611c73565b9150611cf860208401611cb7565b90509250929050565b600060208284031215611d1357600080fd5b8135611d1e81611c73565b9392505050565b60008060408385031215611d3857600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015611d805781516001600160a01b031687529582019590820190600101611d5b565b509495945050505050565b602081526000611d1e6020830184611d47565b600080600060608486031215611db357600080fd5b8335611dbe81611c73565b92506020840135611dce81611c73565b929592945050506040919091013590565b600080600060608486031215611df457600080fd5b505081359360208301359350604090920135919050565b600060208284031215611e1d57600080fd5b5035919050565b600060208284031215611e3657600080fd5b611d1e82611cb7565b60008060408385031215611e5257600080fd5b611ca983611cb7565b60008060408385031215611e6e57600080fd5b8235611e7981611c73565b91506020830135611e8981611c73565b809150509250929050565b60208082526016908201527510aca7aa9020a922902727aa102a24229027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015611eec57611eec611ec4565b500390565b600082611f0e57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f2d57611f2d611ec4565b500290565b60008219821115611f4557611f45611ec4565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f7257600080fd5b8151611d1e81611c73565b85815284602082015260a060408201526000611f9c60a0830186611d47565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215611fce57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212207414dbfd6925cc8bae780a2f837de22853e4d31505394625ade06051359e896664736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102765760003560e01c80636390aeeb1161014f578063a5949bcf116100c1578063dca3cef11161007a578063dca3cef1146107d8578063dd62ed3e146107f8578063e06509971461083e578063e5a772d214610854578063f2fde38b14610874578063f887ea401461089457600080fd5b8063a5949bcf14610722578063a8aa1b3114610742578063a9059cbb14610762578063b46ba24b14610782578063b704a9f6146107a2578063d51ed1c8146107b857600080fd5b806383bd84851161011357806383bd84851461065857806387cfc49314610678578063893d20e8146106985780638ca42e4e146106b65780638ee41ca8146106d657806395d89b41146106f657600080fd5b80636390aeeb146105a75780636ddd1713146105bc57806370a08231146105dd578063715018a6146106135780637a6d69b41461062857600080fd5b80632d3b4047116101e857806347375a37116101ac57806347375a37146104fb5780634c5d87101461051057806352aae9dd1461053057806353cd621014610550578063599ca3971461057157806359d3cac21461058757600080fd5b80632d3b4047146104585780632f54bf6e14610478578063313ce567146104a7578063364333f4146104c357806347062402146104d857600080fd5b806318160ddd1161023a57806318160ddd146103675780631ad79535146103865780631ca0b1d0146103be57806323b872dd146103e05780632b112e49146104005780632b14ca561461041557600080fd5b806306fdde0314610282578063095ea7b3146102c55780630c5b1d93146102f55780630cb23d86146103175780631161ae391461034757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b506040805180820190915260088152675a656e697468726160c01b60208201525b6040516102bc9190611c1e565b60405180910390f35b3480156102d157600080fd5b506102e56102e0366004611c8b565b6108b4565b60405190151581526020016102bc565b34801561030157600080fd5b50610315610310366004611ccc565b610920565b005b34801561032357600080fd5b506102e5610332366004611d01565b60046020526000908152604090205460ff1681565b34801561035357600080fd5b506102e5610362366004611d25565b61097e565b34801561037357600080fd5b506008545b6040519081526020016102bc565b34801561039257600080fd5b50601c546103a6906001600160a01b031681565b6040516001600160a01b0390911681526020016102bc565b3480156103ca57600080fd5b506103d3610992565b6040516102bc9190611d8b565b3480156103ec57600080fd5b506102e56103fb366004611d9e565b6109f4565b34801561040c57600080fd5b50610378610abb565b34801561042157600080fd5b50601754601854601954601a546104389392919084565b6040805194855260208501939093529183015260608201526080016102bc565b34801561046457600080fd5b50601b546103a6906001600160a01b031681565b34801561048457600080fd5b506102e5610493366004611d01565b6000546001600160a01b0391821691161490565b3480156104b357600080fd5b50604051601281526020016102bc565b3480156104cf57600080fd5b50610315610b2b565b3480156104e457600080fd5b506013546014546015546016546104389392919084565b34801561050757600080fd5b50610315610b94565b34801561051c57600080fd5b5061031561052b366004611ddf565b610bd3565b34801561053c57600080fd5b5061031561054b366004611e0b565b610c5e565b34801561055c57600080fd5b50601f546102e590600160a01b900460ff1681565b34801561057d57600080fd5b50610378600b5481565b34801561059357600080fd5b506103156105a2366004611ddf565b610c8d565b3480156105b357600080fd5b50600f54610378565b3480156105c857600080fd5b50601f546102e590600160c01b900460ff1681565b3480156105e957600080fd5b506103786105f8366004611d01565b6001600160a01b031660009081526006602052604090205490565b34801561061f57600080fd5b50610315610ce3565b34801561063457600080fd5b506102e5610643366004611d01565b60026020526000908152604090205460ff1681565b34801561066457600080fd5b50610315610673366004611e24565b610d57565b34801561068457600080fd5b50610315610693366004611d01565b610d9f565b3480156106a457600080fd5b506000546001600160a01b03166103a6565b3480156106c257600080fd5b506103156106d1366004611e0b565b610dea565b3480156106e257600080fd5b506103156106f1366004611e3f565b610e19565b34801561070257600080fd5b506040805180820190915260038152622d2a2360e91b60208201526102af565b34801561072e57600080fd5b50601d546103a6906001600160a01b031681565b34801561074e57600080fd5b50601f546103a6906001600160a01b031681565b34801561076e57600080fd5b506102e561077d366004611c8b565b610e7d565b34801561078e57600080fd5b5061031561079d366004611ddf565b610e93565b3480156107ae57600080fd5b50610378600a5481565b3480156107c457600080fd5b506103786107d3366004611e0b565b610ee9565b3480156107e457600080fd5b506103156107f3366004611e5b565b610f33565b34801561080457600080fd5b50610378610813366004611e5b565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561084a57600080fd5b5061037860095481565b34801561086057600080fd5b5061031561086f366004611d01565b610f8b565b34801561088057600080fd5b5061031561088f366004611d01565b610ff1565b3480156108a057600080fd5b50601e546103a6906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061090f9086815260200190565b60405180910390a350600192915050565b6000546001600160a01b031633146109535760405162461bcd60e51b815260040161094a90611e94565b60405180910390fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b60008261098a83610ee9565b119392505050565b6060600f8054806020026020016040519081016040528092919081815260200182805480156109ea57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109cc575b5050505050905090565b6001600160a01b038316600090815260076020908152604080832033845290915281205482811015610a2557600080fd5b6001600160a01b038516600090815260076020908152604080832033845290915290205460001914610aa5576001600160a01b0385166000908152600760209081526040808320338452909152902054610a80908490611eda565b6001600160a01b03861660009081526007602090815260408083203384529091529020555b610ab08585856110db565b506001949350505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600854919291610b1c9190611eda565b610b269190611eda565b905090565b6000546001600160a01b03163314610b555760405162461bcd60e51b815260040161094a90611e94565b6000805460405147926001600160a01b039092169183156108fc02918491818181858888f19350505050158015610b90573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610bbe5760405162461bcd60e51b815260040161094a90611e94565b601f805460ff60b81b1916600160b81b179055565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b815260040161094a90611e94565b826103e8600854610c0e9190611ef1565b610c189190611f13565b600c556008548290610c2d906103e890611ef1565b610c379190611f13565b600d556008548190610c4c906103e890611ef1565b610c569190611f13565b600e55505050565b6000546001600160a01b03163314610c885760405162461bcd60e51b815260040161094a90611e94565b601255565b6000546001600160a01b03163314610cb75760405162461bcd60e51b815260040161094a90611e94565b60178390556018829055601981905580610cd18385611f32565b610cdb9190611f32565b601a55505050565b6000546001600160a01b03163314610d0d5760405162461bcd60e51b815260040161094a90611e94565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d815760405162461bcd60e51b815260040161094a90611e94565b601f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610dc95760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b03166000908152600260205260409020805460ff19169055565b6000546001600160a01b03163314610e145760405162461bcd60e51b815260040161094a90611e94565b601155565b6000546001600160a01b03163314610e435760405162461bcd60e51b815260040161094a90611e94565b601f805460ff60c01b1916600160c01b841515021790556008548190610e6c906103e890611ef1565b610e769190611f13565b6020555050565b6000610e8a3384846110db565b50600192915050565b6000546001600160a01b03163314610ebd5760405162461bcd60e51b815260040161094a90611e94565b60138390556014829055601581905580610ed78385611f32565b610ee19190611f32565b601655505050565b6000610ef3610abb565b601f546001600160a01b0316600090815260066020526040902054610f19906002611f13565b610f239084611f13565b610f2d9190611ef1565b92915050565b6000546001600160a01b03163314610f5d5760405162461bcd60e51b815260040161094a90611e94565b601c80546001600160a01b039384166001600160a01b031991821617909155601d8054929093169116179055565b6000546001600160a01b03163314610fb55760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b031660009081526004602090815260408083208054600160ff1991821681179092556005909352922080549091169091179055565b6000546001600160a01b0316331461101b5760405162461bcd60e51b815260040161094a90611e94565b6001600160a01b0381166110805760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161094a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316158015906110fb57506001600160a01b03821615155b61113f5760405162461bcd60e51b815260206004820152601560248201527421b0b73737ba1031329030b2323932b9b99418149760591b604482015260640161094a565b6001600160a01b03808416600081815260046020908152604080832054948716835280832054938352600590915281205460ff9384169392831692168061119e57506001600160a01b03851660009081526005602052604090205460ff165b806111b25750601f54600160a81b900460ff165b905080156111ca576111c58686866112ca565b6112c2565b601f54600160b81b900460ff166111e057600080fd5b601f54600160a01b900460ff16156111fd576111c586868661138c565b821561120e576111c586868661148e565b81156112345761121c611551565b1561122957611229611599565b6111c5868686611699565b6001600160a01b03861660009081526002602052604090205460ff1615801561127657506001600160a01b03851660009081526002602052604090205460ff16155b61127f57600080fd5b600e54846112a2876001600160a01b031660009081526006602052604090205490565b6112ac9190611f32565b11156112b757600080fd5b6112c28686866116ff565b505050505050565b6001600160a01b0383166000908152600660205260409020546113109084906112f4908490611eda565b6001600160a01b03909116600090815260066020526040902055565b6001600160a01b03821660009081526006602052604090205461133a9083906112f4908490611f32565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161137f91815260200190565b60405180910390a3505050565b6001600160a01b03821660009081526002602052604090205460ff16156113b257600080fd5b600c548111156113f85760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161094a565b606461140582605a611f13565b61140f9190611ef1565b60109081556001600160a01b0383166000818152600260205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319169091179055546114899084908490849061173d565b505050565b6001600160a01b03821660009081526002602052604090205460ff16156114b457600080fd5b600c548111156114fa5760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161094a565b6001600160a01b03821660009081526003602052604090205460ff1661153d576016546103e89061152b9083611f13565b6115359190611ef1565b601055611543565b60006010555b61148983838360105461173d565b601f54600090600160b01b900460ff161580156115775750601f54600160c01b900460ff165b8015610b26575050602080543060009081526006909252604090912054101590565b601f805460ff60b01b1916600160b01b17905530600090815260066020526040812054601654601a549192506000916115d29190611f32565b6013546017546115e29190611f32565b6115ec9084611f13565b6115f69190611ef1565b905060006116048284611eda565b90506000611613600284611ef1565b905060006116218285611eda565b905061162d8184611f32565b94504761163986611858565b60006116458247611eda565b90506000876116548584611f13565b61165e9190611ef1565b905061166a8582611991565b60006116768447611eda565b905061168181611a4d565b5050601f805460ff60b01b1916905550505050505050565b6001600160a01b03831660009081526002602052604090205460ff16156116bf57600080fd5b600d548111156116ce57600080fd5b6001600160a01b03831660009081526003602052604090205460ff1661153d57601a546103e89061152b9083611f13565b6103e8601154826117109190611f13565b61171a9190611ef1565b6010819055156117325761148983838360105461173d565b6114898383836112ca565b60006010548361174d9190611eda565b6001600160a01b03861660009081526006602052604090205490915061177a9086906112f4908690611eda565b3060008181526006602052604090205461179a91906112f4908590611f32565b6001600160a01b0384166000908152600660205260409020546117c49085906112f4908490611f32565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161180991815260200190565b60405180910390a360405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061188d5761188d611f4a565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190a9190611f60565b8160018151811061191d5761191d611f4a565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac94790611963908590600090869030904290600401611f7d565b600060405180830381600087803b15801561197d57600080fd5b505af11580156112c2573d6000803e3d6000fd5b601f805460ff60a81b1916600160a81b179055601e54601d5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611a14573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a399190611fb9565b5050601f805460ff60a81b19169055505050565b601954601554600091611a5f91611f32565b601854601454919250600091611a759190611f32565b90506000611a838284611f32565b9050600081611a928587611f13565b611a9c9190611ef1565b9050600082611aab8588611f13565b611ab59190611ef1565b90508015611b6757601c546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611b0f576040519150601f19603f3d011682016040523d82523d6000602084013e611b14565b606091505b5050905080611b655760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161094a565b505b81156112c257601d546040516000916001600160a01b03169061753090859084818181858888f193505050503d8060008114611bbf576040519150601f19603f3d011682016040523d82523d6000602084013e611bc4565b606091505b5050905080611c155760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161094a565b50505050505050565b600060208083528351808285015260005b81811015611c4b57858101830151858201604001528201611c2f565b81811115611c5d576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c8857600080fd5b50565b60008060408385031215611c9e57600080fd5b8235611ca981611c73565b946020939093013593505050565b80358015158114611cc757600080fd5b919050565b60008060408385031215611cdf57600080fd5b8235611cea81611c73565b9150611cf860208401611cb7565b90509250929050565b600060208284031215611d1357600080fd5b8135611d1e81611c73565b9392505050565b60008060408385031215611d3857600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015611d805781516001600160a01b031687529582019590820190600101611d5b565b509495945050505050565b602081526000611d1e6020830184611d47565b600080600060608486031215611db357600080fd5b8335611dbe81611c73565b92506020840135611dce81611c73565b929592945050506040919091013590565b600080600060608486031215611df457600080fd5b505081359360208301359350604090920135919050565b600060208284031215611e1d57600080fd5b5035919050565b600060208284031215611e3657600080fd5b611d1e82611cb7565b60008060408385031215611e5257600080fd5b611ca983611cb7565b60008060408385031215611e6e57600080fd5b8235611e7981611c73565b91506020830135611e8981611c73565b809150509250929050565b60208082526016908201527510aca7aa9020a922902727aa102a24229027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015611eec57611eec611ec4565b500390565b600082611f0e57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f2d57611f2d611ec4565b500290565b60008219821115611f4557611f45611ec4565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f7257600080fd5b8151611d1e81611c73565b85815284602082015260a060408201526000611f9c60a0830186611d47565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215611fce57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212207414dbfd6925cc8bae780a2f837de22853e4d31505394625ade06051359e896664736f6c634300080d0033

Deployed Bytecode Sourcemap

3586:15351:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17654:80;;;;;;;;;;-1:-1:-1;17726:5:0;;;;;;;;;;;;-1:-1:-1;;;17726:5:0;;;;17654:80;;;;;;;:::i;:::-;;;;;;;;18074:216;;;;;;;;;;-1:-1:-1;18074:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;18074:216:0;1072:187:1;8088:130:0;;;;;;;;;;-1:-1:-1;8088:130:0;;;;;:::i;:::-;;:::i;:::-;;3755:54;;;;;;;;;;-1:-1:-1;3755:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10996:150;;;;;;;;;;-1:-1:-1;10996:150:0;;;;;:::i;:::-;;:::i;17384:88::-;;;;;;;;;;-1:-1:-1;17457:12:0;;17384:88;;;2400:25:1;;;2388:2;2373:18;17384:88:0;2254:177:1;5315:77:0;;;;;;;;;;-1:-1:-1;5315:77:0;;;;-1:-1:-1;;;;;5315:77:0;;;;;;-1:-1:-1;;;;;2600:32:1;;;2582:51;;2570:2;2555:18;5315:77:0;2436:203:1;10606:99:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18471:463::-;;;;;;;;;;-1:-1:-1;18471:463:0;;;;;:::i;:::-;;:::i;10462:136::-;;;;;;;;;;;;;:::i;5001:22::-;;;;;;;;;;-1:-1:-1;5001:22:0;;;;;;;;;;;;;;;;;;;4068:25:1;;;4124:2;4109:18;;4102:34;;;;4152:18;;;4145:34;4210:2;4195:18;;4188:34;4055:3;4040:19;5001:22:0;3837:391:1;5056:82:0;;;;;;;;;;-1:-1:-1;5056:82:0;;;;-1:-1:-1;;;;;5056:82:0;;;1527:103;;;;;;;;;;-1:-1:-1;1527:103:0;;;;;:::i;:::-;1582:4;1617:5;-1:-1:-1;;;;;1606:16:0;;;1617:5;;1606:16;;1527:103;17478:80;;;;;;;;;;-1:-1:-1;17478:80:0;;4140:2;4375:36:1;;4363:2;4348:18;17478:80:0;4233:184:1;10171:171:0;;;;;;;;;;;;;:::i;4974:20::-;;;;;;;;;;-1:-1:-1;4974:20:0;;;;;;;;;;;;;;;7960:120;;;;;;;;;;;;;:::i;7616:336::-;;;;;;;;;;-1:-1:-1;7616:336:0;;;;;:::i;:::-;;:::i;8440:111::-;;;;;;;;;;-1:-1:-1;8440:111:0;;;;;:::i;:::-;;:::i;5573:33::-;;;;;;;;;;-1:-1:-1;5573:33:0;;;;-1:-1:-1;;;5573:33:0;;;;;;4337:34;;;;;;;;;;;;;;;;9044:360;;;;;;;;;;-1:-1:-1;9044:360:0;;;;;:::i;:::-;;:::i;10713:103::-;;;;;;;;;;-1:-1:-1;10791:10:0;:17;10713:103;;5790:30;;;;;;;;;;-1:-1:-1;5790:30:0;;;;-1:-1:-1;;;5790:30:0;;;;;;17824:104;;;;;;;;;;-1:-1:-1;17824:104:0;;;;;:::i;:::-;-1:-1:-1;;;;;17908:18:0;17890:7;17908:18;;;:9;:18;;;;;;;17824:104;1888:146;;;;;;;;;;;;;:::i;3652:44::-;;;;;;;;;;-1:-1:-1;3652:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10060:103;;;;;;;;;;-1:-1:-1;10060:103:0;;;;;:::i;:::-;;:::i;9787:105::-;;;;;;;;;;-1:-1:-1;9787:105:0;;;;;:::i;:::-;;:::i;17740:78::-;;;;;;;;;;-1:-1:-1;17792:7:0;17810:5;-1:-1:-1;;;;;17810:5:0;17740:78;;9475:119;;;;;;;;;;-1:-1:-1;9475:119:0;;;;;:::i;:::-;;:::i;8226:206::-;;;;;;;;;;-1:-1:-1;8226:206:0;;;;;:::i;:::-;;:::i;17564:84::-;;;;;;;;;;-1:-1:-1;17638:7:0;;;;;;;;;;;;-1:-1:-1;;;17638:7:0;;;;17564:84;;5399:77;;;;;;;;;;-1:-1:-1;5399:77:0;;;;-1:-1:-1;;;;;5399:77:0;;;5516:19;;;;;;;;;;-1:-1:-1;5516:19:0;;;;-1:-1:-1;;;;;5516:19:0;;;18298:165;;;;;;;;;;-1:-1:-1;18298:165:0;;;;;:::i;:::-;;:::i;8621:352::-;;;;;;;;;;-1:-1:-1;8621:352:0;;;;;:::i;:::-;;:::i;4298:32::-;;;;;;;;;;;;;;;;10824:164;;;;;;;;;;-1:-1:-1;10824:164:0;;;;;:::i;:::-;;:::i;9602:177::-;;;;;;;;;;-1:-1:-1;9602:177:0;;;;;:::i;:::-;;:::i;17934:132::-;;;;;;;;;;-1:-1:-1;17934:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;18036:19:0;;;18018:7;18036:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17934:132;4260:31;;;;;;;;;;;;;;;;9900:152;;;;;;;;;;-1:-1:-1;9900:152:0;;;;;:::i;:::-;;:::i;1638:242::-;;;;;;;;;;-1:-1:-1;1638:242:0;;;;;:::i;:::-;;:::i;5485:24::-;;;;;;;;;;-1:-1:-1;5485:24:0;;;;-1:-1:-1;;;;;5485:24:0;;;18074:216;18178:10;18149:4;18166:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18166:32:0;;;;;;;;;;:41;;;18223:37;18149:4;;18166:32;;18223:37;;;;18201:6;2400:25:1;;2388:2;2373:18;;2254:177;18223:37:0;;;;;;;;-1:-1:-1;18278:4:0;18074:216;;;;:::o;8088:130::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8181:19:0;;;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;8181:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8088:130::o;10996:150::-;11076:4;11132:6;11100:29;11120:8;11100:19;:29::i;:::-;:38;;10996:150;-1:-1:-1;;;10996:150:0:o;10606:99::-;10652:16;10687:10;10680:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10680:17:0;;;;;;;;;;;;;;;;;;;;;;;10606:99;:::o;18471:463::-;-1:-1:-1;;;;;18607:19:0;;18569:4;18607:19;;;:11;:19;;;;;;;;18627:10;18607:31;;;;;;;;18657:20;;;;18649:29;;;;;;-1:-1:-1;;;;;18703:19:0;;;;;;:11;:19;;;;;;;;18723:10;18703:31;;;;;;;;-1:-1:-1;;18703:52:0;18699:159;;-1:-1:-1;;;;;18806:19:0;;;;;;:11;:19;;;;;;;;18826:10;18806:31;;;;;;;;:40;;18840:6;;18806:40;:::i;:::-;-1:-1:-1;;;;;18772:19:0;;;;;;:11;:19;;;;;;;;18792:10;18772:31;;;;;;;:74;18699:159;18868:36;18878:6;18886:9;18897:6;18868:9;:36::i;:::-;-1:-1:-1;18922:4:0;;18471:463;-1:-1:-1;;;;18471:463:0:o;10462:136::-;17908:9;:18;;;;5183:42;10515:7;17908:18;;;;;10542:12;;10515:7;;17908:18;10542:30;;17908:18;10542:30;:::i;:::-;:48;;;;:::i;:::-;10535:55;;10462:136;:::o;10171:171::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;10230:26:::1;10299:5:::0;;10291:43:::1;::::0;10259:21:::1;::::0;-1:-1:-1;;;;;10299:5:0;;::::1;::::0;10291:43;::::1;;;::::0;10259:21;;10291:43;10230:26;10291:43;10259:21;10299:5;10291:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10219:123;10171:171::o:0;7960:120::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;8037:28:::1;:35:::0;;-1:-1:-1;;;;8037:35:0::1;-1:-1:-1::0;;;8037:35:0::1;::::0;;7960:120::o;7616:336::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;7791:17:::1;7784:4;7770:12;;:18;;;;:::i;:::-;:38;;;;:::i;:::-;7755:12;:53:::0;7835:12:::1;::::0;7856:18;;7835::::1;::::0;7849:4:::1;::::0;7835:18:::1;:::i;:::-;:39;;;;:::i;:::-;7819:13;:55:::0;7903:12:::1;::::0;7924:20;;7903:18:::1;::::0;7917:4:::1;::::0;7903:18:::1;:::i;:::-;:41;;;;:::i;:::-;7885:15;:59:::0;-1:-1:-1;;;7616:336:0:o;8440:111::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;8519:15:::1;:24:::0;8440:111::o;9044:360::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;9173:7:::1;:36:::0;;;9220:20;:36;;;9267:20;:36;;;9290:13;9330:43:::1;9243:13:::0;9196;9330:43:::1;:::i;:::-;:66;;;;:::i;:::-;9314:13:::0;:82;-1:-1:-1;;;9044:360:0:o;1888:146::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;1994:1:::1;1979:5:::0;;1958:39:::1;::::0;-1:-1:-1;;;;;1979:5:0;;::::1;::::0;1958:39:::1;::::0;1994:1;;1958:39:::1;2024:1;2008:18:::0;;-1:-1:-1;;;;;;2008:18:0::1;::::0;;1888:146::o;10060:103::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;10133:14:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;10133:22:0::1;-1:-1:-1::0;;;;10133:22:0;;::::1;::::0;;;::::1;::::0;;10060:103::o;9787:105::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9856:20:0::1;9879:5;9856:20:::0;;;:12:::1;:20;::::0;;;;:28;;-1:-1:-1;;9856:28:0::1;::::0;;9787:105::o;9475:119::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;9560:11:::1;:26:::0;9475:119::o;8226:206::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;8334:11:::1;:22:::0;;-1:-1:-1;;;;8334:22:0::1;-1:-1:-1::0;;;8334:22:0;::::1;;;;::::0;;8383:12:::1;::::0;8405:19;;8383::::1;::::0;8398:4:::1;::::0;8383:19:::1;:::i;:::-;:41;;;;:::i;:::-;8367:13;:57:::0;-1:-1:-1;;8226:206:0:o;18298:165::-;18376:4;18393:40;18403:10;18415:9;18426:6;18393:9;:40::i;:::-;-1:-1:-1;18451:4:0;18298:165;;;;:::o;8621:352::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;8749:6:::1;:35:::0;;;8795:19;:35;;;8841:19;:35;;;8863:13;8902:41:::1;8817:13:::0;8771;8902:41:::1;:::i;:::-;:63;;;;:::i;:::-;8887:12:::0;:78;-1:-1:-1;;;8621:352:0:o;10824:164::-;10892:7;10957:22;:20;:22::i;:::-;10941:4;;-1:-1:-1;;;;;10941:4:0;17890:7;17908:18;;;:9;:18;;;;;;10931:21;;10950:1;10931:21;:::i;:::-;10919:34;;:8;:34;:::i;:::-;:61;;;;:::i;:::-;10912:68;10824:164;-1:-1:-1;;10824:164:0:o;9602:177::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;9700:17:::1;:30:::0;;-1:-1:-1;;;;;9700:30:0;;::::1;-1:-1:-1::0;;;;;;9700:30:0;;::::1;;::::0;;;9741:17:::1;:30:::0;;;;;::::1;::::0;::::1;;::::0;;9602:177::o;9900:152::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9973:30:0::1;;::::0;;;:22:::1;:30;::::0;;;;;;;:35;;10004:4:::1;-1:-1:-1::0;;9973:35:0;;::::1;::::0;::::1;::::0;;;10019:12:::1;:20:::0;;;;;:25;;;;::::1;::::0;;::::1;::::0;;9900:152::o;1638:242::-;1582:4;1617:5;-1:-1:-1;;;;;1617:5:0;1470:10;1606:16;1454:54;;;;-1:-1:-1;;;1454:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1727:22:0;::::1;1719:73;;;::::0;-1:-1:-1;;;1719:73:0;;7328:2:1;1719:73:0::1;::::0;::::1;7310:21:1::0;7367:2;7347:18;;;7340:30;7406:34;7386:18;;;7379:62;-1:-1:-1;;;7457:18:1;;;7450:36;7503:19;;1719:73:0::1;7126:402:1::0;1719:73:0::1;1829:5;::::0;;1808:37:::1;::::0;-1:-1:-1;;;;;1808:37:0;;::::1;::::0;1829:5;::::1;::::0;1808:37:::1;::::0;::::1;1856:5;:16:::0;;-1:-1:-1;;;;;;1856:16:0::1;-1:-1:-1::0;;;;;1856:16:0;;;::::1;::::0;;;::::1;::::0;;1638:242::o;11270:1168::-;-1:-1:-1;;;;;11365:18:0;;;;;;:41;;-1:-1:-1;;;;;;11385:21:0;;;;11365:41;11357:74;;;;-1:-1:-1;;;11357:74:0;;7735:2:1;11357:74:0;;;7717:21:1;7774:2;7754:18;;;7747:30;-1:-1:-1;;;7793:18:1;;;7786:51;7854:18;;11357:74:0;7533:345:1;11357:74:0;-1:-1:-1;;;;;11453:30:0;;;11442:10;11453:30;;;:22;:30;;;;;;;;;11506:33;;;;;;;;;11566:20;;;:12;:20;;;;;;11453:30;;;;;11506:33;;;;11566:20;;:45;;-1:-1:-1;;;;;;11588:23:0;;;;;;:12;:23;;;;;;;;11566:45;:56;;;-1:-1:-1;11613:9:0;;-1:-1:-1;;;11613:9:0;;;;11566:56;11550:72;;11638:10;11635:796;;;11649:42;11667:6;11674:9;11684:6;11649:17;:42::i;:::-;11635:796;;;11717:28;;-1:-1:-1;;;11717:28:0;;;;11709:37;;;;;;11799:14;;-1:-1:-1;;;11799:14:0;;;;11796:624;;;11814:39;11829:6;11836:9;11846:6;11814:14;:39::i;11796:624::-;11903:5;11900:520;;;11909:35;11920:6;11927:9;11937:6;11909:10;:35::i;11900:520::-;11995:6;11992:428;;;12061:16;:14;:16::i;:::-;12057:35;;;12080:10;:8;:10::i;:::-;12110:36;12122:6;12129:9;12139:6;12110:11;:36::i;11992:428::-;-1:-1:-1;;;;;12229:20:0;;;;;;:12;:20;;;;;;;;12228:21;:47;;;;-1:-1:-1;;;;;;12252:23:0;;;;;;:12;:23;;;;;;;;12251:24;12228:47;12220:56;;;;;;12332:15;;12324:6;12303:20;12313:9;-1:-1:-1;;;;;17908:18:0;17890:7;17908:18;;;:9;:18;;;;;;;17824:104;12303:20;:27;;;;:::i;:::-;:44;;12295:53;;;;;;12367:37;12380:6;12387:9;12397:6;12367:12;:37::i;:::-;11346:1092;;;11270:1168;;;:::o;13842:263::-;-1:-1:-1;;;;;13959:17:0;;;;;;:9;:17;;;;;;13937:47;;13952:6;;13959:24;;13977:6;;13959:24;:::i;:::-;-1:-1:-1;;;;;14664:18:0;;;;;;;:9;:18;;;;;:31;14585:118;13937:47;-1:-1:-1;;;;;14020:20:0;;;;;;:9;:20;;;;;;13995:53;;14010:9;;14020:27;;14041:6;;14020:27;:::i;13995:53::-;14080:9;-1:-1:-1;;;;;14064:33:0;14073:6;-1:-1:-1;;;;;14064:33:0;;14090:6;14064:33;;;;2400:25:1;;2388:2;2373:18;;2254:177;14064:33:0;;;;;;;;13842:263;;;:::o;12446:378::-;-1:-1:-1;;;;;12547:23:0;;;;;;:12;:23;;;;;;;;12546:24;12538:33;;;;;;12600:12;;12590:6;:22;;12582:52;;;;-1:-1:-1;;;12582:52:0;;8085:2:1;12582:52:0;;;8067:21:1;8124:2;8104:18;;;8097:30;-1:-1:-1;;;8143:18:1;;;8136:47;8200:18;;12582:52:0;7883:341:1;12582:52:0;12666:3;12656:9;:6;12663:2;12656:9;:::i;:::-;:13;;;;:::i;:::-;12645:8;:24;;;-1:-1:-1;;;;;12680:23:0;;;;;;:12;:23;;;;;:28;;-1:-1:-1;;12680:28:0;12704:4;12680:28;;;;;;12719:10;:35;;;;;;;;;;;;;;-1:-1:-1;;;;;;12719:35:0;;;;;;12807:8;12765:51;;12783:6;;12693:9;;12800:6;;12765:17;:51::i;:::-;12446:378;;;:::o;12832:368::-;-1:-1:-1;;;;;12929:23:0;;;;;;:12;:23;;;;;;;;12928:24;12920:33;;;;;;12982:12;;12972:6;:22;;12964:52;;;;-1:-1:-1;;;12964:52:0;;8085:2:1;12964:52:0;;;8067:21:1;8124:2;8104:18;;;8097:30;-1:-1:-1;;;8143:18:1;;;8136:47;8200:18;;12964:52:0;7883:341:1;12964:52:0;-1:-1:-1;;;;;13031:23:0;;;;;;:12;:23;;;;;;;;13027:103;;13084:12;;13097:4;;13077:19;;:6;:19;:::i;:::-;:24;;;;:::i;:::-;13066:8;:35;13027:103;;;13129:1;13118:8;:12;13027:103;13141:51;13159:6;13166:9;13176:6;13183:8;;13141:17;:51::i;14711:186::-;14797:6;;14759:4;;-1:-1:-1;;;14797:6:0;;;;14796:7;:35;;;;-1:-1:-1;14820:11:0;;-1:-1:-1;;;14820:11:0;;;;14796:35;:93;;;;-1:-1:-1;;14876:13:0;;;14866:4;14848:24;;;;:9;:24;;;;;;;;:41;;;14711:186::o;14908:728::-;5922:6;:13;;-1:-1:-1;;;;5922:13:0;-1:-1:-1;;;5922:13:0;;;14991:4:::1;-1:-1:-1::0;17908:18:0;;;:9;:18;;;;;;15101:12;;15085:13;;14956:41;;-1:-1:-1;15010:21:0::1;::::0;15085:28:::1;::::0;15101:12;15085:28:::1;:::i;:::-;15063:6;:19:::0;15040:7:::1;:20:::0;:42:::1;::::0;15063:19;15040:42:::1;:::i;:::-;15032:51;::::0;:6;:51:::1;:::i;:::-;:82;;;;:::i;:::-;15010:104:::0;-1:-1:-1;15125:18:0::1;15144:20;15010:104:::0;15144:6;:20:::1;:::i;:::-;15125:39:::0;-1:-1:-1;15175:16:0::1;15192:15;15206:1;15192:13:::0;:15:::1;:::i;:::-;15175:32:::0;-1:-1:-1;15218:19:0::1;15238:22;15175:32:::0;15238:13;:22:::1;:::i;:::-;15218:42:::0;-1:-1:-1;15278:22:0::1;15218:42:::0;15278:10;:22:::1;:::i;:::-;15271:29:::0;-1:-1:-1;15326:21:0::1;15358:25;15271:29:::0;15358:17:::1;:25::i;:::-;15394:14;15409:28;15431:6:::0;15409:21:::1;:28;:::i;:::-;15394:43:::0;-1:-1:-1;15448:13:0::1;15483:6:::0;15463:18:::1;15470:11:::0;15394:43;15463:18:::1;:::i;:::-;15462:27;;;;:::i;:::-;15448:41;;15500:29;15514:8;15523:5;15500:13;:29::i;:::-;15540:20;15561:28;15583:6:::0;15561:21:::1;:28;:::i;:::-;15540:49;;15600:28;15615:12;15600:14;:28::i;:::-;-1:-1:-1::0;;5958:6:0;:14;;-1:-1:-1;;;;5958:14:0;;;-1:-1:-1;;;;;;;14908:728:0:o;13206:344::-;-1:-1:-1;;;;;13304:20:0;;;;;;:12;:20;;;;;;;;13303:21;13295:30;;;;;;13354:13;;13344:6;:23;;13336:32;;;;;;-1:-1:-1;;;;;13383:20:0;;;;;;:12;:20;;;;;;;;13379:101;;13433:13;;13447:4;;13426:20;;:6;:20;:::i;13558:276::-;13680:4;13668:11;;13659:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;13648:8;:36;;;13699:12;13695:132;;13714:51;13732:6;13739:9;13749:6;13756:8;;13714:17;:51::i;13695:132::-;13783:42;13801:6;13808:9;13818:6;13783:17;:42::i;14113:464::-;14226:17;14253:8;;14246:6;:15;;;;:::i;:::-;-1:-1:-1;;;;;14294:17:0;;;;;;:9;:17;;;;;;14226:35;;-1:-1:-1;14272:47:0;;14287:6;;14294:24;;14312:6;;14294:24;:::i;14272:47::-;14353:4;14359:24;;;;:9;:24;;;;;;14330:64;;14353:4;14359:34;;14384:9;;14359:34;:::i;14330:64::-;-1:-1:-1;;;;;14430:20:0;;;;;;:9;:20;;;;;;14405:56;;14420:9;;14430:30;;14451:9;;14430:30;:::i;14405:56::-;14493:9;-1:-1:-1;;;;;14477:36:0;14486:6;-1:-1:-1;;;;;14477:36:0;;14503:9;14477:36;;;;2400:25:1;;2388:2;2373:18;;2254:177;14477:36:0;;;;;;;;14529:40;;2400:25:1;;;14553:4:0;;-1:-1:-1;;;;;14529:40:0;;;;;2388:2:1;2373:18;14529:40:0;;;;;;;14215:362;14113:464;;;;:::o;16597:369::-;16681:16;;;16695:1;16681:16;;;;;;;;16659:21;;16681:16;;;;;;;;;;-1:-1:-1;16681:16:0;16659:38;;16726:4;16708;16713:1;16708:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16708:23:0;;;:7;;;;;;;;;;:23;;;;16752:6;;:13;;;-1:-1:-1;;;16752:13:0;;;;:6;;;;;:11;;:13;;;;;16708:7;;16752:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16742:4;16747:1;16742:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16742:23:0;;;:7;;;;;;;;;:23;16776:6;;:182;;-1:-1:-1;;;16776:182:0;;:6;;;:57;;:182;;16848:6;;16776;;16885:4;;16912;;16932:15;;16776:182;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16974:341;17056:9;:14;;-1:-1:-1;;;;17056:14:0;-1:-1:-1;;;17056:14:0;;;17081:6;;17223:17;;17081:200;;-1:-1:-1;;;17081:200:0;;17144:4;17081:200;;;9677:34:1;9727:18;;;9720:34;;;-1:-1:-1;9770:18:1;;;9763:34;;;9813:18;;;9806:34;-1:-1:-1;;;;;17223:17:0;;;9856:19:1;;;9849:44;17255:15:0;9909:19:1;;;9902:35;17081:6:0;;;:22;;17111:9;;9611:19:1;;17081:200:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;17292:9:0;:15;;-1:-1:-1;;;;17292:15:0;;;-1:-1:-1;;;16974:341:0:o;15644:945::-;15755:20;;15733:19;;15709:20;;15733:42;;;:::i;:::-;15833:20;;15811:19;;15709:67;;-1:-1:-1;15787:20:0;;15811:42;;15833:20;15811:42;:::i;:::-;15787:67;-1:-1:-1;15865:16:0;15885:27;15787:67;15885:12;:27;:::i;:::-;15865:48;-1:-1:-1;15926:26:0;15865:48;15955:29;15971:12;15955;:29;:::i;:::-;:42;;;;:::i;:::-;15926:71;-1:-1:-1;16008:26:0;16070:8;16037:29;16053:12;16037;:29;:::i;:::-;:42;;;;:::i;:::-;16008:71;-1:-1:-1;16095:22:0;;16092:235;;16188:17;;16180:74;;16130:21;;-1:-1:-1;;;;;16188:17:0;;16244:5;;16219:18;;16130:21;16180:74;16130:21;16180:74;16219:18;16188:17;16244:5;16180:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16129:125;;;16273:16;16265:59;;;;-1:-1:-1;;;16265:59:0;;10671:2:1;16265:59:0;;;10653:21:1;10710:2;10690:18;;;10683:30;10749:32;10729:18;;;10722:60;10799:18;;16265:59:0;10469:354:1;16265:59:0;16118:209;16092:235;16350:22;;16347:235;;16443:17;;16435:74;;16385:21;;-1:-1:-1;;;;;16443:17:0;;16499:5;;16474:18;;16385:21;16435:74;16385:21;16435:74;16474:18;16443:17;16499:5;16435:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16384:125;;;16528:16;16520:59;;;;-1:-1:-1;;;16520:59:0;;10671:2:1;16520:59:0;;;10653:21:1;10710:2;10690:18;;;10683:30;10749:32;10729:18;;;10722:60;10799:18;;16520:59:0;10469:354:1;16520:59:0;16373:209;15698:891;;;;;15644:945;:::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;671:70;616:131;:::o;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:160::-;1329:20;;1385:13;;1378:21;1368:32;;1358:60;;1414:1;1411;1404:12;1358:60;1264:160;;;:::o;1429:315::-;1494:6;1502;1555:2;1543:9;1534:7;1530:23;1526:32;1523:52;;;1571:1;1568;1561:12;1523:52;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;-1:-1:-1;1703:35:1;1734:2;1719:18;;1703:35;:::i;:::-;1693:45;;1429:315;;;;;:::o;1749:247::-;1808:6;1861:2;1849:9;1840:7;1836:23;1832:32;1829:52;;;1877:1;1874;1867:12;1829:52;1916:9;1903:23;1935:31;1960:5;1935:31;:::i;:::-;1985:5;1749:247;-1:-1:-1;;;1749:247:1:o;2001:248::-;2069:6;2077;2130:2;2118:9;2109:7;2105:23;2101:32;2098:52;;;2146:1;2143;2136:12;2098:52;-1:-1:-1;;2169:23:1;;;2239:2;2224:18;;;2211:32;;-1:-1:-1;2001:248:1:o;2644:461::-;2697:3;2735:5;2729:12;2762:6;2757:3;2750:19;2788:4;2817:2;2812:3;2808:12;2801:19;;2854:2;2847:5;2843:14;2875:1;2885:195;2899:6;2896:1;2893:13;2885:195;;;2964:13;;-1:-1:-1;;;;;2960:39:1;2948:52;;3020:12;;;;3055:15;;;;2996:1;2914:9;2885:195;;;-1:-1:-1;3096:3:1;;2644:461;-1:-1:-1;;;;;2644:461:1:o;3110:261::-;3289:2;3278:9;3271:21;3252:4;3309:56;3361:2;3350:9;3346:18;3338:6;3309:56;:::i;3376:456::-;3453:6;3461;3469;3522:2;3510:9;3501:7;3497:23;3493:32;3490:52;;;3538:1;3535;3528:12;3490:52;3577:9;3564:23;3596:31;3621:5;3596:31;:::i;:::-;3646:5;-1:-1:-1;3703:2:1;3688:18;;3675:32;3716:33;3675:32;3716:33;:::i;:::-;3376:456;;3768:7;;-1:-1:-1;;;3822:2:1;3807:18;;;;3794:32;;3376:456::o;4422:316::-;4499:6;4507;4515;4568:2;4556:9;4547:7;4543:23;4539:32;4536:52;;;4584:1;4581;4574:12;4536:52;-1:-1:-1;;4607:23:1;;;4677:2;4662:18;;4649:32;;-1:-1:-1;4728:2:1;4713:18;;;4700:32;;4422:316;-1:-1:-1;4422:316:1:o;4743:180::-;4802:6;4855:2;4843:9;4834:7;4830:23;4826:32;4823:52;;;4871:1;4868;4861:12;4823:52;-1:-1:-1;4894:23:1;;4743:180;-1:-1:-1;4743:180:1:o;4928:::-;4984:6;5037:2;5025:9;5016:7;5012:23;5008:32;5005:52;;;5053:1;5050;5043:12;5005:52;5076:26;5092:9;5076:26;:::i;5113:248::-;5178:6;5186;5239:2;5227:9;5218:7;5214:23;5210:32;5207:52;;;5255:1;5252;5245:12;5207:52;5278:26;5294:9;5278:26;:::i;5366:388::-;5434:6;5442;5495:2;5483:9;5474:7;5470:23;5466:32;5463:52;;;5511:1;5508;5501:12;5463:52;5550:9;5537:23;5569:31;5594:5;5569:31;:::i;:::-;5619:5;-1:-1:-1;5676:2:1;5661:18;;5648:32;5689:33;5648:32;5689:33;:::i;:::-;5741:7;5731:17;;;5366:388;;;;;:::o;5985:346::-;6187:2;6169:21;;;6226:2;6206:18;;;6199:30;-1:-1:-1;;;6260:2:1;6245:18;;6238:52;6322:2;6307:18;;5985:346::o;6336:127::-;6397:10;6392:3;6388:20;6385:1;6378:31;6428:4;6425:1;6418:15;6452:4;6449:1;6442:15;6468:125;6508:4;6536:1;6533;6530:8;6527:34;;;6541:18;;:::i;:::-;-1:-1:-1;6578:9:1;;6468:125::o;6598:217::-;6638:1;6664;6654:132;;6708:10;6703:3;6699:20;6696:1;6689:31;6743:4;6740:1;6733:15;6771:4;6768:1;6761:15;6654:132;-1:-1:-1;6800:9:1;;6598:217::o;6820:168::-;6860:7;6926:1;6922;6918:6;6914:14;6911:1;6908:21;6903:1;6896:9;6889:17;6885:45;6882:71;;;6933:18;;:::i;:::-;-1:-1:-1;6973:9:1;;6820:168::o;6993:128::-;7033:3;7064:1;7060:6;7057:1;7054:13;7051:39;;;7070:18;;:::i;:::-;-1:-1:-1;7106:9:1;;6993:128::o;8361:127::-;8422:10;8417:3;8413:20;8410:1;8403:31;8453:4;8450:1;8443:15;8477:4;8474:1;8467:15;8493:251;8563:6;8616:2;8604:9;8595:7;8591:23;8587:32;8584:52;;;8632:1;8629;8622:12;8584:52;8664:9;8658:16;8683:31;8708:5;8683:31;:::i;8749:582::-;9048:6;9037:9;9030:25;9091:6;9086:2;9075:9;9071:18;9064:34;9134:3;9129:2;9118:9;9114:18;9107:31;9011:4;9155:57;9207:3;9196:9;9192:19;9184:6;9155:57;:::i;:::-;-1:-1:-1;;;;;9248:32:1;;;;9243:2;9228:18;;9221:60;-1:-1:-1;9312:3:1;9297:19;9290:35;9147:65;8749:582;-1:-1:-1;;;8749:582:1:o;9948:306::-;10036:6;10044;10052;10105:2;10093:9;10084:7;10080:23;10076:32;10073:52;;;10121:1;10118;10111:12;10073:52;10150:9;10144:16;10134:26;;10200:2;10189:9;10185:18;10179:25;10169:35;;10244:2;10233:9;10229:18;10223:25;10213:35;;9948:306;;;;;:::o

Swarm Source

ipfs://7414dbfd6925cc8bae780a2f837de22853e4d31505394625ade06051359e8966

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.