ETH Price: $2,755.44 (+4.51%)
Gas: 0.72 Gwei

Token

Burn Do Kwon ($BDK)
 

Overview

Max Total Supply

1,000,000,000 $BDK

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: $BDK
Balance
0.000000000022788402 $BDK

Value
$0.00
0xe940e8af5d8d10c790ac3aad17d14e60404b6584
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BDK

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-19
*/

/**

██████╗░██╗░░░██╗██████╗░███╗░░██╗
██╔══██╗██║░░░██║██╔══██╗████╗░██║
██████╦╝██║░░░██║██████╔╝██╔██╗██║
██╔══██╗██║░░░██║██╔══██╗██║╚████║
██████╦╝╚██████╔╝██║░░██║██║░╚███║
╚═════╝░░╚═════╝░╚═╝░░╚═╝╚═╝░░╚══╝

██████╗░░█████╗░  ██╗░░██╗░██╗░░░░░░░██╗░█████╗░███╗░░██╗ ██╗
██╔══██╗██╔══██╗  ██║░██╔╝░██║░░██╗░░██║██╔══██╗████╗░██║ ██║
██║░░██║██║░░██║  █████═╝░░╚██╗████╗██╔╝██║░░██║██╔██╗██║ ██║
██║░░██║██║░░██║  ██╔═██╗░░░████╔═████║░██║░░██║██║╚████║ ╚═╝
██████╔╝╚█████╔╝  ██║░╚██╗░░╚██╔╝░╚██╔╝░╚█████╔╝██║░╚███║ ██╗
╚═════╝░░╚════╝░  ╚═╝░░╚═╝░░░╚═╝░░░╚═╝░░░╚════╝░╚═╝░░╚══╝ ╚═╝

This project was made to anonymously provide funds to support those 
who lost everthing in $LUNA and $UST and are now suing Do Kwon!

All taxes will be used to help fund these legal cases!

TG: https://t.me/burndk

 */

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

