ETH Price: $2,698.61 (-1.47%)

Token

YTUber AI (YTuber AI)
 

Overview

Max Total Supply

1,000,000,000 YTuber AI

Holders

104

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,232,744.988471181 YTuber AI

Value
$0.00
0xc03bd762ff7a58a6bbd2828dcf955082c51c5e46
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:
YTuberAI

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: unlicensed

/*

Use any of our AI actors to create videos for your Youtube channel!

TG: https://t.me/YTuberAI

Website: https://ytuber-ai.com/

*/

pragma solidity ^0.8.6;

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

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

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

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!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 getUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    function Ownershiplock(uint256 time) public virtual onlyOwner {
        _previousOwner = owner;
        owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(owner, address(0));
    }

    function Ownershipunlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is locked");
        emit OwnershipTransferred(owner, _previousOwner);
        owner = _previousOwner;
    }
}

/**
 * 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;
}

/**
 * Contract Code
 */

contract YTuberAI is ERC20, Ownable {

    address WBNB = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "YTUber AI"; // 
    string constant _symbol = "YTuber AI"; // 
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 1 * 10**9 * 10**_decimals;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    
    // Detailed Fees
    uint256 public liquidityFee;
    uint256 public devFee;
    uint256 public marketingFee;
    uint256 public buybackFee;
    uint256 public totalFee;

    uint256 public BuyliquidityFee    = 1;
    uint256 public BuydevFee   = 5;
    uint256 public BuymarketingFee    = 5;
    uint256 public BuybuybackFee      = 15;
    uint256 public BuytotalFee        = BuyliquidityFee + BuydevFee + BuymarketingFee + BuybuybackFee;

    uint256 public SellliquidityFee    = 1;
    uint256 public SelldevFee   = 5;
    uint256 public SellmarketingFee    = 5;
    uint256 public SellbuybackFee      = 15;
    uint256 public SelltotalFee        = SellliquidityFee + SelldevFee + SellmarketingFee + SellbuybackFee;

    // Max wallet & Transaction
    uint256 public _maxBuyTxAmount = _totalSupply / (100) * (3); // 3%
    uint256 public _maxSellTxAmount = _totalSupply / (100) * (3); // 3%
    uint256 public _maxWalletToken = _totalSupply / (100) * (3); // 3%

    // Fees receivers
    address public autoLiquidityReceiver = 0x653f106A2925634B7B546ad0246c9A140a6D7A85;
    address public marketingFeeReceiver = 0x653f106A2925634B7B546ad0246c9A140a6D7A85;
    address public devFeeReceiver = 0x41E15A1F817a19b30C7aa90B5Ac305d49b222BC2;
    address public buybackFeeReceiver = 0x41E15A1F817a19b30C7aa90B5Ac305d49b222BC2;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 1; // 0.1%
    uint256 public maxSwapSize = _totalSupply / 100 * 3; //3%
    uint256 public tokensToSell;

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
  
    constructor () Ownable(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    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 approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(sender == pair){
            buyFees();
        }

        if(recipient == pair){
            sellFees();
        }

        if (sender != owner && recipient != address(this) && recipient != address(DEAD) && recipient != pair || isTxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        // Checks max transaction limit
        if(sender == pair){
            require(amount <= _maxBuyTxAmount || isTxLimitExempt[recipient], "TX Limit Exceeded");
        }
        
        if(recipient == pair){
            require(amount <= _maxSellTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        }
        //Exchange tokens
        if(shouldSwapBack()){ swapBack(); }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(recipient, amount) : amount;
        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + (amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    // Internal Functions
    function buyFees() internal{
        liquidityFee    = BuyliquidityFee;
        devFee   = BuydevFee;
        marketingFee    = BuymarketingFee;
        buybackFee      = BuybuybackFee;
        totalFee        = BuytotalFee;
    }

    function sellFees() internal{
        liquidityFee    = SellliquidityFee;
        devFee   = SelldevFee;
        marketingFee    = SellmarketingFee;
        buybackFee      = SellbuybackFee;
        totalFee        = SelltotalFee;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount / 100 * (totalFee);

        _balances[address(this)] = _balances[address(this)] + (feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount - (feeAmount);
    }
  
    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));
        if(contractTokenBalance >= maxSwapSize){
            tokensToSell = maxSwapSize;            
        }
        else{
            tokensToSell = contractTokenBalance;
        }

        uint256 amountToLiquify = tokensToSell / (totalFee) * (liquidityFee) / (2);
        uint256 amountToSwap = tokensToSell - (amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WBNB;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance - (balanceBefore);

        uint256 totalBNBFee = totalFee - (liquidityFee / (2));
        
        uint256 amountBNBLiquidity = amountBNB * (liquidityFee) / (totalBNBFee) / (2);
        uint256 amountBNBbuyback = amountBNB * (buybackFee) / (totalBNBFee);
        uint256 amountBNBMarketing = amountBNB * (marketingFee) / (totalBNBFee);
        uint256 amountBNBDev = amountBNB - amountBNBLiquidity - amountBNBbuyback - amountBNBMarketing;

        (bool MarketingSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");
        (bool buybackSuccess,) = payable(buybackFeeReceiver).call{value: amountBNBbuyback, gas: 30000}("");
        require(buybackSuccess, "receiver rejected ETH transfer");
        (bool devSuccess,) = payable(devFeeReceiver).call{value: amountBNBDev, gas: 30000}("");
        require(devSuccess, "receiver rejected ETH transfer");

        addLiquidity(amountToLiquify, amountBNBLiquidity);
    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
    if(tokenAmount > 0){
            router.addLiquidityETH{value: bnbAmount}(
                address(this),
                tokenAmount,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(bnbAmount, tokenAmount);
        }
    }

    // External Functions
    function checkSwapThreshold() external view returns (uint256) {
        return swapThreshold;
    }
    
    function checkMaxWalletToken() external view returns (uint256) {
        return _maxWalletToken;
    }
    
    function checkMaxBuyTxAmount() external view returns (uint256) {
        return _maxBuyTxAmount;
    }
    
    function checkMaxSellTxAmount() external view returns (uint256) {
        return _maxSellTxAmount;
    }

    function isNotInSwap() external view returns (bool) {
        return !inSwap;
    }

    // Only Owner allowed
    function setBuyFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee) external onlyOwner {
        BuyliquidityFee = _liquidityFee;
        BuybuybackFee = _buybackFee;
        BuymarketingFee = _marketingFee;
        BuydevFee = _devFee;
        BuytotalFee = _liquidityFee + (_buybackFee) + (_marketingFee) + (_devFee);
    }

    function setSellFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee) external onlyOwner {
        SellliquidityFee = _liquidityFee;
        SellbuybackFee = _buybackFee;
        SellmarketingFee = _marketingFee;
        SelldevFee = _devFee;
        SelltotalFee = _liquidityFee + (_buybackFee) + (_marketingFee) + (_devFee);
    }
    
    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _buybackFeeReceiver, address _devFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _percentage_min_base10000, uint256 _percentage_max_base10000) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _totalSupply / (10000) * (_percentage_min_base10000);
        maxSwapSize = _totalSupply / (10000) * (_percentage_max_base10000);
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }
    
    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        _maxWalletToken = _totalSupply / (1000) * (maxWallPercent_base1000);
    }

    function setMaxBuyTxPercent_base1000(uint256 maxBuyTXPercentage_base1000) external onlyOwner {
        _maxBuyTxAmount = _totalSupply / (1000) * (maxBuyTXPercentage_base1000);
    }

    function setMaxSellTxPercent_base1000(uint256 maxSellTXPercentage_base1000) external onlyOwner {
        _maxSellTxAmount = _totalSupply / (1000) * (maxSellTXPercentage_base1000);
    }

    // Stuck Balances Functions
    function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountBNB = address(this).balance;
        payable(msg.sender).transfer(amountBNB * amountPercentage / 100);
    }