/**
 * ERC20 standard interface
 */

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 BDK 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 = "Burn Do Kwon";
    string constant _symbol = "$BDK";
    uint8 constant _decimals = 18;
    uint256 private _totalSupply = 1_000_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 legalFundFee;
        uint256 marketingFee;
        uint256 total;
    }

    struct SellFee {
        uint256 liquidityFee;
        uint256 legalFundFee;
        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 legalFundReceiver = 0x6700ED4aA3FD8694B8B45A2912b6eec9591331b9;
    address public marketingReceiver = 0x6700ED4aA3FD8694B8B45A2912b6eec9591331b9;

    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.legalFundFee = 30; buyFee.marketingFee = 0;
        buyFee.total = buyFee.liquidityFee + buyFee.legalFundFee + buyFee.marketingFee;

        // Set Initial Sell Fees -- Base 1000 Set 10 for 1%
        sellFee.liquidityFee = 30; sellFee.legalFundFee = 170; sellFee.marketingFee = 0;
        sellFee.total = sellFee.liquidityFee + sellFee.legalFundFee + sellFee.marketingFee;

        // Set Initial Buy, Sell & Wallet Limits -- Base 1000 Set 10 for 1%
        maxBuyPercentage = 5; maxBuyAmount = _totalSupply /1000 * maxBuyPercentage;
        maxSellPercentage = 5; maxSellAmount = _totalSupply /1000 * maxSellPercentage;
        maxWalletPercentage = 10; 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 _legalFundFee, uint256 _marketingFee) external onlyOwner {
        buyFee.liquidityFee = _liquidityFee;
        buyFee.legalFundFee = _legalFundFee;
        buyFee.marketingFee = _marketingFee;
        buyFee.total = buyFee.liquidityFee + buyFee.legalFundFee + buyFee.marketingFee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateSellFees (uint256 _liquidityFee, uint256 _legalFundFee, uint256 _marketingFee) external onlyOwner {
        sellFee.liquidityFee = _liquidityFee;
        sellFee.legalFundFee = _legalFundFee;
        sellFee.marketingFee = _marketingFee;
        sellFee.total = sellFee.liquidityFee + sellFee.legalFundFee + sellFee.marketingFee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateTransferFee (uint256 _transferFee) external onlyOwner {
        transferFee = _transferFee;
    }

    function ownerSetReceivers (address legalFund, address _marketing) external onlyOwner {
        legalFundReceiver = legalFund;
        marketingReceiver = _marketing;
    }

    function ownerAirDropWallets(address[] memory airdropWallets, uint256[] memory amounts) external onlyOwner{
        require(airdropWallets.length < 100, "Can only airdrop 100 wallets per txn due to gas limits");
        for(uint256 i = 0; i < airdropWallets.length; i++){
            address wallet = airdropWallets[i];
            uint256 amount = (amounts[i] * 10**_decimals);
            _transfer(msg.sender, wallet, amount);
        }
    }

    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);
    }

    function clearStuckToken(address _token) public onlyOwner {
        uint256 _contractBalance = ERC20(_token).balanceOf(address(this));
        payable(legalFundReceiver).transfer(_contractBalance);
    }
    ///////////////////////////////////////// -- 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 LPBNBTokens=totalLPTokens-LPTokens;
        toSwap=tokensLeft+LPBNBTokens;
        uint256 oldBNB=address(this).balance;
        _swapTokensForBNB(toSwap);
        uint256 newBNB=address(this).balance-oldBNB;
        uint256 LPBNB=(newBNB*LPBNBTokens)/toSwap;
        _addLiquidity(LPTokens,LPBNB);
        uint256 remainingBNB=address(this).balance-oldBNB;
        _distributeBNB(remainingBNB);
    }

    function _distributeBNB(uint256 remainingBNB) private {
        uint256 marketingFee = (buyFee.marketingFee + sellFee.marketingFee);
        uint256 legalFundFee = (buyFee.legalFundFee + sellFee.legalFundFee);
        uint256 totalFee = (marketingFee + legalFundFee);

        uint256 amountBNBmarketing = remainingBNB * (marketingFee) / (totalFee);
        uint256 amountBNBlegalFund = remainingBNB * (legalFundFee) / (totalFee);

        if(amountBNBlegalFund > 0){
        (bool legalFundSuccess, /* bytes memory data */) = payable(legalFundReceiver).call{value: amountBNBlegalFund, gas: 30000}("");
        require(legalFundSuccess, "receiver rejected ETH transfer"); }
        
        if(amountBNBmarketing > 0){
        (bool marketingSuccess, /* bytes memory data */) = payable(marketingReceiver).call{value: amountBNBmarketing, gas: 30000}("");
        require(marketingSuccess, "receiver rejected ETH transfer"); }
    }

    function _swapTokensForBNB(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 amountBNB) private {
        _addingLP=true;
        router.addLiquidityETH{value: amountBNB}(
            address(this),
            amountTokens,
            0,
            0,
            legalFundReceiver,
            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":"legalFundFee","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":"address","name":"_token","type":"address"}],"name":"clearStuckToken","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":[{"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":"legalFundReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address[]","name":"airdropWallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ownerAirDropWallets","outputs":[],"stateMutability":"nonpayable","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":"legalFund","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":"_legalFundFee","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":"_legalFundFee","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":"legalFundFee","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"}]

60806040526012600a620000149190620009e4565b633b9aca0062000025919062000a35565b6008556032601255737a250d5630b4cf539739df2c5dacb4c659f2488d601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736700ed4aa3fd8694b8b45a2912b6eec9591331b9601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736700ed4aa3fd8694b8b45a2912b6eec9591331b9601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601f60146101000a81548160ff0219169083151502179055506001601f60186101000a81548160ff0219169083151502179055506103e860085462000174919062000ac5565b6020553480156200018457600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000298573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002be919062000b67565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000347573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036d919062000b67565b306040518363ffffffff1660e01b81526004016200038d92919062000baa565b6020604051808303816000875af1158015620003ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d3919062000b67565b601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601360000181905550601e60136001018190555060006013600201819055506013600201546013600101546013600001546200058f919062000bd7565b6200059b919062000bd7565b601360030181905550601e60176000018190555060aa6017600101819055506000601760020181905550601760020154601760010154601760000154620005e3919062000bd7565b620005ef919062000bd7565b60176003018190555060056009819055506009546103e860085462000615919062000ac5565b62000621919062000a35565b600c819055506005600a81905550600a546103e860085462000644919062000ac5565b62000650919062000a35565b600d81905550600a600b81905550600b546103e860085462000673919062000ac5565b6200067f919062000a35565b600e819055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600854600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040516200083c919062000c45565b60405180910390a362000c62565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008d857808604811115620008b057620008af6200084a565b5b6001851615620008c05780820291505b8081029050620008d08562000879565b945062000890565b94509492505050565b600082620008f35760019050620009c6565b81620009035760009050620009c6565b81600181146200091c576002811462000927576200095d565b6001915050620009c6565b60ff8411156200093c576200093b6200084a565b5b8360020a9150848211156200095657620009556200084a565b5b50620009c6565b5060208310610133831016604e8410600b8410161715620009975782820a9050838111156200099157620009906200084a565b5b620009c6565b620009a6848484600162000886565b92509050818404811115620009c057620009bf6200084a565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009f182620009cd565b9150620009fe83620009d7565b925062000a2d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008e1565b905092915050565b600062000a4282620009cd565b915062000a4f83620009cd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a8b5762000a8a6200084a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ad282620009cd565b915062000adf83620009cd565b92508262000af25762000af162000a96565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b2f8262000b02565b9050919050565b62000b418162000b22565b811462000b4d57600080fd5b50565b60008151905062000b618162000b36565b92915050565b60006020828403121562000b805762000b7f62000afd565b5b600062000b908482850162000b50565b91505092915050565b62000ba48162000b22565b82525050565b600060408201905062000bc1600083018562000b99565b62000bd0602083018462000b99565b9392505050565b600062000be482620009cd565b915062000bf183620009cd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c295762000c286200084a565b5b828201905092915050565b62000c3f81620009cd565b82525050565b600060208201905062000c5c600083018462000c34565b92915050565b61425b8062000c726000396000f3fe60806040526004361061028c5760003560e01c806370a082311161015a578063a8aa1b31116100c1578063dca3cef11161007a578063dca3cef1146109d1578063dd62ed3e146109fa578063e065099714610a37578063e5a772d214610a62578063f2fde38b14610a8b578063f887ea4014610ab457610293565b8063a8aa1b31146108ad578063a9059cbb146108d8578063b46ba24b14610915578063b56fa04b1461093e578063b704a9f614610969578063d51ed1c81461099457610293565b80638ca42e4e116101135780638ca42e4e146107b35780638ee41ca8146107dc57806395d89b41146108055780639b0ad05c146108305780639be953b314610859578063a5949bcf1461088257610293565b806370a08231146106a5578063715018a6146106e25780637a6d69b4146106f957806383bd84851461073657806387cfc4931461075f578063893d20e81461078857610293565b80632f54bf6e116101fe57806352aae9dd116101b757806352aae9dd146105a757806353cd6210146105d0578063599ca397146105fb57806359d3cac2146106265780636390aeeb1461064f5780636ddd17131461067a57610293565b80632f54bf6e146104ba578063313ce567146104f7578063364333f414610522578063470624021461053957806347375a37146105675780634c5d87101461057e57610293565b806318160ddd1161025057806318160ddd146103a35780631ca0b1d0146103ce57806323b872dd146103f95780632b112e49146104365780632b14ca56146104615780632d3b40471461048f57610293565b806306fdde0314610298578063095ea7b3146102c35780630c5b1d93146103005780630cb23d86146103295780631161ae391461036657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610adf565b6040516102ba919061318f565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190613259565b610b1c565b6040516102f791906132b4565b60405180910390f35b34801561030c57600080fd5b50610327600480360381019061032291906132fb565b610c0e565b005b34801561033557600080fd5b50610350600480360381019061034b919061333b565b610cb1565b60405161035d91906132b4565b60405180910390f35b34801561037257600080fd5b5061038d60048036038101906103889190613368565b610cd1565b60405161039a91906132b4565b60405180910390f35b3480156103af57600080fd5b506103b8610ce6565b6040516103c591906133b7565b60405180910390f35b3480156103da57600080fd5b506103e3610cf0565b6040516103f09190613490565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b91906134b2565b610d7e565b60405161042d91906132b4565b60405180910390f35b34801561044257600080fd5b5061044b610fd0565b60405161045891906133b7565b60405180910390f35b34801561046d57600080fd5b50610476611003565b6040516104869493929190613505565b60405180910390f35b34801561049b57600080fd5b506104a4611021565b6040516104b19190613559565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc919061333b565b611047565b6040516104ee91906132b4565b60405180910390f35b34801561050357600080fd5b5061050c6110a0565b6040516105199190613590565b60405180910390f35b34801561052e57600080fd5b506105376110a9565b005b34801561054557600080fd5b5061054e611160565b60405161055e9493929190613505565b60405180910390f35b34801561057357600080fd5b5061057c61117e565b005b34801561058a57600080fd5b506105a560048036038101906105a091906135ab565b6111e3565b005b3480156105b357600080fd5b506105ce60048036038101906105c991906135fe565b611293565b005b3480156105dc57600080fd5b506105e56112e5565b6040516105f291906132b4565b60405180910390f35b34801561060757600080fd5b506106106112f8565b60405161061d91906133b7565b60405180910390f35b34801561063257600080fd5b5061064d600480360381019061064891906135ab565b6112fe565b005b34801561065b57600080fd5b50610664611398565b60405161067191906133b7565b60405180910390f35b34801561068657600080fd5b5061068f6113a5565b60405161069c91906132b4565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c7919061333b565b6113b8565b6040516106d991906133b7565b60405180910390f35b3480156106ee57600080fd5b506106f7611401565b005b34801561070557600080fd5b50610720600480360381019061071b919061333b565b611507565b60405161072d91906132b4565b60405180910390f35b34801561074257600080fd5b5061075d6004803603810190610758919061362b565b611527565b005b34801561076b57600080fd5b506107866004803603810190610781919061333b565b61158c565b005b34801561079457600080fd5b5061079d61162f565b6040516107aa9190613559565b60405180910390f35b3480156107bf57600080fd5b506107da60048036038101906107d591906135fe565b611658565b005b3480156107e857600080fd5b5061080360048036038101906107fe9190613658565b6116aa565b005b34801561081157600080fd5b5061081a611731565b604051610827919061318f565b60405180910390f35b34801561083c57600080fd5b50610857600480360381019061085291906138a3565b61176e565b005b34801561086557600080fd5b50610880600480360381019061087b919061333b565b611881565b005b34801561088e57600080fd5b506108976119b4565b6040516108a49190613559565b60405180910390f35b3480156108b957600080fd5b506108c26119da565b6040516108cf9190613559565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa9190613259565b611a00565b60405161090c91906132b4565b60405180910390f35b34801561092157600080fd5b5061093c600480360381019061093791906135ab565b611a17565b005b34801561094a57600080fd5b50610953611ab1565b6040516109609190613559565b60405180910390f35b34801561097557600080fd5b5061097e611ad7565b60405161098b91906133b7565b60405180910390f35b3480156109a057600080fd5b506109bb60048036038101906109b691906135fe565b611add565b6040516109c891906133b7565b60405180910390f35b3480156109dd57600080fd5b506109f860048036038101906109f3919061391b565b611b3a565b005b348015610a0657600080fd5b50610a216004803603810190610a1c919061391b565b611c08565b604051610a2e91906133b7565b60405180910390f35b348015610a4357600080fd5b50610a4c611c8f565b604051610a5991906133b7565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a84919061333b565b611c95565b005b348015610a9757600080fd5b50610ab26004803603810190610aad919061333b565b611d90565b005b348015610ac057600080fd5b50610ac9611f05565b604051610ad691906139ba565b60405180910390f35b60606040518060400160405280600c81526020017f4275726e20446f204b776f6e0000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bfc91906133b7565b60405180910390a36001905092915050565b610c1733611047565b610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d90613a21565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60046020528060005260406000206000915054906101000a900460ff1681565b600082610cdd83611add565b11905092915050565b6000600854905090565b6060600f805480602002602001604051908101604052809291908181526020018280548015610d7457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610d2a575b5050505050905090565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e0d57600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fb95782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f389190613a70565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610fc4858585611f2b565b60019150509392505050565b6000610fdc60006113b8565b610fe761dead6113b8565b600854610ff49190613a70565b610ffe9190613a70565b905090565b60178060000154908060010154908060020154908060030154905084565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6110b233611047565b6110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e890613a21565b60405180910390fd5b600047905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561115c573d6000803e3d6000fd5b5050565b60138060000154908060010154908060020154908060030154905084565b61118733611047565b6111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90613a21565b60405180910390fd5b6001601f60176101000a81548160ff021916908315150217905550565b6111ec33611047565b61122b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122290613a21565b60405180910390fd5b826103e860085461123c9190613ad3565b6112469190613b04565b600c81905550816103e860085461125d9190613ad3565b6112679190613b04565b600d81905550806103e860085461127e9190613ad3565b6112889190613b04565b600e81905550505050565b61129c33611047565b6112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d290613a21565b60405180910390fd5b8060128190555050565b601f60149054906101000a900460ff1681565b600b5481565b61130733611047565b611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133d90613a21565b60405180910390fd5b8260176000018190555081601760010181905550806017600201819055506017600201546017600101546017600001546113809190613b5e565b61138a9190613b5e565b601760030181905550505050565b6000600f80549050905090565b601f60189054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61140a33611047565b611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144090613a21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60026020528060005260406000206000915054906101000a900460ff1681565b61153033611047565b61156f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156690613a21565b60405180910390fd5b80601f60146101000a81548160ff02191690831515021790555050565b61159533611047565b6115d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cb90613a21565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61166133611047565b6116a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169790613a21565b60405180910390fd5b8060118190555050565b6116b333611047565b6116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e990613a21565b60405180910390fd5b81601f60186101000a81548160ff021916908315150217905550806103e860085461171d9190613ad3565b6117279190613b04565b6020819055505050565b60606040518060400160405280600481526020017f2442444b00000000000000000000000000000000000000000000000000000000815250905090565b61177733611047565b6117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad90613a21565b60405180910390fd5b60648251106117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190613c26565b60405180910390fd5b60005b825181101561187c57600083828151811061181b5761181a613c46565b5b6020026020010151905060006012600a6118359190613da8565b84848151811061184857611847613c46565b5b602002602001015161185a9190613b04565b9050611867338383611f2b565b5050808061187490613df3565b9150506117fd565b505050565b61188a33611047565b6118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c090613a21565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119049190613559565b602060405180830381865afa158015611921573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119459190613e51565b9050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119af573d6000803e3d6000fd5b505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611a0d338484611f2b565b6001905092915050565b611a2033611047565b611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613a21565b60405180910390fd5b826013600001819055508160136001018190555080601360020181905550601360020154601360010154601360000154611a999190613b5e565b611aa39190613b5e565b601360030181905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000611ae7610fd0565b6002611b14601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113b8565b611b1e9190613b04565b83611b299190613b04565b611b339190613ad3565b9050919050565b611b4333611047565b611b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7990613a21565b60405180910390fd5b81601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b611c9e33611047565b611cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd490613a21565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d9933611047565b611dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcf90613a21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3f90613ef0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f955750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb90613f5c565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121195750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121305750601f60159054906101000a900460ff165b90508015612148576121438686866122ae565b6122a6565b601f60179054906101000a900460ff1661216157600080fd5b601f60149054906101000a900460ff1615612186576121818686866123c0565b6122a5565b821561219c57612197868686612549565b6122a4565b81156121c8576121aa61267b565b156121b8576121b76126f8565b5b6121c3868686612826565b6122a3565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561226c5750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61227557600080fd5b600e5484612282876113b8565b61228c9190613b5e565b111561229757600080fd5b6122a2868686612922565b5b5b5b5b505050505050565b6123028382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122fd9190613a70565b612972565b6123568282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123519190613b5e565b612972565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123b391906133b7565b60405180910390a3505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561241757600080fd5b600c5481111561245c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245390613fc8565b60405180910390fd5b6064605a8261246b9190613b04565b6124759190613ad3565b6010819055506001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506125448383836010546129ba565b505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125a057600080fd5b600c548111156125e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125dc90613fc8565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661265f576103e86013600301548261264a9190613b04565b6126549190613ad3565b601081905550612668565b60006010819055505b6126768383836010546129ba565b505050565b6000601f60169054906101000a900460ff161580156126a65750601f60189054906101000a900460ff165b80156126f35750602054600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601f60166101000a81548160ff021916908315150217905550600061271e306113b8565b905060006013600301546017600301546127389190613b5e565b60136000015460176000015461274e9190613b5e565b836127599190613b04565b6127639190613ad3565b9050600081836127739190613a70565b905060006002836127849190613ad3565b9050600081846127949190613a70565b905080836127a29190613b5e565b945060004790506127b286612b99565b600081476127c09190613a70565b905060008784836127d19190613b04565b6127db9190613ad3565b90506127e78582612daf565b600083476127f59190613a70565b905061280081612eb8565b5050505050505050506000601f60166101000a81548160ff021916908315150217905550565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561287d57600080fd5b600d5481111561288c57600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612906576103e8601760030154826128f19190613b04565b6128fb9190613ad3565b60108190555061290f565b60006010819055505b61291d8383836010546129ba565b505050565b6103e8601154826129339190613b04565b61293d9190613ad3565b601081905550600060105411156129615761295c8383836010546129ba565b61296d565b61296c8383836122ae565b5b505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000601054836129ca9190613a70565b9050612a208584600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1b9190613a70565b612972565b612a743083600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6f9190613b5e565b612972565b612ac88482600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac39190613b5e565b612972565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b2591906133b7565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b8a91906133b7565b60405180910390a35050505050565b6000600267ffffffffffffffff811115612bb657612bb561369d565b5b604051908082528060200260200182016040528015612be45781602001602082028036833780820191505090505b5090503081600081518110612bfc57612bfb613c46565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc79190613ffd565b81600181518110612cdb57612cda613c46565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d79959493929190614065565b600060405180830381600087803b158015612d9357600080fd5b505af1158015612da7573d6000803e3d6000fd5b505050505050565b6001601f60156101000a81548160ff021916908315150217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e53969594939291906140bf565b60606040518083038185885af1158015612e71573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e969190614120565b5050506000601f60156101000a81548160ff0219169083151502179055505050565b6000601760020154601360020154612ed09190613b5e565b90506000601760010154601360010154612eea9190613b5e565b905060008183612efa9190613b5e565b90506000818486612f0b9190613b04565b612f159190613ad3565b90506000828487612f269190613b04565b612f309190613ad3565b90506000811115613010576000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612f87906141a4565b600060405180830381858888f193505050503d8060008114612fc5576040519150601f19603f3d011682016040523d82523d6000602084013e612fca565b606091505b505090508061300e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300590614205565b60405180910390fd5b505b60008211156130ee576000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051613065906141a4565b600060405180830381858888f193505050503d80600081146130a3576040519150601f19603f3d011682016040523d82523d6000602084013e6130a8565b606091505b50509050806130ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e390614205565b60405180910390fd5b505b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613130578082015181840152602081019050613115565b8381111561313f576000848401525b50505050565b6000601f19601f8301169050919050565b6000613161826130f6565b61316b8185613101565b935061317b818560208601613112565b61318481613145565b840191505092915050565b600060208201905081810360008301526131a98184613156565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131f0826131c5565b9050919050565b613200816131e5565b811461320b57600080fd5b50565b60008135905061321d816131f7565b92915050565b6000819050919050565b61323681613223565b811461324157600080fd5b50565b6000813590506132538161322d565b92915050565b600080604083850312156132705761326f6131bb565b5b600061327e8582860161320e565b925050602061328f85828601613244565b9150509250929050565b60008115159050919050565b6132ae81613299565b82525050565b60006020820190506132c960008301846132a5565b92915050565b6132d881613299565b81146132e357600080fd5b50565b6000813590506132f5816132cf565b92915050565b60008060408385031215613312576133116131bb565b5b60006133208582860161320e565b9250506020613331858286016132e6565b9150509250929050565b600060208284031215613351576133506131bb565b5b600061335f8482850161320e565b91505092915050565b6000806040838503121561337f5761337e6131bb565b5b600061338d85828601613244565b925050602061339e85828601613244565b9150509250929050565b6133b181613223565b82525050565b60006020820190506133cc60008301846133a8565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613407816131e5565b82525050565b600061341983836133fe565b60208301905092915050565b6000602082019050919050565b600061343d826133d2565b61344781856133dd565b9350613452836133ee565b8060005b8381101561348357815161346a888261340d565b975061347583613425565b925050600181019050613456565b5085935050505092915050565b600060208201905081810360008301526134aa8184613432565b905092915050565b6000806000606084860312156134cb576134ca6131bb565b5b60006134d98682870161320e565b93505060206134ea8682870161320e565b92505060406134fb86828701613244565b9150509250925092565b600060808201905061351a60008301876133a8565b61352760208301866133a8565b61353460408301856133a8565b61354160608301846133a8565b95945050505050565b613553816131e5565b82525050565b600060208201905061356e600083018461354a565b92915050565b600060ff82169050919050565b61358a81613574565b82525050565b60006020820190506135a56000830184613581565b92915050565b6000806000606084860312156135c4576135c36131bb565b5b60006135d286828701613244565b93505060206135e386828701613244565b92505060406135f486828701613244565b9150509250925092565b600060208284031215613614576136136131bb565b5b600061362284828501613244565b91505092915050565b600060208284031215613641576136406131bb565b5b600061364f848285016132e6565b91505092915050565b6000806040838503121561366f5761366e6131bb565b5b600061367d858286016132e6565b925050602061368e85828601613244565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6136d582613145565b810181811067ffffffffffffffff821117156136f4576136f361369d565b5b80604052505050565b60006137076131b1565b905061371382826136cc565b919050565b600067ffffffffffffffff8211156137335761373261369d565b5b602082029050602081019050919050565b600080fd5b600061375c61375784613718565b6136fd565b9050808382526020820190506020840283018581111561377f5761377e613744565b5b835b818110156137a85780613794888261320e565b845260208401935050602081019050613781565b5050509392505050565b600082601f8301126137c7576137c6613698565b5b81356137d7848260208601613749565b91505092915050565b600067ffffffffffffffff8211156137fb576137fa61369d565b5b602082029050602081019050919050565b600061381f61381a846137e0565b6136fd565b9050808382526020820190506020840283018581111561384257613841613744565b5b835b8181101561386b57806138578882613244565b845260208401935050602081019050613844565b5050509392505050565b600082601f83011261388a57613889613698565b5b813561389a84826020860161380c565b91505092915050565b600080604083850312156138ba576138b96131bb565b5b600083013567ffffffffffffffff8111156138d8576138d76131c0565b5b6138e4858286016137b2565b925050602083013567ffffffffffffffff811115613905576139046131c0565b5b61391185828601613875565b9150509250929050565b60008060408385031215613932576139316131bb565b5b60006139408582860161320e565b92505060206139518582860161320e565b9150509250929050565b6000819050919050565b600061398061397b613976846131c5565b61395b565b6131c5565b9050919050565b600061399282613965565b9050919050565b60006139a482613987565b9050919050565b6139b481613999565b82525050565b60006020820190506139cf60008301846139ab565b92915050565b7f21594f5520415245204e4f5420544845204f574e455200000000000000000000600082015250565b6000613a0b601683613101565b9150613a16826139d5565b602082019050919050565b60006020820190508181036000830152613a3a816139fe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a7b82613223565b9150613a8683613223565b925082821015613a9957613a98613a41565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ade82613223565b9150613ae983613223565b925082613af957613af8613aa4565b5b828204905092915050565b6000613b0f82613223565b9150613b1a83613223565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b5357613b52613a41565b5b828202905092915050565b6000613b6982613223565b9150613b7483613223565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ba957613ba8613a41565b5b828201905092915050565b7f43616e206f6e6c792061697264726f70203130302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b6000613c10603683613101565b9150613c1b82613bb4565b604082019050919050565b60006020820190508181036000830152613c3f81613c03565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613ccc57808604811115613ca857613ca7613a41565b5b6001851615613cb75780820291505b8081029050613cc585613c75565b9450613c8c565b94509492505050565b600082613ce55760019050613da1565b81613cf35760009050613da1565b8160018114613d095760028114613d1357613d42565b6001915050613da1565b60ff841115613d2557613d24613a41565b5b8360020a915084821115613d3c57613d3b613a41565b5b50613da1565b5060208310610133831016604e8410600b8410161715613d775782820a905083811115613d7257613d71613a41565b5b613da1565b613d848484846001613c82565b92509050818404811115613d9b57613d9a613a41565b5b81810290505b9392505050565b6000613db382613223565b9150613dbe83613574565b9250613deb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613cd5565b905092915050565b6000613dfe82613223565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e3157613e30613a41565b5b600182019050919050565b600081519050613e4b8161322d565b92915050565b600060208284031215613e6757613e666131bb565b5b6000613e7584828501613e3c565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613eda602683613101565b9150613ee582613e7e565b604082019050919050565b60006020820190508181036000830152613f0981613ecd565b9050919050565b7f43616e6e6f7420626520616464726573732830292e0000000000000000000000600082015250565b6000613f46601583613101565b9150613f5182613f10565b602082019050919050565b60006020820190508181036000830152613f7581613f39565b9050919050565b7f4275792065786365656473206c696d6974000000000000000000000000000000600082015250565b6000613fb2601183613101565b9150613fbd82613f7c565b602082019050919050565b60006020820190508181036000830152613fe181613fa5565b9050919050565b600081519050613ff7816131f7565b92915050565b600060208284031215614013576140126131bb565b5b600061402184828501613fe8565b91505092915050565b6000819050919050565b600061404f61404a6140458461402a565b61395b565b613223565b9050919050565b61405f81614034565b82525050565b600060a08201905061407a60008301886133a8565b6140876020830187614056565b81810360408301526140998186613432565b90506140a8606083018561354a565b6140b560808301846133a8565b9695505050505050565b600060c0820190506140d4600083018961354a565b6140e160208301886133a8565b6140ee6040830187614056565b6140fb6060830186614056565b614108608083018561354a565b61411560a08301846133a8565b979650505050505050565b600080600060608486031215614139576141386131bb565b5b600061414786828701613e3c565b935050602061415886828701613e3c565b925050604061416986828701613e3c565b9150509250925092565b600081905092915050565b50565b600061418e600083614173565b91506141998261417e565b600082019050919050565b60006141af82614181565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b60006141ef601e83613101565b91506141fa826141b9565b602082019050919050565b6000602082019050818103600083015261421e816141e2565b905091905056fea2646970667358221220275b15532a059b20bbe4d47eb554ad433a3d65e3f4565aedbb400a95dd3e64b164736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c806370a082311161015a578063a8aa1b31116100c1578063dca3cef11161007a578063dca3cef1146109d1578063dd62ed3e146109fa578063e065099714610a37578063e5a772d214610a62578063f2fde38b14610a8b578063f887ea4014610ab457610293565b8063a8aa1b31146108ad578063a9059cbb146108d8578063b46ba24b14610915578063b56fa04b1461093e578063b704a9f614610969578063d51ed1c81461099457610293565b80638ca42e4e116101135780638ca42e4e146107b35780638ee41ca8146107dc57806395d89b41146108055780639b0ad05c146108305780639be953b314610859578063a5949bcf1461088257610293565b806370a08231146106a5578063715018a6146106e25780637a6d69b4146106f957806383bd84851461073657806387cfc4931461075f578063893d20e81461078857610293565b80632f54bf6e116101fe57806352aae9dd116101b757806352aae9dd146105a757806353cd6210146105d0578063599ca397146105fb57806359d3cac2146106265780636390aeeb1461064f5780636ddd17131461067a57610293565b80632f54bf6e146104ba578063313ce567146104f7578063364333f414610522578063470624021461053957806347375a37146105675780634c5d87101461057e57610293565b806318160ddd1161025057806318160ddd146103a35780631ca0b1d0146103ce57806323b872dd146103f95780632b112e49146104365780632b14ca56146104615780632d3b40471461048f57610293565b806306fdde0314610298578063095ea7b3146102c35780630c5b1d93146103005780630cb23d86146103295780631161ae391461036657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610adf565b6040516102ba919061318f565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190613259565b610b1c565b6040516102f791906132b4565b60405180910390f35b34801561030c57600080fd5b50610327600480360381019061032291906132fb565b610c0e565b005b34801561033557600080fd5b50610350600480360381019061034b919061333b565b610cb1565b60405161035d91906132b4565b60405180910390f35b34801561037257600080fd5b5061038d60048036038101906103889190613368565b610cd1565b60405161039a91906132b4565b60405180910390f35b3480156103af57600080fd5b506103b8610ce6565b6040516103c591906133b7565b60405180910390f35b3480156103da57600080fd5b506103e3610cf0565b6040516103f09190613490565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b91906134b2565b610d7e565b60405161042d91906132b4565b60405180910390f35b34801561044257600080fd5b5061044b610fd0565b60405161045891906133b7565b60405180910390f35b34801561046d57600080fd5b50610476611003565b6040516104869493929190613505565b60405180910390f35b34801561049b57600080fd5b506104a4611021565b6040516104b19190613559565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc919061333b565b611047565b6040516104ee91906132b4565b60405180910390f35b34801561050357600080fd5b5061050c6110a0565b6040516105199190613590565b60405180910390f35b34801561052e57600080fd5b506105376110a9565b005b34801561054557600080fd5b5061054e611160565b60405161055e9493929190613505565b60405180910390f35b34801561057357600080fd5b5061057c61117e565b005b34801561058a57600080fd5b506105a560048036038101906105a091906135ab565b6111e3565b005b3480156105b357600080fd5b506105ce60048036038101906105c991906135fe565b611293565b005b3480156105dc57600080fd5b506105e56112e5565b6040516105f291906132b4565b60405180910390f35b34801561060757600080fd5b506106106112f8565b60405161061d91906133b7565b60405180910390f35b34801561063257600080fd5b5061064d600480360381019061064891906135ab565b6112fe565b005b34801561065b57600080fd5b50610664611398565b60405161067191906133b7565b60405180910390f35b34801561068657600080fd5b5061068f6113a5565b60405161069c91906132b4565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c7919061333b565b6113b8565b6040516106d991906133b7565b60405180910390f35b3480156106ee57600080fd5b506106f7611401565b005b34801561070557600080fd5b50610720600480360381019061071b919061333b565b611507565b60405161072d91906132b4565b60405180910390f35b34801561074257600080fd5b5061075d6004803603810190610758919061362b565b611527565b005b34801561076b57600080fd5b506107866004803603810190610781919061333b565b61158c565b005b34801561079457600080fd5b5061079d61162f565b6040516107aa9190613559565b60405180910390f35b3480156107bf57600080fd5b506107da60048036038101906107d591906135fe565b611658565b005b3480156107e857600080fd5b5061080360048036038101906107fe9190613658565b6116aa565b005b34801561081157600080fd5b5061081a611731565b604051610827919061318f565b60405180910390f35b34801561083c57600080fd5b50610857600480360381019061085291906138a3565b61176e565b005b34801561086557600080fd5b50610880600480360381019061087b919061333b565b611881565b005b34801561088e57600080fd5b506108976119b4565b6040516108a49190613559565b60405180910390f35b3480156108b957600080fd5b506108c26119da565b6040516108cf9190613559565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa9190613259565b611a00565b60405161090c91906132b4565b60405180910390f35b34801561092157600080fd5b5061093c600480360381019061093791906135ab565b611a17565b005b34801561094a57600080fd5b50610953611ab1565b6040516109609190613559565b60405180910390f35b34801561097557600080fd5b5061097e611ad7565b60405161098b91906133b7565b60405180910390f35b3480156109a057600080fd5b506109bb60048036038101906109b691906135fe565b611add565b6040516109c891906133b7565b60405180910390f35b3480156109dd57600080fd5b506109f860048036038101906109f3919061391b565b611b3a565b005b348015610a0657600080fd5b50610a216004803603810190610a1c919061391b565b611c08565b604051610a2e91906133b7565b60405180910390f35b348015610a4357600080fd5b50610a4c611c8f565b604051610a5991906133b7565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a84919061333b565b611c95565b005b348015610a9757600080fd5b50610ab26004803603810190610aad919061333b565b611d90565b005b348015610ac057600080fd5b50610ac9611f05565b604051610ad691906139ba565b60405180910390f35b60606040518060400160405280600c81526020017f4275726e20446f204b776f6e0000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bfc91906133b7565b60405180910390a36001905092915050565b610c1733611047565b610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d90613a21565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60046020528060005260406000206000915054906101000a900460ff1681565b600082610cdd83611add565b11905092915050565b6000600854905090565b6060600f805480602002602001604051908101604052809291908181526020018280548015610d7457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610d2a575b5050505050905090565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e0d57600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fb95782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f389190613a70565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610fc4858585611f2b565b60019150509392505050565b6000610fdc60006113b8565b610fe761dead6113b8565b600854610ff49190613a70565b610ffe9190613a70565b905090565b60178060000154908060010154908060020154908060030154905084565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6110b233611047565b6110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e890613a21565b60405180910390fd5b600047905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561115c573d6000803e3d6000fd5b5050565b60138060000154908060010154908060020154908060030154905084565b61118733611047565b6111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90613a21565b60405180910390fd5b6001601f60176101000a81548160ff021916908315150217905550565b6111ec33611047565b61122b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122290613a21565b60405180910390fd5b826103e860085461123c9190613ad3565b6112469190613b04565b600c81905550816103e860085461125d9190613ad3565b6112679190613b04565b600d81905550806103e860085461127e9190613ad3565b6112889190613b04565b600e81905550505050565b61129c33611047565b6112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d290613a21565b60405180910390fd5b8060128190555050565b601f60149054906101000a900460ff1681565b600b5481565b61130733611047565b611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133d90613a21565b60405180910390fd5b8260176000018190555081601760010181905550806017600201819055506017600201546017600101546017600001546113809190613b5e565b61138a9190613b5e565b601760030181905550505050565b6000600f80549050905090565b601f60189054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61140a33611047565b611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144090613a21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60026020528060005260406000206000915054906101000a900460ff1681565b61153033611047565b61156f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156690613a21565b60405180910390fd5b80601f60146101000a81548160ff02191690831515021790555050565b61159533611047565b6115d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cb90613a21565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61166133611047565b6116a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169790613a21565b60405180910390fd5b8060118190555050565b6116b333611047565b6116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e990613a21565b60405180910390fd5b81601f60186101000a81548160ff021916908315150217905550806103e860085461171d9190613ad3565b6117279190613b04565b6020819055505050565b60606040518060400160405280600481526020017f2442444b00000000000000000000000000000000000000000000000000000000815250905090565b61177733611047565b6117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad90613a21565b60405180910390fd5b60648251106117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190613c26565b60405180910390fd5b60005b825181101561187c57600083828151811061181b5761181a613c46565b5b6020026020010151905060006012600a6118359190613da8565b84848151811061184857611847613c46565b5b602002602001015161185a9190613b04565b9050611867338383611f2b565b5050808061187490613df3565b9150506117fd565b505050565b61188a33611047565b6118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c090613a21565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119049190613559565b602060405180830381865afa158015611921573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119459190613e51565b9050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119af573d6000803e3d6000fd5b505050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611a0d338484611f2b565b6001905092915050565b611a2033611047565b611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613a21565b60405180910390fd5b826013600001819055508160136001018190555080601360020181905550601360020154601360010154601360000154611a999190613b5e565b611aa39190613b5e565b601360030181905550505050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000611ae7610fd0565b6002611b14601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113b8565b611b1e9190613b04565b83611b299190613b04565b611b339190613ad3565b9050919050565b611b4333611047565b611b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7990613a21565b60405180910390fd5b81601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b611c9e33611047565b611cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd490613a21565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d9933611047565b611dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcf90613a21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3f90613ef0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f955750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb90613f5c565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121195750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121305750601f60159054906101000a900460ff165b90508015612148576121438686866122ae565b6122a6565b601f60179054906101000a900460ff1661216157600080fd5b601f60149054906101000a900460ff1615612186576121818686866123c0565b6122a5565b821561219c57612197868686612549565b6122a4565b81156121c8576121aa61267b565b156121b8576121b76126f8565b5b6121c3868686612826565b6122a3565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561226c5750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61227557600080fd5b600e5484612282876113b8565b61228c9190613b5e565b111561229757600080fd5b6122a2868686612922565b5b5b5b5b505050505050565b6123028382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122fd9190613a70565b612972565b6123568282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123519190613b5e565b612972565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123b391906133b7565b60405180910390a3505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561241757600080fd5b600c5481111561245c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245390613fc8565b60405180910390fd5b6064605a8261246b9190613b04565b6124759190613ad3565b6010819055506001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506125448383836010546129ba565b505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125a057600080fd5b600c548111156125e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125dc90613fc8565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661265f576103e86013600301548261264a9190613b04565b6126549190613ad3565b601081905550612668565b60006010819055505b6126768383836010546129ba565b505050565b6000601f60169054906101000a900460ff161580156126a65750601f60189054906101000a900460ff165b80156126f35750602054600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601f60166101000a81548160ff021916908315150217905550600061271e306113b8565b905060006013600301546017600301546127389190613b5e565b60136000015460176000015461274e9190613b5e565b836127599190613b04565b6127639190613ad3565b9050600081836127739190613a70565b905060006002836127849190613ad3565b9050600081846127949190613a70565b905080836127a29190613b5e565b945060004790506127b286612b99565b600081476127c09190613a70565b905060008784836127d19190613b04565b6127db9190613ad3565b90506127e78582612daf565b600083476127f59190613a70565b905061280081612eb8565b5050505050505050506000601f60166101000a81548160ff021916908315150217905550565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561287d57600080fd5b600d5481111561288c57600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612906576103e8601760030154826128f19190613b04565b6128fb9190613ad3565b60108190555061290f565b60006010819055505b61291d8383836010546129ba565b505050565b6103e8601154826129339190613b04565b61293d9190613ad3565b601081905550600060105411156129615761295c8383836010546129ba565b61296d565b61296c8383836122ae565b5b505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000601054836129ca9190613a70565b9050612a208584600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1b9190613a70565b612972565b612a743083600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6f9190613b5e565b612972565b612ac88482600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac39190613b5e565b612972565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b2591906133b7565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b8a91906133b7565b60405180910390a35050505050565b6000600267ffffffffffffffff811115612bb657612bb561369d565b5b604051908082528060200260200182016040528015612be45781602001602082028036833780820191505090505b5090503081600081518110612bfc57612bfb613c46565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc79190613ffd565b81600181518110612cdb57612cda613c46565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d79959493929190614065565b600060405180830381600087803b158015612d9357600080fd5b505af1158015612da7573d6000803e3d6000fd5b505050505050565b6001601f60156101000a81548160ff021916908315150217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e53969594939291906140bf565b60606040518083038185885af1158015612e71573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e969190614120565b5050506000601f60156101000a81548160ff0219169083151502179055505050565b6000601760020154601360020154612ed09190613b5e565b90506000601760010154601360010154612eea9190613b5e565b905060008183612efa9190613b5e565b90506000818486612f0b9190613b04565b612f159190613ad3565b90506000828487612f269190613b04565b612f309190613ad3565b90506000811115613010576000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612f87906141a4565b600060405180830381858888f193505050503d8060008114612fc5576040519150601f19603f3d011682016040523d82523d6000602084013e612fca565b606091505b505090508061300e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300590614205565b60405180910390fd5b505b60008211156130ee576000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051613065906141a4565b600060405180830381858888f193505050503d80600081146130a3576040519150601f19603f3d011682016040523d82523d6000602084013e6130a8565b606091505b50509050806130ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e390614205565b60405180910390fd5b505b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613130578082015181840152602081019050613115565b8381111561313f576000848401525b50505050565b6000601f19601f8301169050919050565b6000613161826130f6565b61316b8185613101565b935061317b818560208601613112565b61318481613145565b840191505092915050565b600060208201905081810360008301526131a98184613156565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131f0826131c5565b9050919050565b613200816131e5565b811461320b57600080fd5b50565b60008135905061321d816131f7565b92915050565b6000819050919050565b61323681613223565b811461324157600080fd5b50565b6000813590506132538161322d565b92915050565b600080604083850312156132705761326f6131bb565b5b600061327e8582860161320e565b925050602061328f85828601613244565b9150509250929050565b60008115159050919050565b6132ae81613299565b82525050565b60006020820190506132c960008301846132a5565b92915050565b6132d881613299565b81146132e357600080fd5b50565b6000813590506132f5816132cf565b92915050565b60008060408385031215613312576133116131bb565b5b60006133208582860161320e565b9250506020613331858286016132e6565b9150509250929050565b600060208284031215613351576133506131bb565b5b600061335f8482850161320e565b91505092915050565b6000806040838503121561337f5761337e6131bb565b5b600061338d85828601613244565b925050602061339e85828601613244565b9150509250929050565b6133b181613223565b82525050565b60006020820190506133cc60008301846133a8565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613407816131e5565b82525050565b600061341983836133fe565b60208301905092915050565b6000602082019050919050565b600061343d826133d2565b61344781856133dd565b9350613452836133ee565b8060005b8381101561348357815161346a888261340d565b975061347583613425565b925050600181019050613456565b5085935050505092915050565b600060208201905081810360008301526134aa8184613432565b905092915050565b6000806000606084860312156134cb576134ca6131bb565b5b60006134d98682870161320e565b93505060206134ea8682870161320e565b92505060406134fb86828701613244565b9150509250925092565b600060808201905061351a60008301876133a8565b61352760208301866133a8565b61353460408301856133a8565b61354160608301846133a8565b95945050505050565b613553816131e5565b82525050565b600060208201905061356e600083018461354a565b92915050565b600060ff82169050919050565b61358a81613574565b82525050565b60006020820190506135a56000830184613581565b92915050565b6000806000606084860312156135c4576135c36131bb565b5b60006135d286828701613244565b93505060206135e386828701613244565b92505060406135f486828701613244565b9150509250925092565b600060208284031215613614576136136131bb565b5b600061362284828501613244565b91505092915050565b600060208284031215613641576136406131bb565b5b600061364f848285016132e6565b91505092915050565b6000806040838503121561366f5761366e6131bb565b5b600061367d858286016132e6565b925050602061368e85828601613244565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6136d582613145565b810181811067ffffffffffffffff821117156136f4576136f361369d565b5b80604052505050565b60006137076131b1565b905061371382826136cc565b919050565b600067ffffffffffffffff8211156137335761373261369d565b5b602082029050602081019050919050565b600080fd5b600061375c61375784613718565b6136fd565b9050808382526020820190506020840283018581111561377f5761377e613744565b5b835b818110156137a85780613794888261320e565b845260208401935050602081019050613781565b5050509392505050565b600082601f8301126137c7576137c6613698565b5b81356137d7848260208601613749565b91505092915050565b600067ffffffffffffffff8211156137fb576137fa61369d565b5b602082029050602081019050919050565b600061381f61381a846137e0565b6136fd565b9050808382526020820190506020840283018581111561384257613841613744565b5b835b8181101561386b57806138578882613244565b845260208401935050602081019050613844565b5050509392505050565b600082601f83011261388a57613889613698565b5b813561389a84826020860161380c565b91505092915050565b600080604083850312156138ba576138b96131bb565b5b600083013567ffffffffffffffff8111156138d8576138d76131c0565b5b6138e4858286016137b2565b925050602083013567ffffffffffffffff811115613905576139046131c0565b5b61391185828601613875565b9150509250929050565b60008060408385031215613932576139316131bb565b5b60006139408582860161320e565b92505060206139518582860161320e565b9150509250929050565b6000819050919050565b600061398061397b613976846131c5565b61395b565b6131c5565b9050919050565b600061399282613965565b9050919050565b60006139a482613987565b9050919050565b6139b481613999565b82525050565b60006020820190506139cf60008301846139ab565b92915050565b7f21594f5520415245204e4f5420544845204f574e455200000000000000000000600082015250565b6000613a0b601683613101565b9150613a16826139d5565b602082019050919050565b60006020820190508181036000830152613a3a816139fe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a7b82613223565b9150613a8683613223565b925082821015613a9957613a98613a41565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ade82613223565b9150613ae983613223565b925082613af957613af8613aa4565b5b828204905092915050565b6000613b0f82613223565b9150613b1a83613223565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b5357613b52613a41565b5b828202905092915050565b6000613b6982613223565b9150613b7483613223565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ba957613ba8613a41565b5b828201905092915050565b7f43616e206f6e6c792061697264726f70203130302077616c6c6574732070657260008201527f2074786e2064756520746f20676173206c696d69747300000000000000000000602082015250565b6000613c10603683613101565b9150613c1b82613bb4565b604082019050919050565b60006020820190508181036000830152613c3f81613c03565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613ccc57808604811115613ca857613ca7613a41565b5b6001851615613cb75780820291505b8081029050613cc585613c75565b9450613c8c565b94509492505050565b600082613ce55760019050613da1565b81613cf35760009050613da1565b8160018114613d095760028114613d1357613d42565b6001915050613da1565b60ff841115613d2557613d24613a41565b5b8360020a915084821115613d3c57613d3b613a41565b5b50613da1565b5060208310610133831016604e8410600b8410161715613d775782820a905083811115613d7257613d71613a41565b5b613da1565b613d848484846001613c82565b92509050818404811115613d9b57613d9a613a41565b5b81810290505b9392505050565b6000613db382613223565b9150613dbe83613574565b9250613deb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613cd5565b905092915050565b6000613dfe82613223565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e3157613e30613a41565b5b600182019050919050565b600081519050613e4b8161322d565b92915050565b600060208284031215613e6757613e666131bb565b5b6000613e7584828501613e3c565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613eda602683613101565b9150613ee582613e7e565b604082019050919050565b60006020820190508181036000830152613f0981613ecd565b9050919050565b7f43616e6e6f7420626520616464726573732830292e0000000000000000000000600082015250565b6000613f46601583613101565b9150613f5182613f10565b602082019050919050565b60006020820190508181036000830152613f7581613f39565b9050919050565b7f4275792065786365656473206c696d6974000000000000000000000000000000600082015250565b6000613fb2601183613101565b9150613fbd82613f7c565b602082019050919050565b60006020820190508181036000830152613fe181613fa5565b9050919050565b600081519050613ff7816131f7565b92915050565b600060208284031215614013576140126131bb565b5b600061402184828501613fe8565b91505092915050565b6000819050919050565b600061404f61404a6140458461402a565b61395b565b613223565b9050919050565b61405f81614034565b82525050565b600060a08201905061407a60008301886133a8565b6140876020830187614056565b81810360408301526140998186613432565b90506140a8606083018561354a565b6140b560808301846133a8565b9695505050505050565b600060c0820190506140d4600083018961354a565b6140e160208301886133a8565b6140ee6040830187614056565b6140fb6060830186614056565b614108608083018561354a565b61411560a08301846133a8565b979650505050505050565b600080600060608486031215614139576141386131bb565b5b600061414786828701613e3c565b935050602061415886828701613e3c565b925050604061416986828701613e3c565b9150509250925092565b600081905092915050565b50565b600061418e600083614173565b91506141998261417e565b600082019050919050565b60006141af82614181565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b60006141ef601e83613101565b91506141fa826141b9565b602082019050919050565b6000602082019050818103600083015261421e816141e2565b905091905056fea2646970667358221220275b15532a059b20bbe4d47eb554ad433a3d65e3f4565aedbb400a95dd3e64b164736f6c634300080a0033

Deployed Bytecode Sourcemap

5450:16024:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20191:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20611:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9953:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5614:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13533:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19921:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13143:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21008:463;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12999:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6869:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;6924:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3391:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20015:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12494:171;;;;;;;;;;;;;:::i;:::-;;6842:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;9825:120;;;;;;;;;;;;;:::i;:::-;;9481:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10305:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7441:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6205:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10909:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13250:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7658:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20361:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3752:146;;;;;;;;;;;;;:::i;:::-;;5511:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12383:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12110:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20277:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11340:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10091:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20101:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11650:452;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12673:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7267:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7384:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20835:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10486:352;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7183:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6166:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13361:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11467:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20471:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6128:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12223:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3502:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7353:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20191:80;20239:13;20263:5;;;;;;;;;;;;;;;;;20256:12;;20191:80;:::o;20611:216::-;20686:4;20738:6;20703:11;:23;20715:10;20703:23;;;;;;;;;;;;;;;:32;20727:7;20703:32;;;;;;;;;;;;;;;:41;;;;20781:7;20760:37;;20769:10;20760:37;;;20790:6;20760:37;;;;;;:::i;:::-;;;;;;;;20815:4;20808:11;;20611:216;;;;:::o;9953:130::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10068:7:::1;10046:12;:19;10059:5;10046:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;9953:130:::0;;:::o;5614:54::-;;;;;;;;;;;;;;;;;;;;;;:::o;13533:150::-;13613:4;13669:6;13637:29;13657:8;13637:19;:29::i;:::-;:38;13630:45;;13533:150;;;;:::o;19921:88::-;19976:7;19994:12;;19987:19;;19921:88;:::o;13143:99::-;13189:16;13224:10;13217:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13143:99;:::o;21008:463::-;21106:4;21123:18;21144:11;:19;21156:6;21144:19;;;;;;;;;;;;;;;:31;21164:10;21144:31;;;;;;;;;;;;;;;;21123:52;;21208:6;21194:10;:20;;21186:29;;;;;;21275:17;21240:11;:19;21252:6;21240:19;;;;;;;;;;;;;;;:31;21260:10;21240:31;;;;;;;;;;;;;;;;:52;21236:159;;21377:6;21343:11;:19;21355:6;21343:19;;;;;;;;;;;;;;;:31;21363:10;21343:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;21309:11;:19;21321:6;21309:19;;;;;;;;;;;;;;;:31;21329:10;21309:31;;;;;;;;;;;;;;;:74;;;;21236:159;21405:36;21415:6;21423:9;21434:6;21405:9;:36::i;:::-;21459:4;21452:11;;;21008:463;;;;;:::o;12999:136::-;13052:7;13112:15;7132:42;13112:9;:15::i;:::-;13094;7051:42;13094:9;:15::i;:::-;13079:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;13072:55;;12999:136;:::o;6869:22::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;6924:82::-;;;;;;;;;;;;;:::o;3391:103::-;3446:4;3481:5;;;;;;;;;;;3470:16;;:7;:16;;;3463:23;;3391:103;;;:::o;20015:80::-;20067:5;6004:2;20076:16;;20015:80;:::o;12494:171::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;12553:26:::1;12582:21;12553:50;;12622:5;::::0;::::1;;;;;;;;12614:23;;:43;12638:18;12614:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12542:123;12494:171::o:0;6842:20::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;9825:120::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9933:4:::1;9902:28;;:35;;;;;;;;;;;;;;;;;;9825:120::o:0;9481:336::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9656:17:::1;9649:4;9635:12;;:18;;;;:::i;:::-;:38;;;;:::i;:::-;9620:12;:53;;;;9721:18;9714:4;9700:12;;:18;;;;:::i;:::-;:39;;;;:::i;:::-;9684:13;:55;;;;9789:20;9782:4;9768:12;;:18;;;;:::i;:::-;:41;;;;:::i;:::-;9750:15;:59;;;;9481:336:::0;;;:::o;10305:111::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10402:6:::1;10384:15;:24;;;;10305:111:::0;:::o;7441:33::-;;;;;;;;;;;;;:::o;6205:34::-;;;;:::o;10909:360::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11061:13:::1;11038:7;:20;;:36;;;;11108:13;11085:7;:20;;:36;;;;11155:13;11132:7;:20;;:36;;;;11241:7;:20;;;11218:7;:20;;;11195:7;:20;;;:43;;;;:::i;:::-;:66;;;;:::i;:::-;11179:7;:13;;:82;;;;10909:360:::0;;;:::o;13250:103::-;13302:7;13328:10;:17;;;;13321:24;;13250:103;:::o;7658:30::-;;;;;;;;;;;;;:::o;20361:104::-;20427:7;20445:9;:18;20455:7;20445:18;;;;;;;;;;;;;;;;20438:25;;20361:104;;;:::o;3752:146::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;3858:1:::1;3822:39;;3843:5;::::0;::::1;;;;;;;;3822:39;;;;;;;;;;;;3888:1;3872:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;3752:146::o:0;5511:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;12383:103::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;12473:5:::1;12456:14;;:22;;;;;;;;;;;;;;;;;;12383:103:::0;:::o;12110:105::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;12202:5:::1;12179:12;:20;12192:6;12179:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12110:105:::0;:::o;20277:78::-;20329:7;20347:5;;;;;;;;;;;20340:12;;20277:78;:::o;11340:119::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11439:12:::1;11425:11;:26;;;;11340:119:::0;:::o;10091:206::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10213:8:::1;10199:11;;:22;;;;;;;;;;;;;;;;;;10270:19;10263:4;10248:12;;:19;;;;:::i;:::-;:41;;;;:::i;:::-;10232:13;:57;;;;10091:206:::0;;:::o;20101:84::-;20151:13;20175:7;;;;;;;;;;;;;;;;;20168:14;;20101:84;:::o;11650:452::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11799:3:::1;11775:14;:21;:27;11767:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;11876:9;11872:223;11895:14;:21;11891:1;:25;11872:223;;;11937:14;11954;11969:1;11954:17;;;;;;;;:::i;:::-;;;;;;;;11937:34;;11986:14;6004:2;12017;:13;;;;:::i;:::-;12004:7;12012:1;12004:10;;;;;;;;:::i;:::-;;;;;;;;:26;;;;:::i;:::-;11986:45;;12046:37;12056:10;12068:6;12076;12046:9;:37::i;:::-;11922:173;;11918:3;;;;;:::i;:::-;;;;11872:223;;;;11650:452:::0;;:::o;12673:206::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;12742:24:::1;12775:6;12769:23;;;12801:4;12769:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12742:65;;12826:17;;;;;;;;;;;12818:35;;:53;12854:16;12818:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12731:148;12673:206:::0;:::o;7267:77::-;;;;;;;;;;;;;:::o;7384:19::-;;;;;;;;;;;;;:::o;20835:165::-;20913:4;20930:40;20940:10;20952:9;20963:6;20930:9;:40::i;:::-;20988:4;20981:11;;20835:165;;;;:::o;10486:352::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10636:13:::1;10614:6;:19;;:35;;;;10682:13;10660:6;:19;;:35;;;;10728:13;10706:6;:19;;:35;;;;10811:6;:19;;;10789:6;:19;;;10767:6;:19;;;:41;;;;:::i;:::-;:63;;;;:::i;:::-;10752:6;:12;;:78;;;;10486:352:::0;;;:::o;7183:77::-;;;;;;;;;;;;;:::o;6166:32::-;;;;:::o;13361:164::-;13429:7;13494:22;:20;:22::i;:::-;13487:1;13468:15;13478:4;;;;;;;;;;;13468:9;:15::i;:::-;:21;;;;:::i;:::-;13456:8;:34;;;;:::i;:::-;:61;;;;:::i;:::-;13449:68;;13361:164;;;:::o;11467:175::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11584:9:::1;11564:17;;:29;;;;;;;;;;;;;;;;;;11624:10;11604:17;;:30;;;;;;;;;;;;;;;;;;11467:175:::0;;:::o;20471:132::-;20555:7;20573:11;:19;20585:6;20573:19;;;;;;;;;;;;;;;:28;20593:7;20573:28;;;;;;;;;;;;;;;;20566:35;;20471:132;;;;:::o;6128:31::-;;;;:::o;12223:152::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;12327:4:::1;12296:22;:30;12319:6;12296:30;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12363:4;12342:12;:20;12355:6;12342:20;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;12223:152:::0;:::o;3502:242::-;3326:19;3334:10;3326:7;:19::i;:::-;3318:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;3611:1:::1;3591:22;;:8;:22;;;;3583:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3700:8;3672:37;;3693:5;::::0;::::1;;;;;;;;3672:37;;;;;;;;;;;;3728:8;3720:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;3502:242:::0;:::o;7353:24::-;;;;;;;;;;;;;:::o;13807:1168::-;13918:1;13902:18;;:6;:18;;;;:41;;;;;13941:1;13922:21;;:9;:21;;;;13902:41;13894:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13979:10;13990:22;:30;14013:6;13990:30;;;;;;;;;;;;;;;;;;;;;;;;;13979:41;;14031:11;14043:22;:33;14066:9;14043:33;;;;;;;;;;;;;;;;;;;;;;;;;14031:45;;14087:15;14103:12;:20;14116:6;14103:20;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;14125:12;:23;14138:9;14125:23;;;;;;;;;;;;;;;;;;;;;;;;;14103:45;:56;;;;14150:9;;;;;;;;;;;14103:56;14087:72;;14175:10;14172:796;;;14186:42;14204:6;14211:9;14221:6;14186:17;:42::i;:::-;14172:796;;;14254:28;;;;;;;;;;;14246:37;;;;;;14336:14;;;;;;;;;;;14333:624;;;14351:39;14366:6;14373:9;14383:6;14351:14;:39::i;:::-;14333:624;;;14440:5;14437:520;;;14446:35;14457:6;14464:9;14474:6;14446:10;:35::i;:::-;14437:520;;;14532:6;14529:428;;;14598:16;:14;:16::i;:::-;14594:35;;;14617:10;:8;:10::i;:::-;14594:35;14647:36;14659:6;14666:9;14676:6;14647:11;:36::i;:::-;14529:428;;;14766:12;:20;14779:6;14766:20;;;;;;;;;;;;;;;;;;;;;;;;;14765:21;:47;;;;;14789:12;:23;14802:9;14789:23;;;;;;;;;;;;;;;;;;;;;;;;;14788:24;14765:47;14757:56;;;;;;14869:15;;14861:6;14840:20;14850:9;14840;:20::i;:::-;:27;;;;:::i;:::-;:44;;14832:53;;;;;;14904:37;14917:6;14924:9;14934:6;14904:12;:37::i;:::-;14529:428;14437:520;14333:624;14172:796;13883:1092;;;13807:1168;;;:::o;16379:263::-;16474:47;16489:6;16514;16496:9;:17;16506:6;16496:17;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;16474:14;:47::i;:::-;16532:53;16547:9;16578:6;16557:9;:20;16567:9;16557:20;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;16532:14;:53::i;:::-;16617:9;16601:33;;16610:6;16601:33;;;16627:6;16601:33;;;;;;:::i;:::-;;;;;;;;16379:263;;;:::o;14983:378::-;15084:12;:23;15097:9;15084:23;;;;;;;;;;;;;;;;;;;;;;;;;15083:24;15075:33;;;;;;15137:12;;15127:6;:22;;15119:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;15203:3;15200:2;15193:6;:9;;;;:::i;:::-;:13;;;;:::i;:::-;15182:8;:24;;;;15241:4;15217:12;:23;15230:9;15217:23;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15256:10;15280:9;15256:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15302:51;15320:6;15327:9;15337:6;15344:8;;15302:17;:51::i;:::-;14983:378;;;:::o;15369:368::-;15466:12;:23;15479:9;15466:23;;;;;;;;;;;;;;;;;;;;;;;;;15465:24;15457:33;;;;;;15519:12;;15509:6;:22;;15501:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;15568:12;:23;15581:9;15568:23;;;;;;;;;;;;;;;;;;;;;;;;;15564:103;;15634:4;15621:6;:12;;;15614:6;:19;;;;:::i;:::-;:24;;;;:::i;:::-;15603:8;:35;;;;15564:103;;;15666:1;15655:8;:12;;;;15564:103;15678:51;15696:6;15703:9;15713:6;15720:8;;15678:17;:51::i;:::-;15369:368;;;:::o;17248:186::-;17296:4;17334:6;;;;;;;;;;;17333:7;:35;;;;;17357:11;;;;;;;;;;;17333:35;:93;;;;;17413:13;;17385:9;:24;17403:4;17385:24;;;;;;;;;;;;;;;;:41;;17333:93;17313:113;;17248:186;:::o;17445:728::-;7799:4;7790:6;;:13;;;;;;;;;;;;;;;;;;17493:14:::1;17510:24;17528:4;17510:9;:24::i;:::-;17493:41;;17547:21;17638:6;:12;;;17622:7;:13;;;:28;;;;:::i;:::-;17600:6;:19;;;17577:7;:20;;;:42;;;;:::i;:::-;17569:6;:51;;;;:::i;:::-;:82;;;;:::i;:::-;17547:104;;17662:18;17688:13;17681:6;:20;;;;:::i;:::-;17662:39;;17712:16;17743:1;17729:13;:15;;;;:::i;:::-;17712:32;;17755:19;17789:8;17775:13;:22;;;;:::i;:::-;17755:42;;17826:11;17815:10;:22;;;;:::i;:::-;17808:29;;17848:14;17863:21;17848:36;;17895:25;17913:6;17895:17;:25::i;:::-;17931:14;17968:6;17946:21;:28;;;;:::i;:::-;17931:43;;17985:13;18020:6;18007:11;18000:6;:18;;;;:::i;:::-;17999:27;;;;:::i;:::-;17985:41;;18037:29;18051:8;18060:5;18037:13;:29::i;:::-;18077:20;18120:6;18098:21;:28;;;;:::i;:::-;18077:49;;18137:28;18152:12;18137:14;:28::i;:::-;17482:691;;;;;;;;;7835:5:::0;7826:6;;:14;;;;;;;;;;;;;;;;;;17445:728::o;15743:344::-;15841:12;:20;15854:6;15841:20;;;;;;;;;;;;;;;;;;;;;;;;;15840:21;15832:30;;;;;;15891:13;;15881:6;:23;;15873:32;;;;;;15920:12;:20;15933:6;15920:20;;;;;;;;;;;;;;;;;;;;;;;;;15916:101;;15984:4;15970:7;:13;;;15963:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;15952:8;:36;;;;15916:101;;;16016:1;16005:8;:12;;;;15916:101;16028:51;16046:6;16053:9;16063:6;16070:8;;16028:17;:51::i;:::-;15743:344;;;:::o;16095:276::-;16217:4;16205:11;;16196:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;16185:8;:36;;;;16247:1;16236:8;;:12;16232:132;;;16251:51;16269:6;16276:9;16286:6;16293:8;;16251:17;:51::i;:::-;16232:132;;;16320:42;16338:6;16345:9;16355:6;16320:17;:42::i;:::-;16232:132;16095:276;;;:::o;17122:118::-;17222:10;17201:9;:18;17211:7;17201:18;;;;;;;;;;;;;;;:31;;;;17122:118;;:::o;16650:464::-;16763:17;16790:8;;16783:6;:15;;;;:::i;:::-;16763:35;;16809:47;16824:6;16849;16831:9;:17;16841:6;16831:17;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;16809:14;:47::i;:::-;16867:64;16890:4;16921:9;16896;:24;16914:4;16896:24;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;16867:14;:64::i;:::-;16942:56;16957:9;16988;16967;:20;16977:9;16967:20;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;16942:14;:56::i;:::-;17030:9;17014:36;;17023:6;17014:36;;;17040:9;17014:36;;;;;;:::i;:::-;;;;;;;;17090:4;17066:40;;17075:6;17066:40;;;17096:9;17066:40;;;;;;:::i;:::-;;;;;;;;16752:362;16650:464;;;;:::o;19134:369::-;19196:21;19232:1;19218:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19196:38;;19263:4;19245;19250:1;19245:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19289:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19279:4;19284:1;19279:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19313:6;;;;;;;;;;;:57;;;19385:6;19406:1;19422:4;19449;19469:15;19313:182;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19185:318;19134:369;:::o;19511:341::-;19603:4;19593:9;;:14;;;;;;;;;;;;;;;;;;19618:6;;;;;;;;;;;:22;;;19648:9;19681:4;19701:12;19728:1;19744;19760:17;;;;;;;;;;;19792:15;19618:200;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19839:5;19829:9;;:15;;;;;;;;;;;;;;;;;;19511:341;;:::o;18181:945::-;18246:20;18292:7;:20;;;18270:6;:19;;;:42;;;;:::i;:::-;18246:67;;18324:20;18370:7;:20;;;18348:6;:19;;;:42;;;;:::i;:::-;18324:67;;18402:16;18437:12;18422;:27;;;;:::i;:::-;18402:48;;18463:26;18525:8;18508:12;18492;:29;;;;:::i;:::-;:42;;;;:::i;:::-;18463:71;;18545:26;18607:8;18590:12;18574;:29;;;;:::i;:::-;:42;;;;:::i;:::-;18545:71;;18653:1;18632:18;:22;18629:235;;;18667:21;18725:17;;;;;;;;;;;18717:31;;18756:18;18781:5;18717:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18666:125;;;18810:16;18802:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;18655:209;18629:235;18908:1;18887:18;:22;18884:235;;;18922:21;18980:17;;;;;;;;;;;18972:31;;19011:18;19036:5;18972:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18921:125;;;19065:16;19057:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;18910:209;18884:235;18235:891;;;;;18181:945;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:116::-;3564:21;3579:5;3564:21;:::i;:::-;3557:5;3554:32;3544:60;;3600:1;3597;3590:12;3544:60;3494:116;:::o;3616:133::-;3659:5;3697:6;3684:20;3675:29;;3713:30;3737:5;3713:30;:::i;:::-;3616:133;;;;:::o;3755:468::-;3820:6;3828;3877:2;3865:9;3856:7;3852:23;3848:32;3845:119;;;3883:79;;:::i;:::-;3845:119;4003:1;4028:53;4073:7;4064:6;4053:9;4049:22;4028:53;:::i;:::-;4018:63;;3974:117;4130:2;4156:50;4198:7;4189:6;4178:9;4174:22;4156:50;:::i;:::-;4146:60;;4101:115;3755:468;;;;;:::o;4229:329::-;4288:6;4337:2;4325:9;4316:7;4312:23;4308:32;4305:119;;;4343:79;;:::i;:::-;4305:119;4463:1;4488:53;4533:7;4524:6;4513:9;4509:22;4488:53;:::i;:::-;4478:63;;4434:117;4229:329;;;;:::o;4564:474::-;4632:6;4640;4689:2;4677:9;4668:7;4664:23;4660:32;4657:119;;;4695:79;;:::i;:::-;4657:119;4815:1;4840:53;4885:7;4876:6;4865:9;4861:22;4840:53;:::i;:::-;4830:63;;4786:117;4942:2;4968:53;5013:7;5004:6;4993:9;4989:22;4968:53;:::i;:::-;4958:63;;4913:118;4564:474;;;;;:::o;5044:118::-;5131:24;5149:5;5131:24;:::i;:::-;5126:3;5119:37;5044:118;;:::o;5168:222::-;5261:4;5299:2;5288:9;5284:18;5276:26;;5312:71;5380:1;5369:9;5365:17;5356:6;5312:71;:::i;:::-;5168:222;;;;:::o;5396:114::-;5463:6;5497:5;5491:12;5481:22;;5396:114;;;:::o;5516:184::-;5615:11;5649:6;5644:3;5637:19;5689:4;5684:3;5680:14;5665:29;;5516:184;;;;:::o;5706:132::-;5773:4;5796:3;5788:11;;5826:4;5821:3;5817:14;5809:22;;5706:132;;;:::o;5844:108::-;5921:24;5939:5;5921:24;:::i;:::-;5916:3;5909:37;5844:108;;:::o;5958:179::-;6027:10;6048:46;6090:3;6082:6;6048:46;:::i;:::-;6126:4;6121:3;6117:14;6103:28;;5958:179;;;;:::o;6143:113::-;6213:4;6245;6240:3;6236:14;6228:22;;6143:113;;;:::o;6292:732::-;6411:3;6440:54;6488:5;6440:54;:::i;:::-;6510:86;6589:6;6584:3;6510:86;:::i;:::-;6503:93;;6620:56;6670:5;6620:56;:::i;:::-;6699:7;6730:1;6715:284;6740:6;6737:1;6734:13;6715:284;;;6816:6;6810:13;6843:63;6902:3;6887:13;6843:63;:::i;:::-;6836:70;;6929:60;6982:6;6929:60;:::i;:::-;6919:70;;6775:224;6762:1;6759;6755:9;6750:14;;6715:284;;;6719:14;7015:3;7008:10;;6416:608;;;6292:732;;;;:::o;7030:373::-;7173:4;7211:2;7200:9;7196:18;7188:26;;7260:9;7254:4;7250:20;7246:1;7235:9;7231:17;7224:47;7288:108;7391:4;7382:6;7288:108;:::i;:::-;7280:116;;7030:373;;;;:::o;7409:619::-;7486:6;7494;7502;7551:2;7539:9;7530:7;7526:23;7522:32;7519:119;;;7557:79;;:::i;:::-;7519:119;7677:1;7702:53;7747:7;7738:6;7727:9;7723:22;7702:53;:::i;:::-;7692:63;;7648:117;7804:2;7830:53;7875:7;7866:6;7855:9;7851:22;7830:53;:::i;:::-;7820:63;;7775:118;7932:2;7958:53;8003:7;7994:6;7983:9;7979:22;7958:53;:::i;:::-;7948:63;;7903:118;7409:619;;;;;:::o;8034:553::-;8211:4;8249:3;8238:9;8234:19;8226:27;;8263:71;8331:1;8320:9;8316:17;8307:6;8263:71;:::i;:::-;8344:72;8412:2;8401:9;8397:18;8388:6;8344:72;:::i;:::-;8426;8494:2;8483:9;8479:18;8470:6;8426:72;:::i;:::-;8508;8576:2;8565:9;8561:18;8552:6;8508:72;:::i;:::-;8034:553;;;;;;;:::o;8593:118::-;8680:24;8698:5;8680:24;:::i;:::-;8675:3;8668:37;8593:118;;:::o;8717:222::-;8810:4;8848:2;8837:9;8833:18;8825:26;;8861:71;8929:1;8918:9;8914:17;8905:6;8861:71;:::i;:::-;8717:222;;;;:::o;8945:86::-;8980:7;9020:4;9013:5;9009:16;8998:27;;8945:86;;;:::o;9037:112::-;9120:22;9136:5;9120:22;:::i;:::-;9115:3;9108:35;9037:112;;:::o;9155:214::-;9244:4;9282:2;9271:9;9267:18;9259:26;;9295:67;9359:1;9348:9;9344:17;9335:6;9295:67;:::i;:::-;9155:214;;;;:::o;9375:619::-;9452:6;9460;9468;9517:2;9505:9;9496:7;9492:23;9488:32;9485:119;;;9523:79;;:::i;:::-;9485:119;9643:1;9668:53;9713:7;9704:6;9693:9;9689:22;9668:53;:::i;:::-;9658:63;;9614:117;9770:2;9796:53;9841:7;9832:6;9821:9;9817:22;9796:53;:::i;:::-;9786:63;;9741:118;9898:2;9924:53;9969:7;9960:6;9949:9;9945:22;9924:53;:::i;:::-;9914:63;;9869:118;9375:619;;;;;:::o;10000:329::-;10059:6;10108:2;10096:9;10087:7;10083:23;10079:32;10076:119;;;10114:79;;:::i;:::-;10076:119;10234:1;10259:53;10304:7;10295:6;10284:9;10280:22;10259:53;:::i;:::-;10249:63;;10205:117;10000:329;;;;:::o;10335:323::-;10391:6;10440:2;10428:9;10419:7;10415:23;10411:32;10408:119;;;10446:79;;:::i;:::-;10408:119;10566:1;10591:50;10633:7;10624:6;10613:9;10609:22;10591:50;:::i;:::-;10581:60;;10537:114;10335:323;;;;:::o;10664:468::-;10729:6;10737;10786:2;10774:9;10765:7;10761:23;10757:32;10754:119;;;10792:79;;:::i;:::-;10754:119;10912:1;10937:50;10979:7;10970:6;10959:9;10955:22;10937:50;:::i;:::-;10927:60;;10883:114;11036:2;11062:53;11107:7;11098:6;11087:9;11083:22;11062:53;:::i;:::-;11052:63;;11007:118;10664:468;;;;;:::o;11138:117::-;11247:1;11244;11237:12;11261:180;11309:77;11306:1;11299:88;11406:4;11403:1;11396:15;11430:4;11427:1;11420:15;11447:281;11530:27;11552:4;11530:27;:::i;:::-;11522:6;11518:40;11660:6;11648:10;11645:22;11624:18;11612:10;11609:34;11606:62;11603:88;;;11671:18;;:::i;:::-;11603:88;11711:10;11707:2;11700:22;11490:238;11447:281;;:::o;11734:129::-;11768:6;11795:20;;:::i;:::-;11785:30;;11824:33;11852:4;11844:6;11824:33;:::i;:::-;11734:129;;;:::o;11869:311::-;11946:4;12036:18;12028:6;12025:30;12022:56;;;12058:18;;:::i;:::-;12022:56;12108:4;12100:6;12096:17;12088:25;;12168:4;12162;12158:15;12150:23;;11869:311;;;:::o;12186:117::-;12295:1;12292;12285:12;12326:710;12422:5;12447:81;12463:64;12520:6;12463:64;:::i;:::-;12447:81;:::i;:::-;12438:90;;12548:5;12577:6;12570:5;12563:21;12611:4;12604:5;12600:16;12593:23;;12664:4;12656:6;12652:17;12644:6;12640:30;12693:3;12685:6;12682:15;12679:122;;;12712:79;;:::i;:::-;12679:122;12827:6;12810:220;12844:6;12839:3;12836:15;12810:220;;;12919:3;12948:37;12981:3;12969:10;12948:37;:::i;:::-;12943:3;12936:50;13015:4;13010:3;13006:14;12999:21;;12886:144;12870:4;12865:3;12861:14;12854:21;;12810:220;;;12814:21;12428:608;;12326:710;;;;;:::o;13059:370::-;13130:5;13179:3;13172:4;13164:6;13160:17;13156:27;13146:122;;13187:79;;:::i;:::-;13146:122;13304:6;13291:20;13329:94;13419:3;13411:6;13404:4;13396:6;13392:17;13329:94;:::i;:::-;13320:103;;13136:293;13059:370;;;;:::o;13435:311::-;13512:4;13602:18;13594:6;13591:30;13588:56;;;13624:18;;:::i;:::-;13588:56;13674:4;13666:6;13662:17;13654:25;;13734:4;13728;13724:15;13716:23;;13435:311;;;:::o;13769:710::-;13865:5;13890:81;13906:64;13963:6;13906:64;:::i;:::-;13890:81;:::i;:::-;13881:90;;13991:5;14020:6;14013:5;14006:21;14054:4;14047:5;14043:16;14036:23;;14107:4;14099:6;14095:17;14087:6;14083:30;14136:3;14128:6;14125:15;14122:122;;;14155:79;;:::i;:::-;14122:122;14270:6;14253:220;14287:6;14282:3;14279:15;14253:220;;;14362:3;14391:37;14424:3;14412:10;14391:37;:::i;:::-;14386:3;14379:50;14458:4;14453:3;14449:14;14442:21;;14329:144;14313:4;14308:3;14304:14;14297:21;;14253:220;;;14257:21;13871:608;;13769:710;;;;;:::o;14502:370::-;14573:5;14622:3;14615:4;14607:6;14603:17;14599:27;14589:122;;14630:79;;:::i;:::-;14589:122;14747:6;14734:20;14772:94;14862:3;14854:6;14847:4;14839:6;14835:17;14772:94;:::i;:::-;14763:103;;14579:293;14502:370;;;;:::o;14878:894::-;14996:6;15004;15053:2;15041:9;15032:7;15028:23;15024:32;15021:119;;;15059:79;;:::i;:::-;15021:119;15207:1;15196:9;15192:17;15179:31;15237:18;15229:6;15226:30;15223:117;;;15259:79;;:::i;:::-;15223:117;15364:78;15434:7;15425:6;15414:9;15410:22;15364:78;:::i;:::-;15354:88;;15150:302;15519:2;15508:9;15504:18;15491:32;15550:18;15542:6;15539:30;15536:117;;;15572:79;;:::i;:::-;15536:117;15677:78;15747:7;15738:6;15727:9;15723:22;15677:78;:::i;:::-;15667:88;;15462:303;14878:894;;;;;:::o;15778:474::-;15846:6;15854;15903:2;15891:9;15882:7;15878:23;15874:32;15871:119;;;15909:79;;:::i;:::-;15871:119;16029:1;16054:53;16099:7;16090:6;16079:9;16075:22;16054:53;:::i;:::-;16044:63;;16000:117;16156:2;16182:53;16227:7;16218:6;16207:9;16203:22;16182:53;:::i;:::-;16172:63;;16127:118;15778:474;;;;;:::o;16258:60::-;16286:3;16307:5;16300:12;;16258:60;;;:::o;16324:142::-;16374:9;16407:53;16425:34;16434:24;16452:5;16434:24;:::i;:::-;16425:34;:::i;:::-;16407:53;:::i;:::-;16394:66;;16324:142;;;:::o;16472:126::-;16522:9;16555:37;16586:5;16555:37;:::i;:::-;16542:50;;16472:126;;;:::o;16604:144::-;16672:9;16705:37;16736:5;16705:37;:::i;:::-;16692:50;;16604:144;;;:::o;16754:167::-;16859:55;16908:5;16859:55;:::i;:::-;16854:3;16847:68;16754:167;;:::o;16927:258::-;17038:4;17076:2;17065:9;17061:18;17053:26;;17089:89;17175:1;17164:9;17160:17;17151:6;17089:89;:::i;:::-;16927:258;;;;:::o;17191:172::-;17331:24;17327:1;17319:6;17315:14;17308:48;17191:172;:::o;17369:366::-;17511:3;17532:67;17596:2;17591:3;17532:67;:::i;:::-;17525:74;;17608:93;17697:3;17608:93;:::i;:::-;17726:2;17721:3;17717:12;17710:19;;17369:366;;;:::o;17741:419::-;17907:4;17945:2;17934:9;17930:18;17922:26;;17994:9;17988:4;17984:20;17980:1;17969:9;17965:17;17958:47;18022:131;18148:4;18022:131;:::i;:::-;18014:139;;17741:419;;;:::o;18166:180::-;18214:77;18211:1;18204:88;18311:4;18308:1;18301:15;18335:4;18332:1;18325:15;18352:191;18392:4;18412:20;18430:1;18412:20;:::i;:::-;18407:25;;18446:20;18464:1;18446:20;:::i;:::-;18441:25;;18485:1;18482;18479:8;18476:34;;;18490:18;;:::i;:::-;18476:34;18535:1;18532;18528:9;18520:17;;18352:191;;;;:::o;18549:180::-;18597:77;18594:1;18587:88;18694:4;18691:1;18684:15;18718:4;18715:1;18708:15;18735:185;18775:1;18792:20;18810:1;18792:20;:::i;:::-;18787:25;;18826:20;18844:1;18826:20;:::i;:::-;18821:25;;18865:1;18855:35;;18870:18;;:::i;:::-;18855:35;18912:1;18909;18905:9;18900:14;;18735:185;;;;:::o;18926:348::-;18966:7;18989:20;19007:1;18989:20;:::i;:::-;18984:25;;19023:20;19041:1;19023:20;:::i;:::-;19018:25;;19211:1;19143:66;19139:74;19136:1;19133:81;19128:1;19121:9;19114:17;19110:105;19107:131;;;19218:18;;:::i;:::-;19107:131;19266:1;19263;19259:9;19248:20;;18926:348;;;;:::o;19280:305::-;19320:3;19339:20;19357:1;19339:20;:::i;:::-;19334:25;;19373:20;19391:1;19373:20;:::i;:::-;19368:25;;19527:1;19459:66;19455:74;19452:1;19449:81;19446:107;;;19533:18;;:::i;:::-;19446:107;19577:1;19574;19570:9;19563:16;;19280:305;;;;:::o;19591:241::-;19731:34;19727:1;19719:6;19715:14;19708:58;19800:24;19795:2;19787:6;19783:15;19776:49;19591:241;:::o;19838:366::-;19980:3;20001:67;20065:2;20060:3;20001:67;:::i;:::-;19994:74;;20077:93;20166:3;20077:93;:::i;:::-;20195:2;20190:3;20186:12;20179:19;;19838:366;;;:::o;20210:419::-;20376:4;20414:2;20403:9;20399:18;20391:26;;20463:9;20457:4;20453:20;20449:1;20438:9;20434:17;20427:47;20491:131;20617:4;20491:131;:::i;:::-;20483:139;;20210:419;;;:::o;20635:180::-;20683:77;20680:1;20673:88;20780:4;20777:1;20770:15;20804:4;20801:1;20794:15;20821:102;20863:8;20910:5;20907:1;20903:13;20882:34;;20821:102;;;:::o;20929:848::-;20990:5;20997:4;21021:6;21012:15;;21045:5;21036:14;;21059:712;21080:1;21070:8;21067:15;21059:712;;;21175:4;21170:3;21166:14;21160:4;21157:24;21154:50;;;21184:18;;:::i;:::-;21154:50;21234:1;21224:8;21220:16;21217:451;;;21649:4;21642:5;21638:16;21629:25;;21217:451;21699:4;21693;21689:15;21681:23;;21729:32;21752:8;21729:32;:::i;:::-;21717:44;;21059:712;;;20929:848;;;;;;;:::o;21783:1073::-;21837:5;22028:8;22018:40;;22049:1;22040:10;;22051:5;;22018:40;22077:4;22067:36;;22094:1;22085:10;;22096:5;;22067:36;22163:4;22211:1;22206:27;;;;22247:1;22242:191;;;;22156:277;;22206:27;22224:1;22215:10;;22226:5;;;22242:191;22287:3;22277:8;22274:17;22271:43;;;22294:18;;:::i;:::-;22271:43;22343:8;22340:1;22336:16;22327:25;;22378:3;22371:5;22368:14;22365:40;;;22385:18;;:::i;:::-;22365:40;22418:5;;;22156:277;;22542:2;22532:8;22529:16;22523:3;22517:4;22514:13;22510:36;22492:2;22482:8;22479:16;22474:2;22468:4;22465:12;22461:35;22445:111;22442:246;;;22598:8;22592:4;22588:19;22579:28;;22633:3;22626:5;22623:14;22620:40;;;22640:18;;:::i;:::-;22620:40;22673:5;;22442:246;22713:42;22751:3;22741:8;22735:4;22732:1;22713:42;:::i;:::-;22698:57;;;;22787:4;22782:3;22778:14;22771:5;22768:25;22765:51;;;22796:18;;:::i;:::-;22765:51;22845:4;22838:5;22834:16;22825:25;;21783:1073;;;;;;:::o;22862:281::-;22920:5;22944:23;22962:4;22944:23;:::i;:::-;22936:31;;22988:25;23004:8;22988:25;:::i;:::-;22976:37;;23032:104;23069:66;23059:8;23053:4;23032:104;:::i;:::-;23023:113;;22862:281;;;;:::o;23149:233::-;23188:3;23211:24;23229:5;23211:24;:::i;:::-;23202:33;;23257:66;23250:5;23247:77;23244:103;;;23327:18;;:::i;:::-;23244:103;23374:1;23367:5;23363:13;23356:20;;23149:233;;;:::o;23388:143::-;23445:5;23476:6;23470:13;23461:22;;23492:33;23519:5;23492:33;:::i;:::-;23388:143;;;;:::o;23537:351::-;23607:6;23656:2;23644:9;23635:7;23631:23;23627:32;23624:119;;;23662:79;;:::i;:::-;23624:119;23782:1;23807:64;23863:7;23854:6;23843:9;23839:22;23807:64;:::i;:::-;23797:74;;23753:128;23537:351;;;;:::o;23894:225::-;24034:34;24030:1;24022:6;24018:14;24011:58;24103:8;24098:2;24090:6;24086:15;24079:33;23894:225;:::o;24125:366::-;24267:3;24288:67;24352:2;24347:3;24288:67;:::i;:::-;24281:74;;24364:93;24453:3;24364:93;:::i;:::-;24482:2;24477:3;24473:12;24466:19;;24125:366;;;:::o;24497:419::-;24663:4;24701:2;24690:9;24686:18;24678:26;;24750:9;24744:4;24740:20;24736:1;24725:9;24721:17;24714:47;24778:131;24904:4;24778:131;:::i;:::-;24770:139;;24497:419;;;:::o;24922:171::-;25062:23;25058:1;25050:6;25046:14;25039:47;24922:171;:::o;25099:366::-;25241:3;25262:67;25326:2;25321:3;25262:67;:::i;:::-;25255:74;;25338:93;25427:3;25338:93;:::i;:::-;25456:2;25451:3;25447:12;25440:19;;25099:366;;;:::o;25471:419::-;25637:4;25675:2;25664:9;25660:18;25652:26;;25724:9;25718:4;25714:20;25710:1;25699:9;25695:17;25688:47;25752:131;25878:4;25752:131;:::i;:::-;25744:139;;25471:419;;;:::o;25896:167::-;26036:19;26032:1;26024:6;26020:14;26013:43;25896:167;:::o;26069:366::-;26211:3;26232:67;26296:2;26291:3;26232:67;:::i;:::-;26225:74;;26308:93;26397:3;26308:93;:::i;:::-;26426:2;26421:3;26417:12;26410:19;;26069:366;;;:::o;26441:419::-;26607:4;26645:2;26634:9;26630:18;26622:26;;26694:9;26688:4;26684:20;26680:1;26669:9;26665:17;26658:47;26722:131;26848:4;26722:131;:::i;:::-;26714:139;;26441:419;;;:::o;26866:143::-;26923:5;26954:6;26948:13;26939:22;;26970:33;26997:5;26970:33;:::i;:::-;26866:143;;;;:::o;27015:351::-;27085:6;27134:2;27122:9;27113:7;27109:23;27105:32;27102:119;;;27140:79;;:::i;:::-;27102:119;27260:1;27285:64;27341:7;27332:6;27321:9;27317:22;27285:64;:::i;:::-;27275:74;;27231:128;27015:351;;;;:::o;27372:85::-;27417:7;27446:5;27435:16;;27372:85;;;:::o;27463:158::-;27521:9;27554:61;27572:42;27581:32;27607:5;27581:32;:::i;:::-;27572:42;:::i;:::-;27554:61;:::i;:::-;27541:74;;27463:158;;;:::o;27627:147::-;27722:45;27761:5;27722:45;:::i;:::-;27717:3;27710:58;27627:147;;:::o;27780:831::-;28043:4;28081:3;28070:9;28066:19;28058:27;;28095:71;28163:1;28152:9;28148:17;28139:6;28095:71;:::i;:::-;28176:80;28252:2;28241:9;28237:18;28228:6;28176:80;:::i;:::-;28303:9;28297:4;28293:20;28288:2;28277:9;28273:18;28266:48;28331:108;28434:4;28425:6;28331:108;:::i;:::-;28323:116;;28449:72;28517:2;28506:9;28502:18;28493:6;28449:72;:::i;:::-;28531:73;28599:3;28588:9;28584:19;28575:6;28531:73;:::i;:::-;27780:831;;;;;;;;:::o;28617:807::-;28866:4;28904:3;28893:9;28889:19;28881:27;;28918:71;28986:1;28975:9;28971:17;28962:6;28918:71;:::i;:::-;28999:72;29067:2;29056:9;29052:18;29043:6;28999:72;:::i;:::-;29081:80;29157:2;29146:9;29142:18;29133:6;29081:80;:::i;:::-;29171;29247:2;29236:9;29232:18;29223:6;29171:80;:::i;:::-;29261:73;29329:3;29318:9;29314:19;29305:6;29261:73;:::i;:::-;29344;29412:3;29401:9;29397:19;29388:6;29344:73;:::i;:::-;28617:807;;;;;;;;;:::o;29430:663::-;29518:6;29526;29534;29583:2;29571:9;29562:7;29558:23;29554:32;29551:119;;;29589:79;;:::i;:::-;29551:119;29709:1;29734:64;29790:7;29781:6;29770:9;29766:22;29734:64;:::i;:::-;29724:74;;29680:128;29847:2;29873:64;29929:7;29920:6;29909:9;29905:22;29873:64;:::i;:::-;29863:74;;29818:129;29986:2;30012:64;30068:7;30059:6;30048:9;30044:22;30012:64;:::i;:::-;30002:74;;29957:129;29430:663;;;;;:::o;30099:147::-;30200:11;30237:3;30222:18;;30099:147;;;;:::o;30252:114::-;;:::o;30372:398::-;30531:3;30552:83;30633:1;30628:3;30552:83;:::i;:::-;30545:90;;30644:93;30733:3;30644:93;:::i;:::-;30762:1;30757:3;30753:11;30746:18;;30372:398;;;:::o;30776:379::-;30960:3;30982:147;31125:3;30982:147;:::i;:::-;30975:154;;31146:3;31139:10;;30776:379;;;:::o;31161:180::-;31301:32;31297:1;31289:6;31285:14;31278:56;31161:180;:::o;31347:366::-;31489:3;31510:67;31574:2;31569:3;31510:67;:::i;:::-;31503:74;;31586:93;31675:3;31586:93;:::i;:::-;31704:2;31699:3;31695:12;31688:19;;31347:366;;;:::o;31719:419::-;31885:4;31923:2;31912:9;31908:18;31900:26;;31972:9;31966:4;31962:20;31958:1;31947:9;31943:17;31936:47;32000:131;32126:4;32000:131;:::i;:::-;31992:139;;31719:419;;;:::o

Swarm Source

ipfs://275b15532a059b20bbe4d47eb554ad433a3d65e3f4565aedbb400a95dd3e64b1
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.