event AutoLiquify(uint256 amountBNB, uint256 amountTokens);

}

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":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","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":[],"name":"BuybuybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuydevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyliquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuymarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuytotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"Ownershiplock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Ownershipunlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SellbuybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SelldevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellliquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellmarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SelltotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxBuyTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSellTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkMaxBuyTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkMaxSellTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkMaxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNotInSwap","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":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuyTXPercentage_base1000","type":"uint256"}],"name":"setMaxBuyTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSellTXPercentage_base1000","type":"uint256"}],"name":"setMaxSellTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentage_min_base10000","type":"uint256"},{"internalType":"uint256","name":"_percentage_max_base10000","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ee9190620009b5565b633b9aca00620000ff919062000af2565b600655600160105560056011556005601255600f6013556013546012546011546010546200012e9190620008c5565b6200013a9190620008c5565b620001469190620008c5565b601455600160155560056016556005601755600f601855601854601754601654601554620001759190620008c5565b620001819190620008c5565b6200018d9190620008c5565b60195560036064600654620001a3919062000922565b620001af919062000af2565b601a5560036064600654620001c5919062000922565b620001d1919062000af2565b601b5560036064600654620001e7919062000922565b620001f3919062000af2565b601c5573653f106a2925634b7b546ad0246c9a140a6d7a85601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073653f106a2925634b7b546ad0246c9a140a6d7a85601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507341e15a1f817a19b30c7aa90b5ac305d49b222bc2601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507341e15a1f817a19b30c7aa90b5ac305d49b222bc2602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001602260146101000a81548160ff02191690831515021790555060016103e860065462000379919062000922565b62000385919062000af2565b602355600360646006546200039b919062000922565b620003a7919062000af2565b602455348015620003b757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620004b857600080fd5b505afa158015620004cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f3919062000827565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620005519291906200087b565b602060405180830381600087803b1580156200056c57600080fd5b505af115801562000581573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005a7919062000827565b602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600654600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620008029190620008a8565b60405180910390a362000c28565b600081519050620008218162000c0e565b92915050565b60006020828403121562000840576200083f62000bfc565b5b6000620008508482850162000810565b91505092915050565b620008648162000b53565b82525050565b620008758162000b87565b82525050565b600060408201905062000892600083018562000859565b620008a1602083018462000859565b9392505050565b6000602082019050620008bf60008301846200086a565b92915050565b6000620008d28262000b87565b9150620008df8362000b87565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000917576200091662000b9e565b5b828201905092915050565b60006200092f8262000b87565b91506200093c8362000b87565b9250826200094f576200094e62000bcd565b5b828204905092915050565b6000808291508390505b6001851115620009ac5780860481111562000984576200098362000b9e565b5b6001851615620009945780820291505b8081029050620009a48562000c01565b945062000964565b94509492505050565b6000620009c28262000b87565b9150620009cf8362000b91565b9250620009fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a06565b905092915050565b60008262000a18576001905062000aeb565b8162000a28576000905062000aeb565b816001811462000a41576002811462000a4c5762000a82565b600191505062000aeb565b60ff84111562000a615762000a6062000b9e565b5b8360020a91508482111562000a7b5762000a7a62000b9e565b5b5062000aeb565b5060208310610133831016604e8410600b841016171562000abc5782820a90508381111562000ab65762000ab562000b9e565b5b62000aeb565b62000acb84848460016200095a565b9250905081840481111562000ae55762000ae462000b9e565b5b81810290505b9392505050565b600062000aff8262000b87565b915062000b0c8362000b87565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b485762000b4762000b9e565b5b828202905092915050565b600062000b608262000b67565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000c198162000b53565b811462000c2557600080fd5b50565b6140668062000c386000396000f3fe6080604052600436106103b15760003560e01c80636ddd1713116101e7578063ab00d68d1161010d578063e96fada2116100a0578063f7baf3c51161006f578063f7baf3c514610e19578063f84ba65d14610e30578063f887ea4014610e59578063fc44ed4814610e84576103b8565b8063e96fada214610d6f578063e99090c114610d9a578063ea19e4a814610dc5578063f2fde38b14610df0576103b8565b8063d0889358116100dc578063d088935814610cb3578063dab84ee714610cdc578063dd62ed3e14610d07578063e9563dfd14610d44576103b8565b8063ab00d68d14610c07578063b43b783514610c32578063ca33e64c14610c5d578063cf4be39414610c88576103b8565b8063893d20e81161018557806398118cb41161015457806398118cb414610b4b578063a4e1307114610b76578063a8aa1b3114610b9f578063a9059cbb14610bca576103b8565b8063893d20e814610a8f5780638b42507f14610aba57806395d89b4114610af757806396c99f5b14610b22576103b8565b806378109e54116101c157806378109e54146109e35780637fbcedff14610a0e57806383b4ac6814610a3957806384b1d1ef14610a64576103b8565b80636ddd17131461095057806370a082311461097b5780637724555f146109b8576103b8565b8063391e73a3116102d7578063602bc62b1161026a5780636b67c4df116102395780636b67c4df146108a65780636c5b2855146108d15780636d351d1a146108fa5780636d796e8814610925576103b8565b8063602bc62b146107fc5780636533e39314610827578063658d4b7f146108525780636827e7641461087b576103b8565b80633f4218e0116102a65780633f4218e01461072c5780634f28cac214610769578063541b4de714610794578063571ac8b0146107bf576103b8565b8063391e73a3146106825780633b2d081c146106ad5780633c8e556d146106d85780633d95669114610701576103b8565b80631898cab21161034f5780632f54bf6e1161031e5780632f54bf6e146105b2578063313ce567146105ef578063334773271461061a57806333f3d62814610645576103b8565b80631898cab2146104f65780631da1db5e146105215780631df4ccfc1461054a57806323b872dd14610575576103b8565b8063095ea7b31161038b578063095ea7b31461043c578063154d4abb14610479578063178d9b8e146104a257806318160ddd146104cb576103b8565b80630445b667146103bd57806306fdde03146103e857806309302dc614610413576103b8565b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610eaf565b6040516103df9190613a99565b60405180910390f35b3480156103f457600080fd5b506103fd610eb5565b60405161040a9190613997565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190613590565b610ef2565b005b34801561044857600080fd5b50610463600480360381019061045e91906134d0565b610f5e565b6040516104709190613961565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b9190613590565b611050565b005b3480156104ae57600080fd5b506104c960048036038101906104c49190613610565b6110bc565b005b3480156104d757600080fd5b506104e061114e565b6040516104ed9190613a99565b60405180910390f35b34801561050257600080fd5b5061050b611158565b6040516105189190613a99565b60405180910390f35b34801561052d57600080fd5b5061054860048036038101906105439190613590565b611162565b005b34801561055657600080fd5b5061055f611211565b60405161056c9190613a99565b60405180910390f35b34801561058157600080fd5b5061059c6004803603810190610597919061343d565b611217565b6040516105a99190613961565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d49190613369565b6113d9565b6040516105e69190613961565b60405180910390f35b3480156105fb57600080fd5b50610604611432565b6040516106119190613b37565b60405180910390f35b34801561062657600080fd5b5061062f61143b565b60405161063c9190613a99565b60405180910390f35b34801561065157600080fd5b5061066c600480360381019061066791906134d0565b611441565b6040516106799190613961565b60405180910390f35b34801561068e57600080fd5b50610697611520565b6040516106a49190613a99565b60405180910390f35b3480156106b957600080fd5b506106c2611526565b6040516106cf9190613a99565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa91906133d6565b61152c565b005b34801561070d57600080fd5b5061071661167e565b6040516107239190613a99565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190613369565b611684565b6040516107609190613961565b60405180910390f35b34801561077557600080fd5b5061077e6116a4565b60405161078b9190613a99565b60405180910390f35b3480156107a057600080fd5b506107a96116aa565b6040516107b69190613a99565b60405180910390f35b3480156107cb57600080fd5b506107e660048036038101906107e19190613369565b6116b4565b6040516107f39190613961565b60405180910390f35b34801561080857600080fd5b506108116116e7565b60405161081e9190613a99565b60405180910390f35b34801561083357600080fd5b5061083c6116f1565b6040516108499190613a99565b60405180910390f35b34801561085e57600080fd5b5061087960048036038101906108749190613490565b6116f7565b005b34801561088757600080fd5b5061089061179a565b60405161089d9190613a99565b60405180910390f35b3480156108b257600080fd5b506108bb6117a0565b6040516108c89190613a99565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f39190613610565b6117a6565b005b34801561090657600080fd5b5061090f611838565b60405161091c9190613a99565b60405180910390f35b34801561093157600080fd5b5061093a611842565b6040516109479190613a99565b60405180910390f35b34801561095c57600080fd5b50610965611848565b6040516109729190613961565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613369565b61185b565b6040516109af9190613a99565b60405180910390f35b3480156109c457600080fd5b506109cd6118a4565b6040516109da9190613a99565b60405180910390f35b3480156109ef57600080fd5b506109f86118aa565b604051610a059190613a99565b60405180910390f35b348015610a1a57600080fd5b50610a236118b0565b604051610a309190613a99565b60405180910390f35b348015610a4557600080fd5b50610a4e6118b6565b604051610a5b9190613961565b60405180910390f35b348015610a7057600080fd5b50610a796118ce565b604051610a8691906138bc565b60405180910390f35b348015610a9b57600080fd5b50610aa46118f4565b604051610ab191906138bc565b60405180910390f35b348015610ac657600080fd5b50610ae16004803603810190610adc9190613369565b61191d565b604051610aee9190613961565b60405180910390f35b348015610b0357600080fd5b50610b0c61193d565b604051610b199190613997565b60405180910390f35b348015610b2e57600080fd5b50610b496004803603810190610b449190613590565b61197a565b005b348015610b5757600080fd5b50610b606119e6565b604051610b6d9190613a99565b60405180910390f35b348015610b8257600080fd5b50610b9d6004803603810190610b989190613590565b6119ec565b005b348015610bab57600080fd5b50610bb4611b66565b604051610bc191906138bc565b60405180910390f35b348015610bd657600080fd5b50610bf16004803603810190610bec91906134d0565b611b8c565b604051610bfe9190613961565b60405180910390f35b348015610c1357600080fd5b50610c1c611ba1565b604051610c299190613a99565b60405180910390f35b348015610c3e57600080fd5b50610c47611ba7565b604051610c549190613a99565b60405180910390f35b348015610c6957600080fd5b50610c72611bb1565b604051610c7f91906138bc565b60405180910390f35b348015610c9457600080fd5b50610c9d611bd7565b604051610caa9190613a99565b60405180910390f35b348015610cbf57600080fd5b50610cda6004803603810190610cd5919061353d565b611bdd565b005b348015610ce857600080fd5b50610cf1611c86565b604051610cfe91906138bc565b60405180910390f35b348015610d1357600080fd5b50610d2e6004803603810190610d299190613396565b611cac565b604051610d3b9190613a99565b60405180910390f35b348015610d5057600080fd5b50610d59611d33565b604051610d669190613a99565b60405180910390f35b348015610d7b57600080fd5b50610d84611d39565b604051610d9191906138bc565b60405180910390f35b348015610da657600080fd5b50610daf611d5f565b604051610dbc9190613a99565b60405180910390f35b348015610dd157600080fd5b50610dda611d65565b604051610de79190613a99565b60405180910390f35b348015610dfc57600080fd5b50610e176004803603810190610e129190613369565b611d6b565b005b348015610e2557600080fd5b50610e2e611ee0565b005b348015610e3c57600080fd5b50610e576004803603810190610e529190613490565b6120b4565b005b348015610e6557600080fd5b50610e6e612157565b604051610e7b919061397c565b60405180910390f35b348015610e9057600080fd5b50610e9961217d565b604051610ea69190613a99565b60405180910390f35b60235481565b60606040518060400160405280600981526020017f5954556265722041490000000000000000000000000000000000000000000000815250905090565b610efb336113d9565b610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190613a39565b60405180910390fd5b806103e8600654610f4b9190613c08565b610f559190613c39565b601c8190555050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161103e9190613a99565b60405180910390a36001905092915050565b611059336113d9565b611098576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108f90613a39565b60405180910390fd5b806103e86006546110a99190613c08565b6110b39190613c39565b601a8190555050565b6110c5336113d9565b611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb90613a39565b60405180910390fd5b836010819055508260138190555081601281905550806011819055508082848661112e9190613bb2565b6111389190613bb2565b6111429190613bb2565b60148190555050505050565b6000600654905090565b6000601a54905090565b61116b336113d9565b6111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190613a39565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846111d79190613c39565b6111e19190613c08565b9081150290604051600060405180830381858888f1935050505015801561120c573d6000803e3d6000fd5b505050565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113c55781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113449190613c93565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113d0848484612183565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b601a5481565b600061144c336113d9565b61148b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148290613a39565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016114c69291906138d7565b602060405180830381600087803b1580156114e057600080fd5b505af11580156114f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115189190613510565b905092915050565b60145481565b600e5481565b611535336113d9565b611574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156b90613a39565b60405180910390fd5b83601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60255481565b60096020528060005260406000206000915054906101000a900460ff1681565b60245481565b6000601b54905090565b60006116e0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610f5e565b9050919050565b6000600254905090565b60115481565b611700336113d9565b61173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173690613a39565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b600d5481565b6117af336113d9565b6117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e590613a39565b60405180910390fd5b83601581905550826018819055508160178190555080601681905550808284866118189190613bb2565b6118229190613bb2565b61182c9190613bb2565b60198190555050505050565b6000602354905090565b60175481565b602260149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601c5481565b60125481565b6000602660009054906101000a900460ff1615905090565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600981526020017f5954756265722041490000000000000000000000000000000000000000000000815250905090565b611983336113d9565b6119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990613a39565b60405180910390fd5b806103e86006546119d39190613c08565b6119dd9190613c39565b601b8190555050565b600b5481565b6119f5336113d9565b611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b90613a39565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508042611ae29190613bb2565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b99338484612183565b905092915050565b60165481565b6000601c54905090565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b611be6336113d9565b611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1c90613a39565b60405180910390fd5b82602260146101000a81548160ff02191690831515021790555081612710600654611c509190613c08565b611c5a9190613c39565b60238190555080612710600654611c719190613c08565b611c7b9190613c39565b602481905550505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b60105481565b611d74336113d9565b611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa90613a39565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a906139d9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613a79565b60405180910390fd5b6002544211611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613a59565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6120bd336113d9565b6120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390613a39565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b6000602660009054906101000a900460ff16156121ac576121a5848484612804565b90506127fd565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561220b5761220a612992565b5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561226a576122696129c1565b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122f257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561234c5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123a65750602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b806123fa5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561245e57600061240a8461185b565b9050601c54838261241b9190613bb2565b111561245c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245390613a19565b60405180910390fd5b505b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561254e57601a548211158061250e5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61254d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612544906139b9565b60405180910390fd5b5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561263e57601b54821115806125fe5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61263d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612634906139b9565b60405180910390fd5b5b6126466129f0565b1561265457612653612ac7565b5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269f9190613c93565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006126ed8561305d565b6126f75782612702565b61270184846130b4565b5b905080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274f9190613bb2565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127ef9190613a99565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128519190613c93565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128df9190613bb2565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161297f9190613a99565b60405180910390a3600190509392505050565b601054600b81905550601154600c81905550601254600d81905550601354600e81905550601454600f81905550565b601554600b81905550601654600c81905550601754600d81905550601854600e81905550601954600f81905550565b6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612a5d5750602660009054906101000a900460ff16155b8015612a755750602260149054906101000a900460ff165b8015612ac25750602354600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602660006101000a81548160ff0219169083151502179055506000612aed3061185b565b90506024548110612b0657602454602581905550612b0e565b806025819055505b60006002600b54600f54602554612b259190613c08565b612b2f9190613c39565b612b399190613c08565b9050600081602554612b4b9190613c93565b90506000600267ffffffffffffffff811115612b6a57612b69613e12565b5b604051908082528060200260200182016040528015612b985781602001602082028036833780820191505090505b5090503081600081518110612bb057612baf613de3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c2157612c20613de3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612cc4959493929190613ab4565b600060405180830381600087803b158015612cde57600080fd5b505af1158015612cf2573d6000803e3d6000fd5b5050505060008147612d049190613c93565b905060006002600b54612d179190613c08565b600f54612d249190613c93565b90506000600282600b5485612d399190613c39565b612d439190613c08565b612d4d9190613c08565b9050600082600e5485612d609190613c39565b612d6a9190613c08565b9050600083600d5486612d7d9190613c39565b612d879190613c08565b9050600081838588612d999190613c93565b612da39190613c93565b612dad9190613c93565b90506000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051612dfb906138a7565b600060405180830381858888f193505050503d8060008114612e39576040519150601f19603f3d011682016040523d82523d6000602084013e612e3e565b606091505b5050905080612e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e79906139f9565b60405180910390fd5b6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168561753090604051612ece906138a7565b600060405180830381858888f193505050503d8060008114612f0c576040519150601f19603f3d011682016040523d82523d6000602084013e612f11565b606091505b5050905080612f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4c906139f9565b60405180910390fd5b6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051612fa1906138a7565b600060405180830381858888f193505050503d8060008114612fdf576040519150601f19603f3d011682016040523d82523d6000602084013e612fe4565b606091505b5050905080613028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301f906139f9565b60405180910390fd5b6130328d886131db565b50505050505050505050505050506000602660006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600f546064846130c79190613c08565b6130d19190613c39565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311e9190613bb2565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131be9190613a99565b60405180910390a380836131d29190613c93565b91505092915050565b60008211156132fc57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326d96959493929190613900565b6060604051808303818588803b15801561328657600080fd5b505af115801561329a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132bf91906135bd565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681836040516132f3929190613b0e565b60405180910390a15b5050565b60008135905061330f81613feb565b92915050565b60008135905061332481614002565b92915050565b60008151905061333981614002565b92915050565b60008135905061334e81614019565b92915050565b60008151905061336381614019565b92915050565b60006020828403121561337f5761337e613e41565b5b600061338d84828501613300565b91505092915050565b600080604083850312156133ad576133ac613e41565b5b60006133bb85828601613300565b92505060206133cc85828601613300565b9150509250929050565b600080600080608085870312156133f0576133ef613e41565b5b60006133fe87828801613300565b945050602061340f87828801613300565b935050604061342087828801613300565b925050606061343187828801613300565b91505092959194509250565b60008060006060848603121561345657613455613e41565b5b600061346486828701613300565b935050602061347586828701613300565b92505060406134868682870161333f565b9150509250925092565b600080604083850312156134a7576134a6613e41565b5b60006134b585828601613300565b92505060206134c685828601613315565b9150509250929050565b600080604083850312156134e7576134e6613e41565b5b60006134f585828601613300565b92505060206135068582860161333f565b9150509250929050565b60006020828403121561352657613525613e41565b5b60006135348482850161332a565b91505092915050565b60008060006060848603121561355657613555613e41565b5b600061356486828701613315565b93505060206135758682870161333f565b92505060406135868682870161333f565b9150509250925092565b6000602082840312156135a6576135a5613e41565b5b60006135b48482850161333f565b91505092915050565b6000806000606084860312156135d6576135d5613e41565b5b60006135e486828701613354565b93505060206135f586828701613354565b925050604061360686828701613354565b9150509250925092565b6000806000806080858703121561362a57613629613e41565b5b60006136388782880161333f565b94505060206136498782880161333f565b935050604061365a8782880161333f565b925050606061366b8782880161333f565b91505092959194509250565b6000613683838361368f565b60208301905092915050565b61369881613cc7565b82525050565b6136a781613cc7565b82525050565b60006136b882613b62565b6136c28185613b85565b93506136cd83613b52565b8060005b838110156136fe5781516136e58882613677565b97506136f083613b78565b9250506001810190506136d1565b5085935050505092915050565b61371481613cd9565b82525050565b61372381613d1c565b82525050565b61373281613d40565b82525050565b600061374382613b6d565b61374d8185613ba1565b935061375d818560208601613d52565b61376681613e46565b840191505092915050565b600061377e601183613ba1565b915061378982613e57565b602082019050919050565b60006137a1602683613ba1565b91506137ac82613e80565b604082019050919050565b60006137c4601e83613ba1565b91506137cf82613ecf565b602082019050919050565b60006137e7603e83613ba1565b91506137f282613ef8565b604082019050919050565b600061380a600683613ba1565b915061381582613f47565b602082019050919050565b600061382d600083613b96565b915061383882613f70565b600082019050919050565b6000613850601283613ba1565b915061385b82613f73565b602082019050919050565b6000613873602383613ba1565b915061387e82613f9c565b604082019050919050565b61389281613d05565b82525050565b6138a181613d0f565b82525050565b60006138b282613820565b9150819050919050565b60006020820190506138d1600083018461369e565b92915050565b60006040820190506138ec600083018561369e565b6138f96020830184613889565b9392505050565b600060c082019050613915600083018961369e565b6139226020830188613889565b61392f6040830187613729565b61393c6060830186613729565b613949608083018561369e565b61395660a0830184613889565b979650505050505050565b6000602082019050613976600083018461370b565b92915050565b6000602082019050613991600083018461371a565b92915050565b600060208201905081810360008301526139b18184613738565b905092915050565b600060208201905081810360008301526139d281613771565b9050919050565b600060208201905081810360008301526139f281613794565b9050919050565b60006020820190508181036000830152613a12816137b7565b9050919050565b60006020820190508181036000830152613a32816137da565b9050919050565b60006020820190508181036000830152613a52816137fd565b9050919050565b60006020820190508181036000830152613a7281613843565b9050919050565b60006020820190508181036000830152613a9281613866565b9050919050565b6000602082019050613aae6000830184613889565b92915050565b600060a082019050613ac96000830188613889565b613ad66020830187613729565b8181036040830152613ae881866136ad565b9050613af7606083018561369e565b613b046080830184613889565b9695505050505050565b6000604082019050613b236000830185613889565b613b306020830184613889565b9392505050565b6000602082019050613b4c6000830184613898565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613bbd82613d05565b9150613bc883613d05565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bfd57613bfc613d85565b5b828201905092915050565b6000613c1382613d05565b9150613c1e83613d05565b925082613c2e57613c2d613db4565b5b828204905092915050565b6000613c4482613d05565b9150613c4f83613d05565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c8857613c87613d85565b5b828202905092915050565b6000613c9e82613d05565b9150613ca983613d05565b925082821015613cbc57613cbb613d85565b5b828203905092915050565b6000613cd282613ce5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d2782613d2e565b9050919050565b6000613d3982613ce5565b9050919050565b6000613d4b82613d05565b9050919050565b60005b83811015613d70578082015181840152602081019050613d55565b83811115613d7f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f436f6e7472616374206973206c6f636b65640000000000000000000000000000600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b613ff481613cc7565b8114613fff57600080fd5b50565b61400b81613cd9565b811461401657600080fd5b50565b61402281613d05565b811461402d57600080fd5b5056fea26469706673582212204a1b072a7044c0befe9593dab9daf1fdb0072f4a99b2bdab2c340e383b0fa24764736f6c63430008060033

Deployed Bytecode

0x6080604052600436106103b15760003560e01c80636ddd1713116101e7578063ab00d68d1161010d578063e96fada2116100a0578063f7baf3c51161006f578063f7baf3c514610e19578063f84ba65d14610e30578063f887ea4014610e59578063fc44ed4814610e84576103b8565b8063e96fada214610d6f578063e99090c114610d9a578063ea19e4a814610dc5578063f2fde38b14610df0576103b8565b8063d0889358116100dc578063d088935814610cb3578063dab84ee714610cdc578063dd62ed3e14610d07578063e9563dfd14610d44576103b8565b8063ab00d68d14610c07578063b43b783514610c32578063ca33e64c14610c5d578063cf4be39414610c88576103b8565b8063893d20e81161018557806398118cb41161015457806398118cb414610b4b578063a4e1307114610b76578063a8aa1b3114610b9f578063a9059cbb14610bca576103b8565b8063893d20e814610a8f5780638b42507f14610aba57806395d89b4114610af757806396c99f5b14610b22576103b8565b806378109e54116101c157806378109e54146109e35780637fbcedff14610a0e57806383b4ac6814610a3957806384b1d1ef14610a64576103b8565b80636ddd17131461095057806370a082311461097b5780637724555f146109b8576103b8565b8063391e73a3116102d7578063602bc62b1161026a5780636b67c4df116102395780636b67c4df146108a65780636c5b2855146108d15780636d351d1a146108fa5780636d796e8814610925576103b8565b8063602bc62b146107fc5780636533e39314610827578063658d4b7f146108525780636827e7641461087b576103b8565b80633f4218e0116102a65780633f4218e01461072c5780634f28cac214610769578063541b4de714610794578063571ac8b0146107bf576103b8565b8063391e73a3146106825780633b2d081c146106ad5780633c8e556d146106d85780633d95669114610701576103b8565b80631898cab21161034f5780632f54bf6e1161031e5780632f54bf6e146105b2578063313ce567146105ef578063334773271461061a57806333f3d62814610645576103b8565b80631898cab2146104f65780631da1db5e146105215780631df4ccfc1461054a57806323b872dd14610575576103b8565b8063095ea7b31161038b578063095ea7b31461043c578063154d4abb14610479578063178d9b8e146104a257806318160ddd146104cb576103b8565b80630445b667146103bd57806306fdde03146103e857806309302dc614610413576103b8565b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610eaf565b6040516103df9190613a99565b60405180910390f35b3480156103f457600080fd5b506103fd610eb5565b60405161040a9190613997565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190613590565b610ef2565b005b34801561044857600080fd5b50610463600480360381019061045e91906134d0565b610f5e565b6040516104709190613961565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b9190613590565b611050565b005b3480156104ae57600080fd5b506104c960048036038101906104c49190613610565b6110bc565b005b3480156104d757600080fd5b506104e061114e565b6040516104ed9190613a99565b60405180910390f35b34801561050257600080fd5b5061050b611158565b6040516105189190613a99565b60405180910390f35b34801561052d57600080fd5b5061054860048036038101906105439190613590565b611162565b005b34801561055657600080fd5b5061055f611211565b60405161056c9190613a99565b60405180910390f35b34801561058157600080fd5b5061059c6004803603810190610597919061343d565b611217565b6040516105a99190613961565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d49190613369565b6113d9565b6040516105e69190613961565b60405180910390f35b3480156105fb57600080fd5b50610604611432565b6040516106119190613b37565b60405180910390f35b34801561062657600080fd5b5061062f61143b565b60405161063c9190613a99565b60405180910390f35b34801561065157600080fd5b5061066c600480360381019061066791906134d0565b611441565b6040516106799190613961565b60405180910390f35b34801561068e57600080fd5b50610697611520565b6040516106a49190613a99565b60405180910390f35b3480156106b957600080fd5b506106c2611526565b6040516106cf9190613a99565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa91906133d6565b61152c565b005b34801561070d57600080fd5b5061071661167e565b6040516107239190613a99565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190613369565b611684565b6040516107609190613961565b60405180910390f35b34801561077557600080fd5b5061077e6116a4565b60405161078b9190613a99565b60405180910390f35b3480156107a057600080fd5b506107a96116aa565b6040516107b69190613a99565b60405180910390f35b3480156107cb57600080fd5b506107e660048036038101906107e19190613369565b6116b4565b6040516107f39190613961565b60405180910390f35b34801561080857600080fd5b506108116116e7565b60405161081e9190613a99565b60405180910390f35b34801561083357600080fd5b5061083c6116f1565b6040516108499190613a99565b60405180910390f35b34801561085e57600080fd5b5061087960048036038101906108749190613490565b6116f7565b005b34801561088757600080fd5b5061089061179a565b60405161089d9190613a99565b60405180910390f35b3480156108b257600080fd5b506108bb6117a0565b6040516108c89190613a99565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f39190613610565b6117a6565b005b34801561090657600080fd5b5061090f611838565b60405161091c9190613a99565b60405180910390f35b34801561093157600080fd5b5061093a611842565b6040516109479190613a99565b60405180910390f35b34801561095c57600080fd5b50610965611848565b6040516109729190613961565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613369565b61185b565b6040516109af9190613a99565b60405180910390f35b3480156109c457600080fd5b506109cd6118a4565b6040516109da9190613a99565b60405180910390f35b3480156109ef57600080fd5b506109f86118aa565b604051610a059190613a99565b60405180910390f35b348015610a1a57600080fd5b50610a236118b0565b604051610a309190613a99565b60405180910390f35b348015610a4557600080fd5b50610a4e6118b6565b604051610a5b9190613961565b60405180910390f35b348015610a7057600080fd5b50610a796118ce565b604051610a8691906138bc565b60405180910390f35b348015610a9b57600080fd5b50610aa46118f4565b604051610ab191906138bc565b60405180910390f35b348015610ac657600080fd5b50610ae16004803603810190610adc9190613369565b61191d565b604051610aee9190613961565b60405180910390f35b348015610b0357600080fd5b50610b0c61193d565b604051610b199190613997565b60405180910390f35b348015610b2e57600080fd5b50610b496004803603810190610b449190613590565b61197a565b005b348015610b5757600080fd5b50610b606119e6565b604051610b6d9190613a99565b60405180910390f35b348015610b8257600080fd5b50610b9d6004803603810190610b989190613590565b6119ec565b005b348015610bab57600080fd5b50610bb4611b66565b604051610bc191906138bc565b60405180910390f35b348015610bd657600080fd5b50610bf16004803603810190610bec91906134d0565b611b8c565b604051610bfe9190613961565b60405180910390f35b348015610c1357600080fd5b50610c1c611ba1565b604051610c299190613a99565b60405180910390f35b348015610c3e57600080fd5b50610c47611ba7565b604051610c549190613a99565b60405180910390f35b348015610c6957600080fd5b50610c72611bb1565b604051610c7f91906138bc565b60405180910390f35b348015610c9457600080fd5b50610c9d611bd7565b604051610caa9190613a99565b60405180910390f35b348015610cbf57600080fd5b50610cda6004803603810190610cd5919061353d565b611bdd565b005b348015610ce857600080fd5b50610cf1611c86565b604051610cfe91906138bc565b60405180910390f35b348015610d1357600080fd5b50610d2e6004803603810190610d299190613396565b611cac565b604051610d3b9190613a99565b60405180910390f35b348015610d5057600080fd5b50610d59611d33565b604051610d669190613a99565b60405180910390f35b348015610d7b57600080fd5b50610d84611d39565b604051610d9191906138bc565b60405180910390f35b348015610da657600080fd5b50610daf611d5f565b604051610dbc9190613a99565b60405180910390f35b348015610dd157600080fd5b50610dda611d65565b604051610de79190613a99565b60405180910390f35b348015610dfc57600080fd5b50610e176004803603810190610e129190613369565b611d6b565b005b348015610e2557600080fd5b50610e2e611ee0565b005b348015610e3c57600080fd5b50610e576004803603810190610e529190613490565b6120b4565b005b348015610e6557600080fd5b50610e6e612157565b604051610e7b919061397c565b60405180910390f35b348015610e9057600080fd5b50610e9961217d565b604051610ea69190613a99565b60405180910390f35b60235481565b60606040518060400160405280600981526020017f5954556265722041490000000000000000000000000000000000000000000000815250905090565b610efb336113d9565b610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190613a39565b60405180910390fd5b806103e8600654610f4b9190613c08565b610f559190613c39565b601c8190555050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161103e9190613a99565b60405180910390a36001905092915050565b611059336113d9565b611098576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108f90613a39565b60405180910390fd5b806103e86006546110a99190613c08565b6110b39190613c39565b601a8190555050565b6110c5336113d9565b611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb90613a39565b60405180910390fd5b836010819055508260138190555081601281905550806011819055508082848661112e9190613bb2565b6111389190613bb2565b6111429190613bb2565b60148190555050505050565b6000600654905090565b6000601a54905090565b61116b336113d9565b6111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190613a39565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846111d79190613c39565b6111e19190613c08565b9081150290604051600060405180830381858888f1935050505015801561120c573d6000803e3d6000fd5b505050565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113c55781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113449190613c93565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113d0848484612183565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b601a5481565b600061144c336113d9565b61148b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148290613a39565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016114c69291906138d7565b602060405180830381600087803b1580156114e057600080fd5b505af11580156114f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115189190613510565b905092915050565b60145481565b600e5481565b611535336113d9565b611574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156b90613a39565b60405180910390fd5b83601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60255481565b60096020528060005260406000206000915054906101000a900460ff1681565b60245481565b6000601b54905090565b60006116e0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610f5e565b9050919050565b6000600254905090565b60115481565b611700336113d9565b61173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173690613a39565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b600d5481565b6117af336113d9565b6117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e590613a39565b60405180910390fd5b83601581905550826018819055508160178190555080601681905550808284866118189190613bb2565b6118229190613bb2565b61182c9190613bb2565b60198190555050505050565b6000602354905090565b60175481565b602260149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601c5481565b60125481565b6000602660009054906101000a900460ff1615905090565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600981526020017f5954756265722041490000000000000000000000000000000000000000000000815250905090565b611983336113d9565b6119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990613a39565b60405180910390fd5b806103e86006546119d39190613c08565b6119dd9190613c39565b601b8190555050565b600b5481565b6119f5336113d9565b611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b90613a39565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508042611ae29190613bb2565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b99338484612183565b905092915050565b60165481565b6000601c54905090565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b611be6336113d9565b611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1c90613a39565b60405180910390fd5b82602260146101000a81548160ff02191690831515021790555081612710600654611c509190613c08565b611c5a9190613c39565b60238190555080612710600654611c719190613c08565b611c7b9190613c39565b602481905550505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b60105481565b611d74336113d9565b611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa90613a39565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a906139d9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613a79565b60405180910390fd5b6002544211611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613a59565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6120bd336113d9565b6120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390613a39565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b6000602660009054906101000a900460ff16156121ac576121a5848484612804565b90506127fd565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561220b5761220a612992565b5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561226a576122696129c1565b5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122f257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561234c5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123a65750602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b806123fa5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561245e57600061240a8461185b565b9050601c54838261241b9190613bb2565b111561245c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245390613a19565b60405180910390fd5b505b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561254e57601a548211158061250e5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61254d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612544906139b9565b60405180910390fd5b5b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561263e57601b54821115806125fe5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61263d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612634906139b9565b60405180910390fd5b5b6126466129f0565b1561265457612653612ac7565b5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269f9190613c93565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006126ed8561305d565b6126f75782612702565b61270184846130b4565b5b905080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274f9190613bb2565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127ef9190613a99565b60405180910390a360019150505b9392505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128519190613c93565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128df9190613bb2565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161297f9190613a99565b60405180910390a3600190509392505050565b601054600b81905550601154600c81905550601254600d81905550601354600e81905550601454600f81905550565b601554600b81905550601654600c81905550601754600d81905550601854600e81905550601954600f81905550565b6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612a5d5750602660009054906101000a900460ff16155b8015612a755750602260149054906101000a900460ff165b8015612ac25750602354600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602660006101000a81548160ff0219169083151502179055506000612aed3061185b565b90506024548110612b0657602454602581905550612b0e565b806025819055505b60006002600b54600f54602554612b259190613c08565b612b2f9190613c39565b612b399190613c08565b9050600081602554612b4b9190613c93565b90506000600267ffffffffffffffff811115612b6a57612b69613e12565b5b604051908082528060200260200182016040528015612b985781602001602082028036833780820191505090505b5090503081600081518110612bb057612baf613de3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c2157612c20613de3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612cc4959493929190613ab4565b600060405180830381600087803b158015612cde57600080fd5b505af1158015612cf2573d6000803e3d6000fd5b5050505060008147612d049190613c93565b905060006002600b54612d179190613c08565b600f54612d249190613c93565b90506000600282600b5485612d399190613c39565b612d439190613c08565b612d4d9190613c08565b9050600082600e5485612d609190613c39565b612d6a9190613c08565b9050600083600d5486612d7d9190613c39565b612d879190613c08565b9050600081838588612d999190613c93565b612da39190613c93565b612dad9190613c93565b90506000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051612dfb906138a7565b600060405180830381858888f193505050503d8060008114612e39576040519150601f19603f3d011682016040523d82523d6000602084013e612e3e565b606091505b5050905080612e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e79906139f9565b60405180910390fd5b6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168561753090604051612ece906138a7565b600060405180830381858888f193505050503d8060008114612f0c576040519150601f19603f3d011682016040523d82523d6000602084013e612f11565b606091505b5050905080612f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4c906139f9565b60405180910390fd5b6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051612fa1906138a7565b600060405180830381858888f193505050503d8060008114612fdf576040519150601f19603f3d011682016040523d82523d6000602084013e612fe4565b606091505b5050905080613028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301f906139f9565b60405180910390fd5b6130328d886131db565b50505050505050505050505050506000602660006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600f546064846130c79190613c08565b6130d19190613c39565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311e9190613bb2565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131be9190613a99565b60405180910390a380836131d29190613c93565b91505092915050565b60008211156132fc57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326d96959493929190613900565b6060604051808303818588803b15801561328657600080fd5b505af115801561329a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132bf91906135bd565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681836040516132f3929190613b0e565b60405180910390a15b5050565b60008135905061330f81613feb565b92915050565b60008135905061332481614002565b92915050565b60008151905061333981614002565b92915050565b60008135905061334e81614019565b92915050565b60008151905061336381614019565b92915050565b60006020828403121561337f5761337e613e41565b5b600061338d84828501613300565b91505092915050565b600080604083850312156133ad576133ac613e41565b5b60006133bb85828601613300565b92505060206133cc85828601613300565b9150509250929050565b600080600080608085870312156133f0576133ef613e41565b5b60006133fe87828801613300565b945050602061340f87828801613300565b935050604061342087828801613300565b925050606061343187828801613300565b91505092959194509250565b60008060006060848603121561345657613455613e41565b5b600061346486828701613300565b935050602061347586828701613300565b92505060406134868682870161333f565b9150509250925092565b600080604083850312156134a7576134a6613e41565b5b60006134b585828601613300565b92505060206134c685828601613315565b9150509250929050565b600080604083850312156134e7576134e6613e41565b5b60006134f585828601613300565b92505060206135068582860161333f565b9150509250929050565b60006020828403121561352657613525613e41565b5b60006135348482850161332a565b91505092915050565b60008060006060848603121561355657613555613e41565b5b600061356486828701613315565b93505060206135758682870161333f565b92505060406135868682870161333f565b9150509250925092565b6000602082840312156135a6576135a5613e41565b5b60006135b48482850161333f565b91505092915050565b6000806000606084860312156135d6576135d5613e41565b5b60006135e486828701613354565b93505060206135f586828701613354565b925050604061360686828701613354565b9150509250925092565b6000806000806080858703121561362a57613629613e41565b5b60006136388782880161333f565b94505060206136498782880161333f565b935050604061365a8782880161333f565b925050606061366b8782880161333f565b91505092959194509250565b6000613683838361368f565b60208301905092915050565b61369881613cc7565b82525050565b6136a781613cc7565b82525050565b60006136b882613b62565b6136c28185613b85565b93506136cd83613b52565b8060005b838110156136fe5781516136e58882613677565b97506136f083613b78565b9250506001810190506136d1565b5085935050505092915050565b61371481613cd9565b82525050565b61372381613d1c565b82525050565b61373281613d40565b82525050565b600061374382613b6d565b61374d8185613ba1565b935061375d818560208601613d52565b61376681613e46565b840191505092915050565b600061377e601183613ba1565b915061378982613e57565b602082019050919050565b60006137a1602683613ba1565b91506137ac82613e80565b604082019050919050565b60006137c4601e83613ba1565b91506137cf82613ecf565b602082019050919050565b60006137e7603e83613ba1565b91506137f282613ef8565b604082019050919050565b600061380a600683613ba1565b915061381582613f47565b602082019050919050565b600061382d600083613b96565b915061383882613f70565b600082019050919050565b6000613850601283613ba1565b915061385b82613f73565b602082019050919050565b6000613873602383613ba1565b915061387e82613f9c565b604082019050919050565b61389281613d05565b82525050565b6138a181613d0f565b82525050565b60006138b282613820565b9150819050919050565b60006020820190506138d1600083018461369e565b92915050565b60006040820190506138ec600083018561369e565b6138f96020830184613889565b9392505050565b600060c082019050613915600083018961369e565b6139226020830188613889565b61392f6040830187613729565b61393c6060830186613729565b613949608083018561369e565b61395660a0830184613889565b979650505050505050565b6000602082019050613976600083018461370b565b92915050565b6000602082019050613991600083018461371a565b92915050565b600060208201905081810360008301526139b18184613738565b905092915050565b600060208201905081810360008301526139d281613771565b9050919050565b600060208201905081810360008301526139f281613794565b9050919050565b60006020820190508181036000830152613a12816137b7565b9050919050565b60006020820190508181036000830152613a32816137da565b9050919050565b60006020820190508181036000830152613a52816137fd565b9050919050565b60006020820190508181036000830152613a7281613843565b9050919050565b60006020820190508181036000830152613a9281613866565b9050919050565b6000602082019050613aae6000830184613889565b92915050565b600060a082019050613ac96000830188613889565b613ad66020830187613729565b8181036040830152613ae881866136ad565b9050613af7606083018561369e565b613b046080830184613889565b9695505050505050565b6000604082019050613b236000830185613889565b613b306020830184613889565b9392505050565b6000602082019050613b4c6000830184613898565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613bbd82613d05565b9150613bc883613d05565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bfd57613bfc613d85565b5b828201905092915050565b6000613c1382613d05565b9150613c1e83613d05565b925082613c2e57613c2d613db4565b5b828204905092915050565b6000613c4482613d05565b9150613c4f83613d05565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c8857613c87613d85565b5b828202905092915050565b6000613c9e82613d05565b9150613ca983613d05565b925082821015613cbc57613cbb613d85565b5b828203905092915050565b6000613cd282613ce5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d2782613d2e565b9050919050565b6000613d3982613ce5565b9050919050565b6000613d4b82613d05565b9050919050565b60005b83811015613d70578082015181840152602081019050613d55565b83811115613d7f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f436f6e7472616374206973206c6f636b65640000000000000000000000000000600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b613ff481613cc7565b8114613fff57600080fd5b50565b61400b81613cd9565b811461401657600080fd5b50565b61402281613d05565b811461402d57600080fd5b5056fea26469706673582212204a1b072a7044c0befe9593dab9daf1fdb0072f4a99b2bdab2c340e383b0fa24764736f6c63430008060033

Deployed Bytecode Sourcemap

4056:13056:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6163:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7207:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16053:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7627:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16237:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14306:367;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6937:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13956:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16837:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4856:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8149:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1512:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7031:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5482:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16656:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5058:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4824:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15066:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6295:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4594:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6232:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14072:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7855:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1873:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4932:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15787:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4762:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4790:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14681:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13727:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5247:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6126:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7377:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5338:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5627:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4969:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14186:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5980:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7293;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4645:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7117:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16428:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4728:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1971:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6098:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7985:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5209:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13840:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5724:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5554:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15449:330;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5899:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7488:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5013:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5812:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5164:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4888:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1623:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2211:299;;;;;;;;;;;;;:::i;:::-;;15918:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6067:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5292:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6163:54;;;;:::o;7207:80::-;7255:13;7279:5;;;;;;;;;;;;;;;;;7272:12;;7207:80;:::o;16053:176::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16197:23:::1;16188:4;16172:12;;:21;;;;:::i;:::-;:49;;;;:::i;:::-;16154:15;:67;;;;16053:176:::0;:::o;7627:216::-;7702:4;7754:6;7719:11;:23;7731:10;7719:23;;;;;;;;;;;;;;;:32;7743:7;7719:32;;;;;;;;;;;;;;;:41;;;;7797:7;7776:37;;7785:10;7776:37;;;7806:6;7776:37;;;;;;:::i;:::-;;;;;;;;7831:4;7824:11;;7627:216;;;;:::o;16237:183::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16384:27:::1;16375:4;16359:12;;:21;;;;:::i;:::-;:53;;;;:::i;:::-;16341:15;:71;;;;16237:183:::0;:::o;14306:367::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14458:13:::1;14440:15;:31;;;;14498:11;14482:13;:27;;;;14538:13;14520:15;:31;;;;14574:7;14562:9;:19;;;;14657:7;14639:13;14623:11;14606:13;:29;;;;:::i;:::-;:47;;;;:::i;:::-;:59;;;;:::i;:::-;14592:11;:73;;;;14306:367:::0;;;;:::o;6937:88::-;6992:7;7010:12;;7003:19;;6937:88;:::o;13956:104::-;14010:7;14037:15;;14030:22;;13956:104;:::o;16837:207::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16920:17:::1;16940:21;16920:41;;16980:10;16972:28;;:64;17032:3;17013:16;17001:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;16972:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16909:135;16837:207:::0;:::o;4856:23::-;;;;:::o;8149:341::-;8249:4;8304:17;8269:11;:19;8281:6;8269:19;;;;;;;;;;;;;;;:31;8289:10;8269:31;;;;;;;;;;;;;;;;:52;8266:157;;8405:6;8371:11;:19;8383:6;8371:19;;;;;;;;;;;;;;;:31;8391:10;8371:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;8337:11;:19;8349:6;8337:19;;;;;;;;;;;;;;;:31;8357:10;8337:31;;;;;;;;;;;;;;;:74;;;;8266:157;8442:40;8456:6;8464:9;8475:6;8442:13;:40::i;:::-;8435:47;;8149:341;;;;;:::o;1512:103::-;1567:4;1602:5;;;;;;;;;;;1591:16;;:7;:16;;;1584:23;;1512:103;;;:::o;7031:80::-;7083:5;4416:1;7092:16;;7031:80;:::o;5482:59::-;;;;:::o;16656:173::-;16741:12;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16779:12:::1;16773:28;;;16802:10;16814:6;16773:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16766:55;;16656:173:::0;;;;:::o;5058:97::-;;;;:::o;4824:25::-;;;;:::o;15066:375::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15262:22:::1;15238:21;;:46;;;;;;;;;;;;;;;;;;15318:21;15295:20;;:44;;;;;;;;;;;;;;;;;;15371:19;15350:18;;:40;;;;;;;;;;;;;;;;;;15418:15;15401:14;;:32;;;;;;;;;;;;;;;;;;15066:375:::0;;;;:::o;6295:27::-;;;;:::o;4594:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;6232:51::-;;;;:::o;14072:106::-;14127:7;14154:16;;14147:23;;14072:106;:::o;7855:122::-;7910:4;7934:35;7942:7;7951:17;7934:7;:35::i;:::-;7927:42;;7855:122;;;:::o;1873:90::-;1919:7;1946:9;;1939:16;;1873:90;:::o;4932:30::-;;;;:::o;15787:119::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15892:6:::1;15870:11;:19;15882:6;15870:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15787:119:::0;;:::o;4762:21::-;;;;:::o;4790:27::-;;;;:::o;14681:373::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14835:13:::1;14816:16;:32;;;;14876:11;14859:14;:28;;;;14917:13;14898:16;:32;;;;14954:7;14941:10;:20;;;;15038:7;15020:13;15004:11;14987:13;:29;;;;:::i;:::-;:47;;;;:::i;:::-;:59;;;;:::i;:::-;14972:12;:74;;;;14681:373:::0;;;;:::o;13727:101::-;13780:7;13807:13;;13800:20;;13727:101;:::o;5247:38::-;;;;:::o;6126:30::-;;;;;;;;;;;;;:::o;7377:105::-;7443:7;7461:9;:18;7471:7;7461:18;;;;;;;;;;;;;;;;7454:25;;7377:105;;;:::o;5338:102::-;;;;:::o;5627:59::-;;;;:::o;4969:37::-;;;;:::o;14186:85::-;14232:4;14257:6;;;;;;;;;;;14256:7;14249:14;;14186:85;:::o;5980:78::-;;;;;;;;;;;;;:::o;7293:::-;7345:7;7363:5;;;;;;;;;;;7356:12;;7293:78;:::o;4645:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;7117:84::-;7167:13;7191:7;;;;;;;;;;;;;;;;;7184:14;;7117:84;:::o;16428:187::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16578:28:::1;16569:4;16553:12;;:21;;;;:::i;:::-;:54;;;;:::i;:::-;16534:16;:73;;;;16428:187:::0;:::o;4728:27::-;;;;:::o;1971:232::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2061:5:::1;::::0;::::1;;;;;;;;2044:14;;:22;;;;;;;;;;;;;;;;;;2093:1;2077:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2136:4;2118:15;:22;;;;:::i;:::-;2106:9;:34;;;;2192:1;2156:39;;2177:5;::::0;::::1;;;;;;;;2156:39;;;;;;;;;;;;1971:232:::0;:::o;6098:19::-;;;;;;;;;;;;;:::o;7985:156::-;8065:4;8089:44;8103:10;8115:9;8126:6;8089:13;:44::i;:::-;8082:51;;7985:156;;;;:::o;5209:31::-;;;;:::o;13840:104::-;13894:7;13921:15;;13914:22;;13840:104;:::o;5724:81::-;;;;;;;;;;;;;:::o;5554:60::-;;;;:::o;15449:330::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15607:8:::1;15593:11;;:22;;;;;;;;;;;;;;;;;;15668:25;15658:5;15642:12;;:22;;;;:::i;:::-;:52;;;;:::i;:::-;15626:13;:68;;;;15745:25;15735:5;15719:12;;:22;;;;:::i;:::-;:52;;;;:::i;:::-;15705:11;:66;;;;15449:330:::0;;;:::o;5899:74::-;;;;;;;;;;;;;:::o;7488:133::-;7572:7;7590:11;:19;7602:6;7590:19;;;;;;;;;;;;;;;:28;7610:7;7590:28;;;;;;;;;;;;;;;;7583:35;;7488:133;;;;:::o;5013:38::-;;;;:::o;5812:80::-;;;;;;;;;;;;;:::o;5164:38::-;;;;:::o;4888:37::-;;;;:::o;1623:242::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1732:1:::1;1712:22;;:8;:22;;;;1704:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1821:8;1793:37;;1814:5;::::0;::::1;;;;;;;;1793:37;;;;;;;;;;;;1849:8;1841:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1623:242:::0;:::o;2211:299::-;2290:10;2272:28;;:14;;;;;;;;;;;:28;;;2264:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;2377:9;;2359:15;:27;2351:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;2454:14;;;;;;;;;;;2426:43;;2447:5;;;;;;;;;;2426:43;;;;;;;;;;;;2488:14;;;;;;;;;;;2480:5;;:22;;;;;;;;;;;;;;;;;;2211:299::o;15918:127::-;1463:19;1471:10;1463:7;:19::i;:::-;1455:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16031:6:::1;16005:15;:23;16021:6;16005:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15918:127:::0;;:::o;6067:24::-;;;;;;;;;;;;;:::o;5292:39::-;;;;:::o;8498:1361::-;8590:4;8610:6;;;;;;;;;;;8607:63;;;8626:41;8641:6;8649:9;8660:6;8626:14;:41::i;:::-;8619:48;;;;8607:63;8695:4;;;;;;;;;;;8685:14;;:6;:14;;;8682:54;;;8715:9;:7;:9::i;:::-;8682:54;8764:4;;;;;;;;;;;8751:17;;:9;:17;;;8748:58;;;8784:10;:8;:10::i;:::-;8748:58;8832:5;;;;;;;;;;8822:15;;:6;:15;;;;:45;;;;;8862:4;8841:26;;:9;:26;;;;8822:45;:75;;;;;8892:4;;;;;;;;;;;8871:26;;:9;:26;;;;8822:75;:96;;;;;8914:4;;;;;;;;;;;8901:17;;:9;:17;;;;8822:96;:126;;;;8922:15;:26;8938:9;8922:26;;;;;;;;;;;;;;;;;;;;;;;;;8822:126;8818:318;;;8964:18;8985:20;8995:9;8985;:20::i;:::-;8964:41;;9053:15;;9042:6;9029:10;:19;;;;:::i;:::-;9028:40;;9020:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;8949:187;8818:318;9202:4;;;;;;;;;;;9192:14;;:6;:14;;;9189:130;;;9240:15;;9230:6;:25;;:55;;;;9259:15;:26;9275:9;9259:26;;;;;;;;;;;;;;;;;;;;;;;;;9230:55;9222:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9189:130;9355:4;;;;;;;;;;;9342:17;;:9;:17;;;9339:131;;;9393:16;;9383:6;:26;;:53;;;;9413:15;:23;9429:6;9413:23;;;;;;;;;;;;;;;;;;;;;;;;;9383:53;9375:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;9339:131;9510:16;:14;:16::i;:::-;9507:35;;;9529:10;:8;:10::i;:::-;9507:35;9594:6;9574:9;:17;9584:6;9574:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9554:9;:17;9564:6;9554:17;;;;;;;;;;;;;;;:46;;;;9613:22;9638:21;9652:6;9638:13;:21::i;:::-;:59;;9691:6;9638:59;;;9662:26;9670:9;9681:6;9662:7;:26::i;:::-;9638:59;9613:84;;9754:14;9731:9;:20;9741:9;9731:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;9708:9;:20;9718:9;9708:20;;;;;;;;;;;;;;;:60;;;;9803:9;9786:43;;9795:6;9786:43;;;9814:14;9786:43;;;;;;:::i;:::-;;;;;;;;9847:4;9840:11;;;8498:1361;;;;;;:::o;9871:302::-;9964:4;10021:6;10001:9;:17;10011:6;10001:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9981:9;:17;9991:6;9981:17;;;;;;;;;;;;;;;:46;;;;10085:6;10061:9;:20;10071:9;10061:20;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;10038:9;:20;10048:9;10038:20;;;;;;;;;;;;;;;:54;;;;10125:9;10108:35;;10117:6;10108:35;;;10136:6;10108:35;;;;;;:::i;:::-;;;;;;;;10161:4;10154:11;;9871:302;;;;;:::o;10208:236::-;10264:15;;10246:12;:33;;;;10301:9;;10290:6;:20;;;;10339:15;;10321:12;:33;;;;10383:13;;10365:10;:31;;;;10425:11;;10407:8;:29;;;;10208:236::o;10452:242::-;10509:16;;10491:12;:34;;;;10547:10;;10536:6;:21;;;;10586:16;;10568:12;:34;;;;10631:14;;10613:10;:32;;;;10674:12;;10656:8;:30;;;;10452:242::o;11150:197::-;11199:4;11237;;;;;;;;;;;11223:18;;:10;:18;;;;:38;;;;;11255:6;;;;;;;;;;;11254:7;11223:38;:62;;;;;11274:11;;;;;;;;;;;11223:62;:116;;;;;11326:13;;11298:9;:24;11316:4;11298:24;;;;;;;;;;;;;;;;:41;;11223:116;11216:123;;11150:197;:::o;11355:1913::-;6380:4;6371:6;;:13;;;;;;;;;;;;;;;;;;11404:28:::1;11435:24;11453:4;11435:9;:24::i;:::-;11404:55;;11497:11;;11473:20;:35;11470:180;;11539:11;;11524:12;:26;;;;11470:180;;;11618:20;11603:12;:35;;;;11470:180;11662:23;11734:1;11717:12;;11704:8;;11688:12;;:25;;;;:::i;:::-;:42;;;;:::i;:::-;:48;;;;:::i;:::-;11662:74;;11747:20;11786:15;11770:12;;:32;;;;:::i;:::-;11747:55;;11815:21;11853:1;11839:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11815:40;;11884:4;11866;11871:1;11866:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11910:4;;;;;;;;;;;11900;11905:1;11900:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;11927:21;11951;11927:45;;11985:6;;;;;;;;;;;:57;;;12057:12;12084:1;12100:4;12127;12147:15;11985:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12186:17;12231:13;12206:21;:39;;;;:::i;:::-;12186:59;;12258:19;12308:1;12292:12;;:18;;;;:::i;:::-;12280:8;;:31;;;;:::i;:::-;12258:53;;12332:26;12407:1;12391:11;12374:12;;12361:9;:26;;;;:::i;:::-;:42;;;;:::i;:::-;:48;;;;:::i;:::-;12332:77;;12420:24;12475:11;12460:10;;12447:9;:24;;;;:::i;:::-;:40;;;;:::i;:::-;12420:67;;12498:26;12557:11;12540:12;;12527:9;:26;;;;:::i;:::-;:42;;;;:::i;:::-;12498:71;;12580:20;12655:18;12636:16;12615:18;12603:9;:30;;;;:::i;:::-;:49;;;;:::i;:::-;:70;;;;:::i;:::-;12580:93;;12687:21;12721:20;;;;;;;;;;;12713:34;;12755:18;12780:5;12713:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12686:104;;;12809:16;12801:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12872:19;12904:18;;;;;;;;;;;12896:32;;12936:16;12959:5;12896:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12871:98;;;12988:14;12980:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13049:15;13077:14;;;;;;;;;;;13069:28;;13105:12;13124:5;13069:65;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13048:86;;;13153:10;13145:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13211:49;13224:15;13241:18;13211:12;:49::i;:::-;11393:1875;;;;;;;;;;;;;;6398:5:::0;6389:6;;:14;;;;;;;;;;;;;;;;;;11355:1913::o;10702:114::-;10764:4;10789:11;:19;10801:6;10789:19;;;;;;;;;;;;;;;;;;;;;;;;;10788:20;10781:27;;10702:114;;;:::o;10824:316::-;10891:7;10911:17;10947:8;;10940:3;10931:6;:12;;;;:::i;:::-;:25;;;;:::i;:::-;10911:45;;11024:9;10996;:24;11014:4;10996:24;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;10969:9;:24;10987:4;10969:24;;;;;;;;;;;;;;;:65;;;;11075:4;11050:42;;11059:6;11050:42;;;11082:9;11050:42;;;;;;:::i;:::-;;;;;;;;11122:9;11112:6;:20;;;;:::i;:::-;11105:27;;;10824:316;;;;:::o;13276:416::-;13370:1;13356:11;:15;13353:332;;;13387:6;;;;;;;;;;;:22;;;13417:9;13454:4;13478:11;13508:1;13528;13548:21;;;;;;;;;;;13588:15;13387:231;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13638:35;13650:9;13661:11;13638:35;;;;;;;:::i;:::-;;;;;;;;13353:332;13276:416;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:137::-;345:5;376:6;370:13;361:22;;392:30;416:5;392:30;:::i;:::-;351:77;;;;:::o;434:139::-;480:5;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;486:87;;;;:::o;579:143::-;636:5;667:6;661:13;652:22;;683:33;710:5;683:33;:::i;:::-;642:80;;;;:::o;728:329::-;787:6;836:2;824:9;815:7;811:23;807:32;804:2;;;842:79;;:::i;:::-;804:2;962:1;987:53;1032:7;1023:6;1012:9;1008:22;987:53;:::i;:::-;977:63;;933:117;794:263;;;;:::o;1063:474::-;1131:6;1139;1188:2;1176:9;1167:7;1163:23;1159:32;1156:2;;;1194:79;;:::i;:::-;1156:2;1314:1;1339:53;1384:7;1375:6;1364:9;1360:22;1339:53;:::i;:::-;1329:63;;1285:117;1441:2;1467:53;1512:7;1503:6;1492:9;1488:22;1467:53;:::i;:::-;1457:63;;1412:118;1146:391;;;;;:::o;1543:765::-;1629:6;1637;1645;1653;1702:3;1690:9;1681:7;1677:23;1673:33;1670:2;;;1709:79;;:::i;:::-;1670:2;1829:1;1854:53;1899:7;1890:6;1879:9;1875:22;1854:53;:::i;:::-;1844:63;;1800:117;1956:2;1982:53;2027:7;2018:6;2007:9;2003:22;1982:53;:::i;:::-;1972:63;;1927:118;2084:2;2110:53;2155:7;2146:6;2135:9;2131:22;2110:53;:::i;:::-;2100:63;;2055:118;2212:2;2238:53;2283:7;2274:6;2263:9;2259:22;2238:53;:::i;:::-;2228:63;;2183:118;1660:648;;;;;;;:::o;2314:619::-;2391:6;2399;2407;2456:2;2444:9;2435:7;2431:23;2427:32;2424:2;;;2462:79;;:::i;:::-;2424:2;2582:1;2607:53;2652:7;2643:6;2632:9;2628:22;2607:53;:::i;:::-;2597:63;;2553:117;2709:2;2735:53;2780:7;2771:6;2760:9;2756:22;2735:53;:::i;:::-;2725:63;;2680:118;2837:2;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2808:118;2414:519;;;;;:::o;2939:468::-;3004:6;3012;3061:2;3049:9;3040:7;3036:23;3032:32;3029:2;;;3067:79;;:::i;:::-;3029:2;3187:1;3212:53;3257:7;3248:6;3237:9;3233:22;3212:53;:::i;:::-;3202:63;;3158:117;3314:2;3340:50;3382:7;3373:6;3362:9;3358:22;3340:50;:::i;:::-;3330:60;;3285:115;3019:388;;;;;:::o;3413:474::-;3481:6;3489;3538:2;3526:9;3517:7;3513:23;3509:32;3506:2;;;3544:79;;:::i;:::-;3506:2;3664:1;3689:53;3734:7;3725:6;3714:9;3710:22;3689:53;:::i;:::-;3679:63;;3635:117;3791:2;3817:53;3862:7;3853:6;3842:9;3838:22;3817:53;:::i;:::-;3807:63;;3762:118;3496:391;;;;;:::o;3893:345::-;3960:6;4009:2;3997:9;3988:7;3984:23;3980:32;3977:2;;;4015:79;;:::i;:::-;3977:2;4135:1;4160:61;4213:7;4204:6;4193:9;4189:22;4160:61;:::i;:::-;4150:71;;4106:125;3967:271;;;;:::o;4244:613::-;4318:6;4326;4334;4383:2;4371:9;4362:7;4358:23;4354:32;4351:2;;;4389:79;;:::i;:::-;4351:2;4509:1;4534:50;4576:7;4567:6;4556:9;4552:22;4534:50;:::i;:::-;4524:60;;4480:114;4633:2;4659:53;4704:7;4695:6;4684:9;4680:22;4659:53;:::i;:::-;4649:63;;4604:118;4761:2;4787:53;4832:7;4823:6;4812:9;4808:22;4787:53;:::i;:::-;4777:63;;4732:118;4341:516;;;;;:::o;4863:329::-;4922:6;4971:2;4959:9;4950:7;4946:23;4942:32;4939:2;;;4977:79;;:::i;:::-;4939:2;5097:1;5122:53;5167:7;5158:6;5147:9;5143:22;5122:53;:::i;:::-;5112:63;;5068:117;4929:263;;;;:::o;5198:663::-;5286:6;5294;5302;5351:2;5339:9;5330:7;5326:23;5322:32;5319:2;;;5357:79;;:::i;:::-;5319:2;5477:1;5502:64;5558:7;5549:6;5538:9;5534:22;5502:64;:::i;:::-;5492:74;;5448:128;5615:2;5641:64;5697:7;5688:6;5677:9;5673:22;5641:64;:::i;:::-;5631:74;;5586:129;5754:2;5780:64;5836:7;5827:6;5816:9;5812:22;5780:64;:::i;:::-;5770:74;;5725:129;5309:552;;;;;:::o;5867:765::-;5953:6;5961;5969;5977;6026:3;6014:9;6005:7;6001:23;5997:33;5994:2;;;6033:79;;:::i;:::-;5994:2;6153:1;6178:53;6223:7;6214:6;6203:9;6199:22;6178:53;:::i;:::-;6168:63;;6124:117;6280:2;6306:53;6351:7;6342:6;6331:9;6327:22;6306:53;:::i;:::-;6296:63;;6251:118;6408:2;6434:53;6479:7;6470:6;6459:9;6455:22;6434:53;:::i;:::-;6424:63;;6379:118;6536:2;6562:53;6607:7;6598:6;6587:9;6583:22;6562:53;:::i;:::-;6552:63;;6507:118;5984:648;;;;;;;:::o;6638:179::-;6707:10;6728:46;6770:3;6762:6;6728:46;:::i;:::-;6806:4;6801:3;6797:14;6783:28;;6718:99;;;;:::o;6823:108::-;6900:24;6918:5;6900:24;:::i;:::-;6895:3;6888:37;6878:53;;:::o;6937:118::-;7024:24;7042:5;7024:24;:::i;:::-;7019:3;7012:37;7002:53;;:::o;7091:732::-;7210:3;7239:54;7287:5;7239:54;:::i;:::-;7309:86;7388:6;7383:3;7309:86;:::i;:::-;7302:93;;7419:56;7469:5;7419:56;:::i;:::-;7498:7;7529:1;7514:284;7539:6;7536:1;7533:13;7514:284;;;7615:6;7609:13;7642:63;7701:3;7686:13;7642:63;:::i;:::-;7635:70;;7728:60;7781:6;7728:60;:::i;:::-;7718:70;;7574:224;7561:1;7558;7554:9;7549:14;;7514:284;;;7518:14;7814:3;7807:10;;7215:608;;;;;;;:::o;7829:109::-;7910:21;7925:5;7910:21;:::i;:::-;7905:3;7898:34;7888:50;;:::o;7944:167::-;8049:55;8098:5;8049:55;:::i;:::-;8044:3;8037:68;8027:84;;:::o;8117:147::-;8212:45;8251:5;8212:45;:::i;:::-;8207:3;8200:58;8190:74;;:::o;8270:364::-;8358:3;8386:39;8419:5;8386:39;:::i;:::-;8441:71;8505:6;8500:3;8441:71;:::i;:::-;8434:78;;8521:52;8566:6;8561:3;8554:4;8547:5;8543:16;8521:52;:::i;:::-;8598:29;8620:6;8598:29;:::i;:::-;8593:3;8589:39;8582:46;;8362:272;;;;;:::o;8640:366::-;8782:3;8803:67;8867:2;8862:3;8803:67;:::i;:::-;8796:74;;8879:93;8968:3;8879:93;:::i;:::-;8997:2;8992:3;8988:12;8981:19;;8786:220;;;:::o;9012:366::-;9154:3;9175:67;9239:2;9234:3;9175:67;:::i;:::-;9168:74;;9251:93;9340:3;9251:93;:::i;:::-;9369:2;9364:3;9360:12;9353:19;;9158:220;;;:::o;9384:366::-;9526:3;9547:67;9611:2;9606:3;9547:67;:::i;:::-;9540:74;;9623:93;9712:3;9623:93;:::i;:::-;9741:2;9736:3;9732:12;9725:19;;9530:220;;;:::o;9756:366::-;9898:3;9919:67;9983:2;9978:3;9919:67;:::i;:::-;9912:74;;9995:93;10084:3;9995:93;:::i;:::-;10113:2;10108:3;10104:12;10097:19;;9902:220;;;:::o;10128:365::-;10270:3;10291:66;10355:1;10350:3;10291:66;:::i;:::-;10284:73;;10366:93;10455:3;10366:93;:::i;:::-;10484:2;10479:3;10475:12;10468:19;;10274:219;;;:::o;10499:398::-;10658:3;10679:83;10760:1;10755:3;10679:83;:::i;:::-;10672:90;;10771:93;10860:3;10771:93;:::i;:::-;10889:1;10884:3;10880:11;10873:18;;10662:235;;;:::o;10903:366::-;11045:3;11066:67;11130:2;11125:3;11066:67;:::i;:::-;11059:74;;11142:93;11231:3;11142:93;:::i;:::-;11260:2;11255:3;11251:12;11244:19;;11049:220;;;:::o;11275:366::-;11417:3;11438:67;11502:2;11497:3;11438:67;:::i;:::-;11431:74;;11514:93;11603:3;11514:93;:::i;:::-;11632:2;11627:3;11623:12;11616:19;;11421:220;;;:::o;11647:118::-;11734:24;11752:5;11734:24;:::i;:::-;11729:3;11722:37;11712:53;;:::o;11771:112::-;11854:22;11870:5;11854:22;:::i;:::-;11849:3;11842:35;11832:51;;:::o;11889:379::-;12073:3;12095:147;12238:3;12095:147;:::i;:::-;12088:154;;12259:3;12252:10;;12077:191;;;:::o;12274:222::-;12367:4;12405:2;12394:9;12390:18;12382:26;;12418:71;12486:1;12475:9;12471:17;12462:6;12418:71;:::i;:::-;12372:124;;;;:::o;12502:332::-;12623:4;12661:2;12650:9;12646:18;12638:26;;12674:71;12742:1;12731:9;12727:17;12718:6;12674:71;:::i;:::-;12755:72;12823:2;12812:9;12808:18;12799:6;12755:72;:::i;:::-;12628:206;;;;;:::o;12840:807::-;13089:4;13127:3;13116:9;13112:19;13104:27;;13141:71;13209:1;13198:9;13194:17;13185:6;13141:71;:::i;:::-;13222:72;13290:2;13279:9;13275:18;13266:6;13222:72;:::i;:::-;13304:80;13380:2;13369:9;13365:18;13356:6;13304:80;:::i;:::-;13394;13470:2;13459:9;13455:18;13446:6;13394:80;:::i;:::-;13484:73;13552:3;13541:9;13537:19;13528:6;13484:73;:::i;:::-;13567;13635:3;13624:9;13620:19;13611:6;13567:73;:::i;:::-;13094:553;;;;;;;;;:::o;13653:210::-;13740:4;13778:2;13767:9;13763:18;13755:26;;13791:65;13853:1;13842:9;13838:17;13829:6;13791:65;:::i;:::-;13745:118;;;;:::o;13869:258::-;13980:4;14018:2;14007:9;14003:18;13995:26;;14031:89;14117:1;14106:9;14102:17;14093:6;14031:89;:::i;:::-;13985:142;;;;:::o;14133:313::-;14246:4;14284:2;14273:9;14269:18;14261:26;;14333:9;14327:4;14323:20;14319:1;14308:9;14304:17;14297:47;14361:78;14434:4;14425:6;14361:78;:::i;:::-;14353:86;;14251:195;;;;:::o;14452:419::-;14618:4;14656:2;14645:9;14641:18;14633:26;;14705:9;14699:4;14695:20;14691:1;14680:9;14676:17;14669:47;14733:131;14859:4;14733:131;:::i;:::-;14725:139;;14623:248;;;:::o;14877:419::-;15043:4;15081:2;15070:9;15066:18;15058:26;;15130:9;15124:4;15120:20;15116:1;15105:9;15101:17;15094:47;15158:131;15284:4;15158:131;:::i;:::-;15150:139;;15048:248;;;:::o;15302:419::-;15468:4;15506:2;15495:9;15491:18;15483:26;;15555:9;15549:4;15545:20;15541:1;15530:9;15526:17;15519:47;15583:131;15709:4;15583:131;:::i;:::-;15575:139;;15473:248;;;:::o;15727:419::-;15893:4;15931:2;15920:9;15916:18;15908:26;;15980:9;15974:4;15970:20;15966:1;15955:9;15951:17;15944:47;16008:131;16134:4;16008:131;:::i;:::-;16000:139;;15898:248;;;:::o;16152:419::-;16318:4;16356:2;16345:9;16341:18;16333:26;;16405:9;16399:4;16395:20;16391:1;16380:9;16376:17;16369:47;16433:131;16559:4;16433:131;:::i;:::-;16425:139;;16323:248;;;:::o;16577:419::-;16743:4;16781:2;16770:9;16766:18;16758:26;;16830:9;16824:4;16820:20;16816:1;16805:9;16801:17;16794:47;16858:131;16984:4;16858:131;:::i;:::-;16850:139;;16748:248;;;:::o;17002:419::-;17168:4;17206:2;17195:9;17191:18;17183:26;;17255:9;17249:4;17245:20;17241:1;17230:9;17226:17;17219:47;17283:131;17409:4;17283:131;:::i;:::-;17275:139;;17173:248;;;:::o;17427:222::-;17520:4;17558:2;17547:9;17543:18;17535:26;;17571:71;17639:1;17628:9;17624:17;17615:6;17571:71;:::i;:::-;17525:124;;;;:::o;17655:831::-;17918:4;17956:3;17945:9;17941:19;17933:27;;17970:71;18038:1;18027:9;18023:17;18014:6;17970:71;:::i;:::-;18051:80;18127:2;18116:9;18112:18;18103:6;18051:80;:::i;:::-;18178:9;18172:4;18168:20;18163:2;18152:9;18148:18;18141:48;18206:108;18309:4;18300:6;18206:108;:::i;:::-;18198:116;;18324:72;18392:2;18381:9;18377:18;18368:6;18324:72;:::i;:::-;18406:73;18474:3;18463:9;18459:19;18450:6;18406:73;:::i;:::-;17923:563;;;;;;;;:::o;18492:332::-;18613:4;18651:2;18640:9;18636:18;18628:26;;18664:71;18732:1;18721:9;18717:17;18708:6;18664:71;:::i;:::-;18745:72;18813:2;18802:9;18798:18;18789:6;18745:72;:::i;:::-;18618:206;;;;;:::o;18830:214::-;18919:4;18957:2;18946:9;18942:18;18934:26;;18970:67;19034:1;19023:9;19019:17;19010:6;18970:67;:::i;:::-;18924:120;;;;:::o;19131:132::-;19198:4;19221:3;19213:11;;19251:4;19246:3;19242:14;19234:22;;19203:60;;;:::o;19269:114::-;19336:6;19370:5;19364:12;19354:22;;19343:40;;;:::o;19389:99::-;19441:6;19475:5;19469:12;19459:22;;19448:40;;;:::o;19494:113::-;19564:4;19596;19591:3;19587:14;19579:22;;19569:38;;;:::o;19613:184::-;19712:11;19746:6;19741:3;19734:19;19786:4;19781:3;19777:14;19762:29;;19724:73;;;;:::o;19803:147::-;19904:11;19941:3;19926:18;;19916:34;;;;:::o;19956:169::-;20040:11;20074:6;20069:3;20062:19;20114:4;20109:3;20105:14;20090:29;;20052:73;;;;:::o;20131:305::-;20171:3;20190:20;20208:1;20190:20;:::i;:::-;20185:25;;20224:20;20242:1;20224:20;:::i;:::-;20219:25;;20378:1;20310:66;20306:74;20303:1;20300:81;20297:2;;;20384:18;;:::i;:::-;20297:2;20428:1;20425;20421:9;20414:16;;20175:261;;;;:::o;20442:185::-;20482:1;20499:20;20517:1;20499:20;:::i;:::-;20494:25;;20533:20;20551:1;20533:20;:::i;:::-;20528:25;;20572:1;20562:2;;20577:18;;:::i;:::-;20562:2;20619:1;20616;20612:9;20607:14;;20484:143;;;;:::o;20633:348::-;20673:7;20696:20;20714:1;20696:20;:::i;:::-;20691:25;;20730:20;20748:1;20730:20;:::i;:::-;20725:25;;20918:1;20850:66;20846:74;20843:1;20840:81;20835:1;20828:9;20821:17;20817:105;20814:2;;;20925:18;;:::i;:::-;20814:2;20973:1;20970;20966:9;20955:20;;20681:300;;;;:::o;20987:191::-;21027:4;21047:20;21065:1;21047:20;:::i;:::-;21042:25;;21081:20;21099:1;21081:20;:::i;:::-;21076:25;;21120:1;21117;21114:8;21111:2;;;21125:18;;:::i;:::-;21111:2;21170:1;21167;21163:9;21155:17;;21032:146;;;;:::o;21184:96::-;21221:7;21250:24;21268:5;21250:24;:::i;:::-;21239:35;;21229:51;;;:::o;21286:90::-;21320:7;21363:5;21356:13;21349:21;21338:32;;21328:48;;;:::o;21382:126::-;21419:7;21459:42;21452:5;21448:54;21437:65;;21427:81;;;:::o;21514:77::-;21551:7;21580:5;21569:16;;21559:32;;;:::o;21597:86::-;21632:7;21672:4;21665:5;21661:16;21650:27;;21640:43;;;:::o;21689:162::-;21757:9;21790:55;21839:5;21790:55;:::i;:::-;21777:68;;21767:84;;;:::o;21857:131::-;21925:9;21958:24;21976:5;21958:24;:::i;:::-;21945:37;;21935:53;;;:::o;21994:121::-;22052:9;22085:24;22103:5;22085:24;:::i;:::-;22072:37;;22062:53;;;:::o;22121:307::-;22189:1;22199:113;22213:6;22210:1;22207:13;22199:113;;;22298:1;22293:3;22289:11;22283:18;22279:1;22274:3;22270:11;22263:39;22235:2;22232:1;22228:10;22223:15;;22199:113;;;22330:6;22327:1;22324:13;22321:2;;;22410:1;22401:6;22396:3;22392:16;22385:27;22321:2;22170:258;;;;:::o;22434:180::-;22482:77;22479:1;22472:88;22579:4;22576:1;22569:15;22603:4;22600:1;22593:15;22620:180;22668:77;22665:1;22658:88;22765:4;22762:1;22755:15;22789:4;22786:1;22779:15;22806:180;22854:77;22851:1;22844:88;22951:4;22948:1;22941:15;22975:4;22972:1;22965:15;22992:180;23040:77;23037:1;23030:88;23137:4;23134:1;23127:15;23161:4;23158:1;23151:15;23301:117;23410:1;23407;23400:12;23424:102;23465:6;23516:2;23512:7;23507:2;23500:5;23496:14;23492:28;23482:38;;23472:54;;;:::o;23532:167::-;23672:19;23668:1;23660:6;23656:14;23649:43;23638:61;:::o;23705:225::-;23845:34;23841:1;23833:6;23829:14;23822:58;23914:8;23909:2;23901:6;23897:15;23890:33;23811:119;:::o;23936:180::-;24076:32;24072:1;24064:6;24060:14;24053:56;24042:74;:::o;24122:249::-;24262:34;24258:1;24250:6;24246:14;24239:58;24331:32;24326:2;24318:6;24314:15;24307:57;24228:143;:::o;24377:156::-;24517:8;24513:1;24505:6;24501:14;24494:32;24483:50;:::o;24539:114::-;24645:8;:::o;24659:168::-;24799:20;24795:1;24787:6;24783:14;24776:44;24765:62;:::o;24833:222::-;24973:34;24969:1;24961:6;24957:14;24950:58;25042:5;25037:2;25029:6;25025:15;25018:30;24939:116;:::o;25061:122::-;25134:24;25152:5;25134:24;:::i;:::-;25127:5;25124:35;25114:2;;25173:1;25170;25163:12;25114:2;25104:79;:::o;25189:116::-;25259:21;25274:5;25259:21;:::i;:::-;25252:5;25249:32;25239:2;;25295:1;25292;25285:12;25239:2;25229:76;:::o;25311:122::-;25384:24;25402:5;25384:24;:::i;:::-;25377:5;25374:35;25364:2;;25423:1;25420;25413:12;25364:2;25354:79;:::o

Swarm Source

ipfs://4a1b072a7044c0befe9593dab9daf1fdb0072f4a99b2bdab2c340e383b0fa247
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.