ETH Price: $2,644.51 (-0.91%)

Token

COCK INU (COCK)
 

Overview

Max Total Supply

100,000,000 COCK

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 COCK

Value
$0.00
0x758fe7e0d53d46a97801e63abea0f78c2ab73055
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:
CockInu

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-06
*/

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

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

/**MY COCK IS STRONG
*/


/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function 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 Auth {
    address internal owner;

    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 payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface DogsOfWar {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
    function cryHavoc(address shareholder) external;
}


contract LifeOnTheStreet is DogsOfWar {

    using SafeMath for uint256;
    address _token;

    address public WETH;

    IDEXRouter router;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;
    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 30 minutes;
    uint256 public minDistribution = 0 * (10 ** 9);

    uint256 public currentIndex;
    bool initialized;

    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor () {
        _token = msg.sender;
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    }
    
    receive() external payable {
        deposit();
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
        minPeriod = newMinPeriod;
        minDistribution = newMinDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {

        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() public payable override {

        uint256 balanceBefore = IERC20(WETH).balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(WETH);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = IERC20(WETH).balanceOf(address(this)).sub(balanceBefore);
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }
    
    function process(uint256 gas) external override {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 iterations = 0;
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        while(gasUsed < gas && iterations < shareholderCount) {

            if(currentIndex >= shareholderCount){ currentIndex = 0; }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) public view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            IERC20(WETH).transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function cryHavoc(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

contract CockInu is IERC20, Auth {
    using SafeMath for uint256;

    address public WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; //WETH token

    string private constant _name = "COCK INU";
    string private constant _symbol = "COCK";
    uint8 private constant _decimals = 18;
    
    uint256 private _totalSupply = 100000000 * (10 ** _decimals);

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping (address => uint256) private cooldown;

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

    bool public antiBot = true;

    mapping (address => bool) private bots; 
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isDividendExempt;

    uint256 public launchedAt;
    address private lpWallet = DEAD;

    uint256 public buyFee = 6;
    uint256 public sellFee = 8;

    uint256 public toReflections = 20;
    uint256 public toLiquidity = 20;
    uint256 public toMarketing = 20;

    uint256 public allocationSum = 100;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address private tokenOwner;
    address public campaignWallet = payable(0x2969dCDCB643Bc0979bA0bEcE76C25F99a7758D5);
    address private whoLetTheDogsOut = payable(0x7300e9eeA578f775230DEd8C1E0E531386C423B3);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = true;
    
    LifeOnTheStreet public lifeOnTheStreet;
    uint256 public lifeOnTheStreetGas = 0;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    uint256 public maxTx = _totalSupply.div(100);
    uint256 public maxWallet = _totalSupply.div(50);
    uint256 public swapThreshold = _totalSupply.div(200);

    constructor (
        address _owner        
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        lifeOnTheStreet = new LifeOnTheStreet();
        
        isFeeExempt[_owner] = true;
        isFeeExempt[campaignWallet] = true;
        isFeeExempt[whoLetTheDogsOut] = true;             

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[whoLetTheDogsOut] = true;
        isDividendExempt[campaignWallet] = true;
        isDividendExempt[DEAD] = true;
        isDividendExempt[ZERO] = true;

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;
        isTxLimitExempt[campaignWallet] = true;
        isTxLimitExempt[whoLetTheDogsOut] = true;    


        _balances[_owner] = _totalSupply;
    
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }


    function setBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
    }

    function changeTotalFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {

        buyFee = newBuyFee;
        sellFee = newSellFee;

        require(buyFee <= 10, "too high");
        require(sellFee <= 10, "too high");
    } 
    
    function changeFeeAllocation(uint256 newRewardFee, uint256 newLpFee, uint256 newMarketingFee) external onlyOwner {
        toReflections = newRewardFee;
        toLiquidity = newLpFee;
        toMarketing = newMarketingFee;
    }

    function changeTxLimit(uint256 newLimit) external onlyOwner {
        maxTx = newLimit;
    }

    function changeWalletLimit(uint256 newLimit) external onlyOwner {
        maxWallet  = newLimit;
    }
    
    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

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

    function setCampaignWallet(address payable newCampaignWallet) external onlyOwner {
        campaignWallet = payable(newCampaignWallet);
    }

    function setLpWallet(address newLpWallet) external onlyOwner {
        lpWallet = newLpWallet;
    }    

    function setOwnerWallet(address payable newOwnerWallet) external onlyOwner {
        tokenOwner = newOwnerWallet;
    }     

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external onlyOwner {
        lifeOnTheStreet.setDistributionCriteria(newMinPeriod, newMinDistribution);        
    }

    function delBot(address notbot) external onlyOwner {
        bots[notbot] = false;
    }

    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            lifeOnTheStreet.setShare(holder, 0);
        }else{
            lifeOnTheStreet.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

    function changeMoneyPrinterGas(uint256 newGas) external onlyOwner {
        lifeOnTheStreetGas = newGas;
    }           

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

    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 _transfer(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].sub(amount, "Insufficient Allowance");
        }

        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not active");
        require(!bots[sender] && !bots[recipient]);

        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }

        require(amount <= maxTx || isTxLimitExempt[sender], "tx");

        if(!isTxLimitExempt[recipient] && antiBot)
        {
            require(_balances[recipient].add(amount) <= maxWallet, "wallet");
        }

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        // Dividend tracker
        if(!isDividendExempt[sender]) {
            try lifeOnTheStreet.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try lifeOnTheStreet.setShare(recipient, _balances[recipient]) {} catch {} 
        }

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }    

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }  
    
    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeApplicable = pair == recipient ? sellFee : buyFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

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

        return amount.sub(feeAmount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        approve(address(this), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpWallet,
            block.timestamp
        );
    }

    function swapBack() internal lockTheSwap {
    
        uint256 tokenBalance = _balances[address(this)]; 
        uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2);     
        uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity);

        swapTokensForEth(amountToSwap);

        uint256 totalEthBalance = address(this).balance;
        uint256 ethForWETH = totalEthBalance.mul(toReflections).div(100);
        uint256 ethForCampaignWallet = totalEthBalance.mul(toMarketing).div(100);
        uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2);
      
        if (totalEthBalance > 0){
            payable(campaignWallet).transfer(ethForCampaignWallet);
        }
        
        try lifeOnTheStreet.deposit{value: ethForWETH}() {} catch {}
        
        if (tokensForLiquidity > 0){
            addLiquidity(tokensForLiquidity, ethForLiquidity);
        }
    }

    function manualSwapBack() external onlyOwner {
        swapBack();
    }

    function clearStuckEth() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0){          
            payable(campaignWallet).transfer(contractETHBalance);
        }
    }

    function manualProcessGas(uint256 manualGas) external onlyOwner {
        lifeOnTheStreet.process(manualGas);
    }

    function checkPendingReflections(address shareholder) external view returns (uint256) {
        return lifeOnTheStreet.getUnpaidEarnings(shareholder);
    }

    function milkbone() external {
        lifeOnTheStreet.cryHavoc(msg.sender);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"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":"address","name":"owner","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":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allocationSum","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":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"campaignWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"changeMoneyPrinterGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"checkPendingReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","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":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lifeOnTheStreet","outputs":[{"internalType":"contract LifeOnTheStreet","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lifeOnTheStreetGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"milkbone","outputs":[],"stateMutability":"nonpayable","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":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newCampaignWallet","type":"address"}],"name":"setCampaignWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLpWallet","type":"address"}],"name":"setLpWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000069919062001101565b6305f5e1006200007a919062001152565b60025561dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760146101000a81548160ff021916908315150217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006600e556008600f556014601055601460115560146012556064601355732969dcdcb643bc0979ba0bece76c25f99a7758d5601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737300e9eea578f775230ded8c1e0e531386c423b3601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960156101000a81548160ff0219169083151502179055506001601960166101000a81548160ff0219169083151502179055506000601b55620002a0606460025462000e9f60201b6200219d1790919060201c565b601c55620002c0603260025462000e9f60201b6200219d1790919060201c565b601d55620002e060c860025462000e9f60201b6200219d1790919060201c565b601e55348015620002f057600080fd5b5060405162007c6e38038062007c6e83398181016040528101906200031691906200121d565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200041b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044191906200121d565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200051591906200121d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200057392919062001260565b6020604051808303816000875af115801562000593573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005b991906200121d565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550604051620006ca9062000f59565b604051809103906000f080158015620006e7573d6000803e3d6000fd5b50601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600254600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000e9091906200129e565b60405180910390a350620013ea565b600062000ee983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000ef160201b60201c565b905092915050565b6000808311829062000f3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f3291906200135f565b60405180910390fd5b506000838562000f4c9190620013b2565b9050809150509392505050565b61204c8062005c2283390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ff55780860481111562000fcd5762000fcc62000f67565b5b600185161562000fdd5780820291505b808102905062000fed8562000f96565b945062000fad565b94509492505050565b600082620010105760019050620010e3565b81620010205760009050620010e3565b816001811462001039576002811462001044576200107a565b6001915050620010e3565b60ff84111562001059576200105862000f67565b5b8360020a91508482111562001073576200107262000f67565b5b50620010e3565b5060208310610133831016604e8410600b8410161715620010b45782820a905083811115620010ae57620010ad62000f67565b5b620010e3565b620010c3848484600162000fa3565b92509050818404811115620010dd57620010dc62000f67565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200110e82620010ea565b91506200111b83620010f4565b92506200114a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ffe565b905092915050565b60006200115f82620010ea565b91506200116c83620010ea565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620011a857620011a762000f67565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011e582620011b8565b9050919050565b620011f781620011d8565b81146200120357600080fd5b50565b6000815190506200121781620011ec565b92915050565b600060208284031215620012365762001235620011b3565b5b6000620012468482850162001206565b91505092915050565b6200125a81620011d8565b82525050565b60006040820190506200127760008301856200124f565b6200128660208301846200124f565b9392505050565b6200129881620010ea565b82525050565b6000602082019050620012b560008301846200128d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620012f7578082015181840152602081019050620012da565b8381111562001307576000848401525b50505050565b6000601f19601f8301169050919050565b60006200132b82620012bb565b620013378185620012c6565b935062001349818560208601620012d7565b62001354816200130d565b840191505092915050565b600060208201905081810360008301526200137b81846200131e565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620013bf82620010ea565b9150620013cc83620010ea565b925082620013df57620013de62001383565b5b828204905092915050565b61482880620013fa6000396000f3fe6080604052600436106103855760003560e01c806375df1305116101d1578063b515566a11610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610d0b578063f8b45b0514610d36578063fabe628314610d61578063ffb54a9914610d8a5761038c565b8063dd62ed3e14610c53578063e01da9d114610c90578063f2fde38b14610cb9578063f708a64f14610ce25761038c565b8063c45a0155116100dc578063c45a015514610ba9578063c8d1293d14610bd4578063caa5581b14610bff578063d920334e14610c2a5761038c565b8063b515566a14610b2c578063bb542ef014610b55578063bf56b37114610b7e5761038c565b8063893d20e81161016f578063a3a2e89e11610149578063a3a2e89e14610a70578063a8aa1b3114610a99578063a9059cbb14610ac4578063ad5c464814610b015761038c565b8063893d20e8146109dd5780638b42507f14610a0857806395d89b4114610a455761038c565b80637dfcbe34116101ab5780637dfcbe34146109475780638193403114610972578063838aaeab1461099b57806389291a8f146109c65761038c565b806375df1305146108b657806377359aa7146108e15780637db1342c1461091e5761038c565b80632f54bf6e116102b65780634543437711610254578063571ac8b011610223578063571ac8b0146107fa57806366eb37851461083757806370a082311461084e5780637437681e1461088b5761038c565b80634543437714610750578063468c7ee21461077b57806347062402146107a45780634a74bb02146107cf5761038c565b806337558c091161029057806337558c09146106825780633dab5269146106ad5780633f4218e0146106d65780634355855a146107135761038c565b80632f54bf6e146105f157806330ca34ee1461062e578063313ce567146106575761038c565b806318160ddd116103235780632b112e49116102fd5780632b112e49146105495780632b14ca56146105745780632d48e8961461059f5780632dbea2e1146105c85761038c565b806318160ddd146104b857806323b872dd146104e3578063273123b7146105205761038c565b80630b3beab41161035f5780630b3beab4146104245780630bdb28781461044f5780630d295980146104785780630d3b571a146104a15761038c565b80630445b6671461039157806306fdde03146103bc578063095ea7b3146103e75761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610db5565b6040516103b39190613844565b60405180910390f35b3480156103c857600080fd5b506103d1610dbb565b6040516103de91906138f8565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906139b8565b610df8565b60405161041b9190613a13565b60405180910390f35b34801561043057600080fd5b50610439610eea565b6040516104469190613a8d565b60405180910390f35b34801561045b57600080fd5b5061047660048036038101906104719190613aa8565b610f10565b005b34801561048457600080fd5b5061049f600480360381019061049a9190613b01565b610f62565b005b3480156104ad57600080fd5b506104b6610fc7565b005b3480156104c457600080fd5b506104cd611056565b6040516104da9190613844565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190613b2e565b611060565b6040516105179190613a13565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190613b81565b611260565b005b34801561055557600080fd5b5061055e611303565b60405161056b9190613844565b60405180910390f35b34801561058057600080fd5b50610589611385565b6040516105969190613844565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c19190613bae565b61138b565b005b3480156105d457600080fd5b506105ef60048036038101906105ea9190613bee565b611466565b005b3480156105fd57600080fd5b5061061860048036038101906106139190613b81565b6114c8565b6040516106259190613a13565b60405180910390f35b34801561063a57600080fd5b5061065560048036038101906106509190613bae565b611521565b005b34801561066357600080fd5b5061066c611607565b6040516106799190613c5d565b60405180910390f35b34801561068e57600080fd5b50610697611610565b6040516106a49190613844565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf9190613c78565b611616565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190613b81565b611683565b60405161070a9190613a13565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190613b81565b6116a3565b6040516107479190613a13565b60405180910390f35b34801561075c57600080fd5b506107656116c3565b6040516107729190613844565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190613b81565b6116c9565b005b3480156107b057600080fd5b506107b9611755565b6040516107c69190613844565b60405180910390f35b3480156107db57600080fd5b506107e461175b565b6040516107f19190613a13565b60405180910390f35b34801561080657600080fd5b50610821600480360381019061081c9190613b81565b61176e565b60405161082e9190613a13565b60405180910390f35b34801561084357600080fd5b5061084c6117a1565b005b34801561085a57600080fd5b5061087560048036038101906108709190613b81565b6117f3565b6040516108829190613844565b60405180910390f35b34801561089757600080fd5b506108a061183c565b6040516108ad9190613844565b60405180910390f35b3480156108c257600080fd5b506108cb611842565b6040516108d89190613844565b60405180910390f35b3480156108ed57600080fd5b5061090860048036038101906109039190613b81565b611848565b6040516109159190613844565b60405180910390f35b34801561092a57600080fd5b5061094560048036038101906109409190613aa8565b6118ed565b005b34801561095357600080fd5b5061095c61193f565b6040516109699190613a13565b60405180910390f35b34801561097e57600080fd5b5061099960048036038101906109949190613aa8565b611952565b005b3480156109a757600080fd5b506109b0611a2a565b6040516109bd9190613cc7565b60405180910390f35b3480156109d257600080fd5b506109db611a50565b005b3480156109e957600080fd5b506109f2611b13565b6040516109ff9190613cc7565b60405180910390f35b348015610a1457600080fd5b50610a2f6004803603810190610a2a9190613b81565b611b3c565b604051610a3c9190613a13565b60405180910390f35b348015610a5157600080fd5b50610a5a611b5c565b604051610a6791906138f8565b60405180910390f35b348015610a7c57600080fd5b50610a976004803603810190610a929190613ce2565b611b99565b005b348015610aa557600080fd5b50610aae611c3c565b604051610abb9190613cc7565b60405180910390f35b348015610ad057600080fd5b50610aeb6004803603810190610ae691906139b8565b611c62565b604051610af89190613a13565b60405180910390f35b348015610b0d57600080fd5b50610b16611c77565b604051610b239190613cc7565b60405180910390f35b348015610b3857600080fd5b50610b536004803603810190610b4e9190613e6a565b611c9d565b005b348015610b6157600080fd5b50610b7c6004803603810190610b779190613ef1565b611d7a565b005b348015610b8a57600080fd5b50610b93611e06565b604051610ba09190613844565b60405180910390f35b348015610bb557600080fd5b50610bbe611e0c565b604051610bcb9190613cc7565b60405180910390f35b348015610be057600080fd5b50610be9611e32565b604051610bf69190613844565b60405180910390f35b348015610c0b57600080fd5b50610c14611e38565b604051610c219190613844565b60405180910390f35b348015610c3657600080fd5b50610c516004803603810190610c4c9190613aa8565b611e3e565b005b348015610c5f57600080fd5b50610c7a6004803603810190610c759190613f1e565b611e90565b604051610c879190613844565b60405180910390f35b348015610c9c57600080fd5b50610cb76004803603810190610cb29190613ef1565b611f17565b005b348015610cc557600080fd5b50610ce06004803603810190610cdb9190613ef1565b611fa3565b005b348015610cee57600080fd5b50610d096004803603810190610d049190613ce2565b612065565b005b348015610d1757600080fd5b50610d206120bb565b604051610d2d9190613f91565b60405180910390f35b348015610d4257600080fd5b50610d4b6120e1565b604051610d589190613844565b60405180910390f35b348015610d6d57600080fd5b50610d886004803603810190610d839190613ce2565b6120e7565b005b348015610d9657600080fd5b50610d9f61218a565b604051610dac9190613a13565b60405180910390f35b601e5481565b60606040518060400160405280600881526020017f434f434b20494e55000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ed89190613844565b60405180910390a36001905092915050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f19336114c8565b610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90613ff8565b60405180910390fd5b80601b8190555050565b610f6b336114c8565b610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190613ff8565b60405180910390fd5b80601960166101000a81548160ff02191690831515021790555050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d7dbc06336040518263ffffffff1660e01b81526004016110229190613cc7565b600060405180830381600087803b15801561103c57600080fd5b505af1158015611050573d6000803e3d6000fd5b50505050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461124c576111cb826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e79092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61125784848461224b565b90509392505050565b611269336114c8565b6112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90613ff8565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611380611333600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117f3565b611372611361600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117f3565b600254612b5d90919063ffffffff16565b612b5d90919063ffffffff16565b905090565b600f5481565b611394336114c8565b6113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca90613ff8565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611430929190614018565b600060405180830381600087803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050505050565b61146f336114c8565b6114ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a590613ff8565b60405180910390fd5b826010819055508160118190555080601281905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61152a336114c8565b611569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156090613ff8565b60405180910390fd5b81600e8190555080600f81905550600a600e5411156115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b49061408d565b60405180910390fd5b600a600f541115611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fa9061408d565b60405180910390fd5b5050565b60006012905090565b601b5481565b61161f336114c8565b61165e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165590613ff8565b60405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601e819055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60135481565b6116d2336114c8565b611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890613ff8565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b601960159054906101000a900460ff1681565b600061179a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610df8565b9050919050565b6117aa336114c8565b6117e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e090613ff8565b60405180910390fd5b6117f1612ba7565b565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601c5481565b60125481565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b81526004016118a59190613cc7565b602060405180830381865afa1580156118c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e691906140c2565b9050919050565b6118f6336114c8565b611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613ff8565b60405180910390fd5b80601d8190555050565b600760149054906101000a900460ff1681565b61195b336114c8565b61199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190613ff8565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b81526004016119f59190613844565b600060405180830381600087803b158015611a0f57600080fd5b505af1158015611a23573d6000803e3d6000fd5b5050505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a59336114c8565b611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f90613ff8565b60405180910390fd5b60004790506000811115611b1057601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b0e573d6000803e3d6000fd5b505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600481526020017f434f434b00000000000000000000000000000000000000000000000000000000815250905090565b611ba2336114c8565b611be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd890613ff8565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c6f33848461224b565b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ca6336114c8565b611ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdc90613ff8565b60405180910390fd5b60005b8151811015611d7657600160086000848481518110611d0a57611d096140ef565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d6e9061414d565b915050611ce8565b5050565b611d83336114c8565b611dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db990613ff8565b60405180910390fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b60105481565b611e47336114c8565b611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d90613ff8565b60405180910390fd5b80601c8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f20336114c8565b611f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5690613ff8565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611fac336114c8565b611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe290613ff8565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161205a91906141b6565b60405180910390a150565b61206e336114c8565b6120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a490613ff8565b60405180910390fd5b6120b78282612e29565b5050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b6120f0336114c8565b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212690613ff8565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960169054906101000a900460ff1681565b60006121df83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613081565b905092915050565b600083831115829061222f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222691906138f8565b60405180910390fd5b506000838561223e91906141d1565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122f6575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561234b57601960169054906101000a900460ff1661234a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234190614251565b60405180910390fd5b5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123ef5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6123f857600080fd5b601960149054906101000a900460ff161561241f576124188484846130e4565b9050612b56565b601c54821115806124795750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6124b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124af906142bd565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561251e5750600760149054906101000a900460ff165b156125ba57601d5461257883600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132b790919063ffffffff16565b11156125b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b090614329565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126255750601960149054906101000a900460ff16155b801561263d5750601960159054906101000a900460ff165b801561268a5750601e54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561269857612697612ba7565b5b612721826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e79092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561280a5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6128145782612820565b61281f858585613315565b5b905061287481600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132b790919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129d157601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016129a4929190614349565b600060405180830381600087803b1580156129be57600080fd5b505af19250505080156129cf575060015b505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612aeb57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612abe929190614349565b600060405180830381600087803b158015612ad857600080fd5b505af1925050508015612ae9575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b489190613844565b60405180910390a360019150505b9392505050565b6000612b9f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121e7565b905092915050565b6001601960146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612c436002612c356064612c27601154876134bd90919063ffffffff16565b61219d90919063ffffffff16565b61219d90919063ffffffff16565b90506000612c5a8284612b5d90919063ffffffff16565b9050612c6581613537565b60004790506000612c946064612c86601054856134bd90919063ffffffff16565b61219d90919063ffffffff16565b90506000612cc06064612cb2601254866134bd90919063ffffffff16565b61219d90919063ffffffff16565b90506000612cff6002612cf16064612ce3601154896134bd90919063ffffffff16565b61219d90919063ffffffff16565b61219d90919063ffffffff16565b90506000841115612d7457601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612d72573d6000803e3d6000fd5b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015612dde57600080fd5b505af193505050508015612df0575060015b506000861115612e0557612e048682613758565b5b505050505050506000601960146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612eb35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612ebc57600080fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612fae57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612f779291906143ad565b600060405180830381600087803b158015612f9157600080fd5b505af1158015612fa5573d6000803e3d6000fd5b5050505061307d565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161304a929190614349565b600060405180830381600087803b15801561306457600080fd5b505af1158015613078573d6000803e3d6000fd5b505050505b5050565b600080831182906130c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130bf91906138f8565b60405180910390fd5b50600083856130d79190614405565b9050809150509392505050565b600061316f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e79092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061320482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132b790919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132a49190613844565b60405180910390a3600190509392505050565b60008082846132c69190614436565b90508381101561330b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613302906144d8565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461337557600e54613379565b600f545b905060006133a3606461339584876134bd90919063ffffffff16565b61219d90919063ffffffff16565b90506133f781600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132b790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134979190613844565b60405180910390a36134b28185612b5d90919063ffffffff16565b925050509392505050565b60008083036134cf5760009050613531565b600082846134dd91906144f8565b90508284826134ec9190614405565b1461352c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613523906145c4565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff81111561355457613553613d27565b5b6040519080825280602002602001820160405280156135825781602001602082028036833780820191505090505b509050308160008151811061359a576135996140ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613641573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061366591906145f9565b81600181518110613679576136786140ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136bd3083610df8565b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016137229594939291906146e4565b600060405180830381600087803b15801561373c57600080fd5b505af1158015613750573d6000803e3d6000fd5b505050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016137e19695949392919061473e565b60606040518083038185885af11580156137ff573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613824919061479f565b5050505050565b6000819050919050565b61383e8161382b565b82525050565b60006020820190506138596000830184613835565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561389957808201518184015260208101905061387e565b838111156138a8576000848401525b50505050565b6000601f19601f8301169050919050565b60006138ca8261385f565b6138d4818561386a565b93506138e481856020860161387b565b6138ed816138ae565b840191505092915050565b6000602082019050818103600083015261391281846138bf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006139598261392e565b9050919050565b6139698161394e565b811461397457600080fd5b50565b60008135905061398681613960565b92915050565b6139958161382b565b81146139a057600080fd5b50565b6000813590506139b28161398c565b92915050565b600080604083850312156139cf576139ce613924565b5b60006139dd85828601613977565b92505060206139ee858286016139a3565b9150509250929050565b60008115159050919050565b613a0d816139f8565b82525050565b6000602082019050613a286000830184613a04565b92915050565b6000819050919050565b6000613a53613a4e613a498461392e565b613a2e565b61392e565b9050919050565b6000613a6582613a38565b9050919050565b6000613a7782613a5a565b9050919050565b613a8781613a6c565b82525050565b6000602082019050613aa26000830184613a7e565b92915050565b600060208284031215613abe57613abd613924565b5b6000613acc848285016139a3565b91505092915050565b613ade816139f8565b8114613ae957600080fd5b50565b600081359050613afb81613ad5565b92915050565b600060208284031215613b1757613b16613924565b5b6000613b2584828501613aec565b91505092915050565b600080600060608486031215613b4757613b46613924565b5b6000613b5586828701613977565b9350506020613b6686828701613977565b9250506040613b77868287016139a3565b9150509250925092565b600060208284031215613b9757613b96613924565b5b6000613ba584828501613977565b91505092915050565b60008060408385031215613bc557613bc4613924565b5b6000613bd3858286016139a3565b9250506020613be4858286016139a3565b9150509250929050565b600080600060608486031215613c0757613c06613924565b5b6000613c15868287016139a3565b9350506020613c26868287016139a3565b9250506040613c37868287016139a3565b9150509250925092565b600060ff82169050919050565b613c5781613c41565b82525050565b6000602082019050613c726000830184613c4e565b92915050565b60008060408385031215613c8f57613c8e613924565b5b6000613c9d85828601613aec565b9250506020613cae858286016139a3565b9150509250929050565b613cc18161394e565b82525050565b6000602082019050613cdc6000830184613cb8565b92915050565b60008060408385031215613cf957613cf8613924565b5b6000613d0785828601613977565b9250506020613d1885828601613aec565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d5f826138ae565b810181811067ffffffffffffffff82111715613d7e57613d7d613d27565b5b80604052505050565b6000613d9161391a565b9050613d9d8282613d56565b919050565b600067ffffffffffffffff821115613dbd57613dbc613d27565b5b602082029050602081019050919050565b600080fd5b6000613de6613de184613da2565b613d87565b90508083825260208201905060208402830185811115613e0957613e08613dce565b5b835b81811015613e325780613e1e8882613977565b845260208401935050602081019050613e0b565b5050509392505050565b600082601f830112613e5157613e50613d22565b5b8135613e61848260208601613dd3565b91505092915050565b600060208284031215613e8057613e7f613924565b5b600082013567ffffffffffffffff811115613e9e57613e9d613929565b5b613eaa84828501613e3c565b91505092915050565b6000613ebe8261392e565b9050919050565b613ece81613eb3565b8114613ed957600080fd5b50565b600081359050613eeb81613ec5565b92915050565b600060208284031215613f0757613f06613924565b5b6000613f1584828501613edc565b91505092915050565b60008060408385031215613f3557613f34613924565b5b6000613f4385828601613977565b9250506020613f5485828601613977565b9150509250929050565b6000613f6982613a38565b9050919050565b6000613f7b82613f5e565b9050919050565b613f8b81613f70565b82525050565b6000602082019050613fa66000830184613f82565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613fe260068361386a565b9150613fed82613fac565b602082019050919050565b6000602082019050818103600083015261401181613fd5565b9050919050565b600060408201905061402d6000830185613835565b61403a6020830184613835565b9392505050565b7f746f6f2068696768000000000000000000000000000000000000000000000000600082015250565b600061407760088361386a565b915061408282614041565b602082019050919050565b600060208201905081810360008301526140a68161406a565b9050919050565b6000815190506140bc8161398c565b92915050565b6000602082840312156140d8576140d7613924565b5b60006140e6848285016140ad565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006141588261382b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361418a5761418961411e565b5b600182019050919050565b60006141a082613f5e565b9050919050565b6141b081614195565b82525050565b60006020820190506141cb60008301846141a7565b92915050565b60006141dc8261382b565b91506141e78361382b565b9250828210156141fa576141f961411e565b5b828203905092915050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b600061423b60128361386a565b915061424682614205565b602082019050919050565b6000602082019050818103600083015261426a8161422e565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b60006142a760028361386a565b91506142b282614271565b602082019050919050565b600060208201905081810360008301526142d68161429a565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b600061431360068361386a565b915061431e826142dd565b602082019050919050565b6000602082019050818103600083015261434281614306565b9050919050565b600060408201905061435e6000830185613cb8565b61436b6020830184613835565b9392505050565b6000819050919050565b600061439761439261438d84614372565b613a2e565b61382b565b9050919050565b6143a78161437c565b82525050565b60006040820190506143c26000830185613cb8565b6143cf602083018461439e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144108261382b565b915061441b8361382b565b92508261442b5761442a6143d6565b5b828204905092915050565b60006144418261382b565b915061444c8361382b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156144815761448061411e565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006144c2601b8361386a565b91506144cd8261448c565b602082019050919050565b600060208201905081810360008301526144f1816144b5565b9050919050565b60006145038261382b565b915061450e8361382b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145475761454661411e565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006145ae60218361386a565b91506145b982614552565b604082019050919050565b600060208201905081810360008301526145dd816145a1565b9050919050565b6000815190506145f381613960565b92915050565b60006020828403121561460f5761460e613924565b5b600061461d848285016145e4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61465b8161394e565b82525050565b600061466d8383614652565b60208301905092915050565b6000602082019050919050565b600061469182614626565b61469b8185614631565b93506146a683614642565b8060005b838110156146d75781516146be8882614661565b97506146c983614679565b9250506001810190506146aa565b5085935050505092915050565b600060a0820190506146f96000830188613835565b614706602083018761439e565b81810360408301526147188186614686565b90506147276060830185613cb8565b6147346080830184613835565b9695505050505050565b600060c0820190506147536000830189613cb8565b6147606020830188613835565b61476d604083018761439e565b61477a606083018661439e565b6147876080830185613cb8565b61479460a0830184613835565b979650505050505050565b6000806000606084860312156147b8576147b7613924565b5b60006147c6868287016140ad565b93505060206147d7868287016140ad565b92505060406147e8868287016140ad565b915050925092509256fea264697066735822122024826341503edf3101e26bc9376710338d31fd4ba1bb55a4cced5f7d7e8d51f864736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600b55610708600c556000600d5534801561002e57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f24806101286000396000f3fe6080604052600436106101025760003560e01c80638d7dbc0611610095578063d0e30db011610064578063d0e30db01461034c578063e2d2e21914610356578063efca2eed14610381578063ffb2c479146103ac578063ffd49c84146103d557610111565b80638d7dbc061461028e578063997664d7146102b7578063ad5c4648146102e2578063ce7c2ac21461030d57610111565b80632d48e896116100d15780632d48e896146101d25780633a98ef39146101fb5780634fab0ae8146102265780638c21cd521461025157610111565b806311ce023d1461011657806314b6ca961461014157806326987b601461016a57806328fd31981461019557610111565b366101115761010f610400565b005b600080fd5b34801561012257600080fd5b5061012b6107e8565b604051610138919061167d565b60405180910390f35b34801561014d57600080fd5b5061016860048036038101906101639190611727565b6107ee565b005b34801561017657600080fd5b5061017f610aad565b60405161018c919061167d565b60405180910390f35b3480156101a157600080fd5b506101bc60048036038101906101b79190611767565b610ab3565b6040516101c9919061167d565b60405180910390f35b3480156101de57600080fd5b506101f960048036038101906101f49190611794565b610bcc565b005b34801561020757600080fd5b50610210610c36565b60405161021d919061167d565b60405180910390f35b34801561023257600080fd5b5061023b610c3c565b604051610248919061167d565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190611767565b610c42565b60405161028591906117ef565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190611767565b610caf565b005b3480156102c357600080fd5b506102cc610d13565b6040516102d9919061167d565b60405180910390f35b3480156102ee57600080fd5b506102f7610d19565b6040516103049190611819565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190611767565b610d3f565b60405161034393929190611834565b60405180910390f35b610354610400565b005b34801561036257600080fd5b5061036b610d69565b604051610378919061167d565b60405180910390f35b34801561038d57600080fd5b50610396610d6f565b6040516103a3919061167d565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce919061186b565b610d75565b005b3480156103e157600080fd5b506103ea610eb0565b6040516103f7919061167d565b60405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161045d9190611819565b602060405180830381865afa15801561047a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049e91906118ad565b90506000600267ffffffffffffffff8111156104bd576104bc6118da565b5b6040519080825280602002602001820160405280156104eb5781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f919061191e565b816000815181106105935761059261194b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106106045761060361194b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b81526004016106a19493929190611a7d565b6000604051808303818588803b1580156106ba57600080fd5b505af11580156106ce573d6000803e3d6000fd5b5050505050600061078383600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107349190611819565b602060405180830381865afa158015610751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077591906118ad565b610eb690919063ffffffff16565b905061079a81600854610f0090919063ffffffff16565b6008819055506107dd6107cc6007546107be84600b54610f5e90919063ffffffff16565b610fd890919063ffffffff16565b600a54610f0090919063ffffffff16565b600a81905550505050565b600b5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461084657600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561089b5761089a82611022565b5b6000811180156108ed57506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b15610900576108fb826112b5565b610962565b60008114801561095257506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156109615761096082611364565b5b5b6109cb816109bd600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754610eb690919063ffffffff16565b610f0090919063ffffffff16565b60078190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610a63600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600e5481565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403610b075760009050610bc7565b6000610b54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b90506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050808211610baf57600092505050610bc7565b610bc28183610eb690919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c2457600080fd5b81600c8190555080600d819055505050565b60075481565b600d5481565b600042600c54600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c929190611af8565b108015610ca85750600d54610ca683610ab3565b115b9050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d0757600080fd5b610d1081611022565b50565b60085481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090508060000154908060010154908060020154905083565b600a5481565b60095481565b6000600380549050905060008103610d8d5750610ead565b60008060005a90505b8482108015610da457508383105b15610ea85783600e5410610dbb576000600e819055505b610e046003600e5481548110610dd457610dd361194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c42565b15610e5357610e526003600e5481548110610e2257610e2161194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611022565b5b610e78610e695a83610eb690919063ffffffff16565b83610f0090919063ffffffff16565b91505a9050600e6000815480929190610e9090611b4e565b91905055508280610ea090611b4e565b935050610d96565b505050505b50565b600c5481565b6000610ef883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061159d565b905092915050565b6000808284610f0f9190611af8565b905083811015610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90611bf3565b60405180910390fd5b8091505092915050565b6000808303610f705760009050610fd2565b60008284610f7e9190611c13565b9050828482610f8d9190611c9c565b14610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490611d3f565b60405180910390fd5b809150505b92915050565b600061101a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611601565b905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403156112b257600061107882610ab3565b905060008111156112b05761109881600954610f0090919063ffffffff16565b600981905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016110fb929190611d5f565b6020604051808303816000875af115801561111a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e9190611db4565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111d881600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610f0090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611269600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360016003805490506113789190611de1565b815481106113895761138861194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106114075761140661194b565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460046000600360016003805490506114a79190611de1565b815481106114b8576114b761194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600380548061153357611532611e15565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000611596600b54611588600a5485610f5e90919063ffffffff16565b610fd890919063ffffffff16565b9050919050565b60008383111582906115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc9190611ecc565b60405180910390fd5b50600083856115f49190611de1565b9050809150509392505050565b60008083118290611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f9190611ecc565b60405180910390fd5b50600083856116579190611c9c565b9050809150509392505050565b6000819050919050565b61167781611664565b82525050565b6000602082019050611692600083018461166e565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116c88261169d565b9050919050565b6116d8816116bd565b81146116e357600080fd5b50565b6000813590506116f5816116cf565b92915050565b61170481611664565b811461170f57600080fd5b50565b600081359050611721816116fb565b92915050565b6000806040838503121561173e5761173d611698565b5b600061174c858286016116e6565b925050602061175d85828601611712565b9150509250929050565b60006020828403121561177d5761177c611698565b5b600061178b848285016116e6565b91505092915050565b600080604083850312156117ab576117aa611698565b5b60006117b985828601611712565b92505060206117ca85828601611712565b9150509250929050565b60008115159050919050565b6117e9816117d4565b82525050565b600060208201905061180460008301846117e0565b92915050565b611813816116bd565b82525050565b600060208201905061182e600083018461180a565b92915050565b6000606082019050611849600083018661166e565b611856602083018561166e565b611863604083018461166e565b949350505050565b60006020828403121561188157611880611698565b5b600061188f84828501611712565b91505092915050565b6000815190506118a7816116fb565b92915050565b6000602082840312156118c3576118c2611698565b5b60006118d184828501611898565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050611918816116cf565b92915050565b60006020828403121561193457611933611698565b5b600061194284828501611909565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b60006119a96119a461199f8461197a565b611984565b611664565b9050919050565b6119b98161198e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6119f4816116bd565b82525050565b6000611a0683836119eb565b60208301905092915050565b6000602082019050919050565b6000611a2a826119bf565b611a3481856119ca565b9350611a3f836119db565b8060005b83811015611a70578151611a5788826119fa565b9750611a6283611a12565b925050600181019050611a43565b5085935050505092915050565b6000608082019050611a9260008301876119b0565b8181036020830152611aa48186611a1f565b9050611ab3604083018561180a565b611ac0606083018461166e565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b0382611664565b9150611b0e83611664565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b4357611b42611ac9565b5b828201905092915050565b6000611b5982611664565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b8b57611b8a611ac9565b5b600182019050919050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611bdd601b83611b96565b9150611be882611ba7565b602082019050919050565b60006020820190508181036000830152611c0c81611bd0565b9050919050565b6000611c1e82611664565b9150611c2983611664565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611c6257611c61611ac9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ca782611664565b9150611cb283611664565b925082611cc257611cc1611c6d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d29602183611b96565b9150611d3482611ccd565b604082019050919050565b60006020820190508181036000830152611d5881611d1c565b9050919050565b6000604082019050611d74600083018561180a565b611d81602083018461166e565b9392505050565b611d91816117d4565b8114611d9c57600080fd5b50565b600081519050611dae81611d88565b92915050565b600060208284031215611dca57611dc9611698565b5b6000611dd884828501611d9f565b91505092915050565b6000611dec82611664565b9150611df783611664565b925082821015611e0a57611e09611ac9565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081519050919050565b60005b83811015611e6d578082015181840152602081019050611e52565b83811115611e7c576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e9e82611e44565b611ea88185611b96565b9350611eb8818560208601611e4f565b611ec181611e82565b840191505092915050565b60006020820190508181036000830152611ee68184611e93565b90509291505056fea26469706673582212201e4589eb79ba6d897af4239e19ecd7954420dfba5427582d1b6a7ac1ed51da2f64736f6c634300080d00330000000000000000000000007efa686efd1d689e7c6eee6043569d9f5f5c570f

Deployed Bytecode

0x6080604052600436106103855760003560e01c806375df1305116101d1578063b515566a11610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610d0b578063f8b45b0514610d36578063fabe628314610d61578063ffb54a9914610d8a5761038c565b8063dd62ed3e14610c53578063e01da9d114610c90578063f2fde38b14610cb9578063f708a64f14610ce25761038c565b8063c45a0155116100dc578063c45a015514610ba9578063c8d1293d14610bd4578063caa5581b14610bff578063d920334e14610c2a5761038c565b8063b515566a14610b2c578063bb542ef014610b55578063bf56b37114610b7e5761038c565b8063893d20e81161016f578063a3a2e89e11610149578063a3a2e89e14610a70578063a8aa1b3114610a99578063a9059cbb14610ac4578063ad5c464814610b015761038c565b8063893d20e8146109dd5780638b42507f14610a0857806395d89b4114610a455761038c565b80637dfcbe34116101ab5780637dfcbe34146109475780638193403114610972578063838aaeab1461099b57806389291a8f146109c65761038c565b806375df1305146108b657806377359aa7146108e15780637db1342c1461091e5761038c565b80632f54bf6e116102b65780634543437711610254578063571ac8b011610223578063571ac8b0146107fa57806366eb37851461083757806370a082311461084e5780637437681e1461088b5761038c565b80634543437714610750578063468c7ee21461077b57806347062402146107a45780634a74bb02146107cf5761038c565b806337558c091161029057806337558c09146106825780633dab5269146106ad5780633f4218e0146106d65780634355855a146107135761038c565b80632f54bf6e146105f157806330ca34ee1461062e578063313ce567146106575761038c565b806318160ddd116103235780632b112e49116102fd5780632b112e49146105495780632b14ca56146105745780632d48e8961461059f5780632dbea2e1146105c85761038c565b806318160ddd146104b857806323b872dd146104e3578063273123b7146105205761038c565b80630b3beab41161035f5780630b3beab4146104245780630bdb28781461044f5780630d295980146104785780630d3b571a146104a15761038c565b80630445b6671461039157806306fdde03146103bc578063095ea7b3146103e75761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610db5565b6040516103b39190613844565b60405180910390f35b3480156103c857600080fd5b506103d1610dbb565b6040516103de91906138f8565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906139b8565b610df8565b60405161041b9190613a13565b60405180910390f35b34801561043057600080fd5b50610439610eea565b6040516104469190613a8d565b60405180910390f35b34801561045b57600080fd5b5061047660048036038101906104719190613aa8565b610f10565b005b34801561048457600080fd5b5061049f600480360381019061049a9190613b01565b610f62565b005b3480156104ad57600080fd5b506104b6610fc7565b005b3480156104c457600080fd5b506104cd611056565b6040516104da9190613844565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190613b2e565b611060565b6040516105179190613a13565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190613b81565b611260565b005b34801561055557600080fd5b5061055e611303565b60405161056b9190613844565b60405180910390f35b34801561058057600080fd5b50610589611385565b6040516105969190613844565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c19190613bae565b61138b565b005b3480156105d457600080fd5b506105ef60048036038101906105ea9190613bee565b611466565b005b3480156105fd57600080fd5b5061061860048036038101906106139190613b81565b6114c8565b6040516106259190613a13565b60405180910390f35b34801561063a57600080fd5b5061065560048036038101906106509190613bae565b611521565b005b34801561066357600080fd5b5061066c611607565b6040516106799190613c5d565b60405180910390f35b34801561068e57600080fd5b50610697611610565b6040516106a49190613844565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf9190613c78565b611616565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190613b81565b611683565b60405161070a9190613a13565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190613b81565b6116a3565b6040516107479190613a13565b60405180910390f35b34801561075c57600080fd5b506107656116c3565b6040516107729190613844565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190613b81565b6116c9565b005b3480156107b057600080fd5b506107b9611755565b6040516107c69190613844565b60405180910390f35b3480156107db57600080fd5b506107e461175b565b6040516107f19190613a13565b60405180910390f35b34801561080657600080fd5b50610821600480360381019061081c9190613b81565b61176e565b60405161082e9190613a13565b60405180910390f35b34801561084357600080fd5b5061084c6117a1565b005b34801561085a57600080fd5b5061087560048036038101906108709190613b81565b6117f3565b6040516108829190613844565b60405180910390f35b34801561089757600080fd5b506108a061183c565b6040516108ad9190613844565b60405180910390f35b3480156108c257600080fd5b506108cb611842565b6040516108d89190613844565b60405180910390f35b3480156108ed57600080fd5b5061090860048036038101906109039190613b81565b611848565b6040516109159190613844565b60405180910390f35b34801561092a57600080fd5b5061094560048036038101906109409190613aa8565b6118ed565b005b34801561095357600080fd5b5061095c61193f565b6040516109699190613a13565b60405180910390f35b34801561097e57600080fd5b5061099960048036038101906109949190613aa8565b611952565b005b3480156109a757600080fd5b506109b0611a2a565b6040516109bd9190613cc7565b60405180910390f35b3480156109d257600080fd5b506109db611a50565b005b3480156109e957600080fd5b506109f2611b13565b6040516109ff9190613cc7565b60405180910390f35b348015610a1457600080fd5b50610a2f6004803603810190610a2a9190613b81565b611b3c565b604051610a3c9190613a13565b60405180910390f35b348015610a5157600080fd5b50610a5a611b5c565b604051610a6791906138f8565b60405180910390f35b348015610a7c57600080fd5b50610a976004803603810190610a929190613ce2565b611b99565b005b348015610aa557600080fd5b50610aae611c3c565b604051610abb9190613cc7565b60405180910390f35b348015610ad057600080fd5b50610aeb6004803603810190610ae691906139b8565b611c62565b604051610af89190613a13565b60405180910390f35b348015610b0d57600080fd5b50610b16611c77565b604051610b239190613cc7565b60405180910390f35b348015610b3857600080fd5b50610b536004803603810190610b4e9190613e6a565b611c9d565b005b348015610b6157600080fd5b50610b7c6004803603810190610b779190613ef1565b611d7a565b005b348015610b8a57600080fd5b50610b93611e06565b604051610ba09190613844565b60405180910390f35b348015610bb557600080fd5b50610bbe611e0c565b604051610bcb9190613cc7565b60405180910390f35b348015610be057600080fd5b50610be9611e32565b604051610bf69190613844565b60405180910390f35b348015610c0b57600080fd5b50610c14611e38565b604051610c219190613844565b60405180910390f35b348015610c3657600080fd5b50610c516004803603810190610c4c9190613aa8565b611e3e565b005b348015610c5f57600080fd5b50610c7a6004803603810190610c759190613f1e565b611e90565b604051610c879190613844565b60405180910390f35b348015610c9c57600080fd5b50610cb76004803603810190610cb29190613ef1565b611f17565b005b348015610cc557600080fd5b50610ce06004803603810190610cdb9190613ef1565b611fa3565b005b348015610cee57600080fd5b50610d096004803603810190610d049190613ce2565b612065565b005b348015610d1757600080fd5b50610d206120bb565b604051610d2d9190613f91565b60405180910390f35b348015610d4257600080fd5b50610d4b6120e1565b604051610d589190613844565b60405180910390f35b348015610d6d57600080fd5b50610d886004803603810190610d839190613ce2565b6120e7565b005b348015610d9657600080fd5b50610d9f61218a565b604051610dac9190613a13565b60405180910390f35b601e5481565b60606040518060400160405280600881526020017f434f434b20494e55000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ed89190613844565b60405180910390a36001905092915050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f19336114c8565b610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90613ff8565b60405180910390fd5b80601b8190555050565b610f6b336114c8565b610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190613ff8565b60405180910390fd5b80601960166101000a81548160ff02191690831515021790555050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638d7dbc06336040518263ffffffff1660e01b81526004016110229190613cc7565b600060405180830381600087803b15801561103c57600080fd5b505af1158015611050573d6000803e3d6000fd5b50505050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461124c576111cb826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e79092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61125784848461224b565b90509392505050565b611269336114c8565b6112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90613ff8565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611380611333600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117f3565b611372611361600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117f3565b600254612b5d90919063ffffffff16565b612b5d90919063ffffffff16565b905090565b600f5481565b611394336114c8565b6113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca90613ff8565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b8152600401611430929190614018565b600060405180830381600087803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050505050565b61146f336114c8565b6114ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a590613ff8565b60405180910390fd5b826010819055508160118190555080601281905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61152a336114c8565b611569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156090613ff8565b60405180910390fd5b81600e8190555080600f81905550600a600e5411156115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b49061408d565b60405180910390fd5b600a600f541115611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fa9061408d565b60405180910390fd5b5050565b60006012905090565b601b5481565b61161f336114c8565b61165e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165590613ff8565b60405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601e819055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b60135481565b6116d2336114c8565b611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890613ff8565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b601960159054906101000a900460ff1681565b600061179a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610df8565b9050919050565b6117aa336114c8565b6117e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e090613ff8565b60405180910390fd5b6117f1612ba7565b565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601c5481565b60125481565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b81526004016118a59190613cc7565b602060405180830381865afa1580156118c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e691906140c2565b9050919050565b6118f6336114c8565b611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613ff8565b60405180910390fd5b80601d8190555050565b600760149054906101000a900460ff1681565b61195b336114c8565b61199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190613ff8565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b81526004016119f59190613844565b600060405180830381600087803b158015611a0f57600080fd5b505af1158015611a23573d6000803e3d6000fd5b5050505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a59336114c8565b611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f90613ff8565b60405180910390fd5b60004790506000811115611b1057601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b0e573d6000803e3d6000fd5b505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600481526020017f434f434b00000000000000000000000000000000000000000000000000000000815250905090565b611ba2336114c8565b611be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd890613ff8565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c6f33848461224b565b905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ca6336114c8565b611ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdc90613ff8565b60405180910390fd5b60005b8151811015611d7657600160086000848481518110611d0a57611d096140ef565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d6e9061414d565b915050611ce8565b5050565b611d83336114c8565b611dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db990613ff8565b60405180910390fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b60105481565b611e47336114c8565b611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d90613ff8565b60405180910390fd5b80601c8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f20336114c8565b611f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5690613ff8565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611fac336114c8565b611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe290613ff8565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161205a91906141b6565b60405180910390a150565b61206e336114c8565b6120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a490613ff8565b60405180910390fd5b6120b78282612e29565b5050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b6120f0336114c8565b61212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212690613ff8565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960169054906101000a900460ff1681565b60006121df83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613081565b905092915050565b600083831115829061222f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222691906138f8565b60405180910390fd5b506000838561223e91906141d1565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122f6575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561234b57601960169054906101000a900460ff1661234a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234190614251565b60405180910390fd5b5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123ef5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6123f857600080fd5b601960149054906101000a900460ff161561241f576124188484846130e4565b9050612b56565b601c54821115806124795750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6124b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124af906142bd565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561251e5750600760149054906101000a900460ff165b156125ba57601d5461257883600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132b790919063ffffffff16565b11156125b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b090614329565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156126255750601960149054906101000a900460ff16155b801561263d5750601960159054906101000a900460ff165b801561268a5750601e54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561269857612697612ba7565b5b612721826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e79092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561280a5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6128145782612820565b61281f858585613315565b5b905061287481600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132b790919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129d157601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016129a4929190614349565b600060405180830381600087803b1580156129be57600080fd5b505af19250505080156129cf575060015b505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612aeb57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612abe929190614349565b600060405180830381600087803b158015612ad857600080fd5b505af1925050508015612ae9575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b489190613844565b60405180910390a360019150505b9392505050565b6000612b9f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121e7565b905092915050565b6001601960146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000612c436002612c356064612c27601154876134bd90919063ffffffff16565b61219d90919063ffffffff16565b61219d90919063ffffffff16565b90506000612c5a8284612b5d90919063ffffffff16565b9050612c6581613537565b60004790506000612c946064612c86601054856134bd90919063ffffffff16565b61219d90919063ffffffff16565b90506000612cc06064612cb2601254866134bd90919063ffffffff16565b61219d90919063ffffffff16565b90506000612cff6002612cf16064612ce3601154896134bd90919063ffffffff16565b61219d90919063ffffffff16565b61219d90919063ffffffff16565b90506000841115612d7457601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612d72573d6000803e3d6000fd5b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015612dde57600080fd5b505af193505050508015612df0575060015b506000861115612e0557612e048682613758565b5b505050505050506000601960146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612eb35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612ebc57600080fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612fae57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612f779291906143ad565b600060405180830381600087803b158015612f9157600080fd5b505af1158015612fa5573d6000803e3d6000fd5b5050505061307d565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161304a929190614349565b600060405180830381600087803b15801561306457600080fd5b505af1158015613078573d6000803e3d6000fd5b505050505b5050565b600080831182906130c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130bf91906138f8565b60405180910390fd5b50600083856130d79190614405565b9050809150509392505050565b600061316f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e79092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061320482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132b790919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132a49190613844565b60405180910390a3600190509392505050565b60008082846132c69190614436565b90508381101561330b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613302906144d8565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461337557600e54613379565b600f545b905060006133a3606461339584876134bd90919063ffffffff16565b61219d90919063ffffffff16565b90506133f781600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132b790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134979190613844565b60405180910390a36134b28185612b5d90919063ffffffff16565b925050509392505050565b60008083036134cf5760009050613531565b600082846134dd91906144f8565b90508284826134ec9190614405565b1461352c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613523906145c4565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff81111561355457613553613d27565b5b6040519080825280602002602001820160405280156135825781602001602082028036833780820191505090505b509050308160008151811061359a576135996140ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613641573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061366591906145f9565b81600181518110613679576136786140ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136bd3083610df8565b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016137229594939291906146e4565b600060405180830381600087803b15801561373c57600080fd5b505af1158015613750573d6000803e3d6000fd5b505050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016137e19695949392919061473e565b60606040518083038185885af11580156137ff573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613824919061479f565b5050505050565b6000819050919050565b61383e8161382b565b82525050565b60006020820190506138596000830184613835565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561389957808201518184015260208101905061387e565b838111156138a8576000848401525b50505050565b6000601f19601f8301169050919050565b60006138ca8261385f565b6138d4818561386a565b93506138e481856020860161387b565b6138ed816138ae565b840191505092915050565b6000602082019050818103600083015261391281846138bf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006139598261392e565b9050919050565b6139698161394e565b811461397457600080fd5b50565b60008135905061398681613960565b92915050565b6139958161382b565b81146139a057600080fd5b50565b6000813590506139b28161398c565b92915050565b600080604083850312156139cf576139ce613924565b5b60006139dd85828601613977565b92505060206139ee858286016139a3565b9150509250929050565b60008115159050919050565b613a0d816139f8565b82525050565b6000602082019050613a286000830184613a04565b92915050565b6000819050919050565b6000613a53613a4e613a498461392e565b613a2e565b61392e565b9050919050565b6000613a6582613a38565b9050919050565b6000613a7782613a5a565b9050919050565b613a8781613a6c565b82525050565b6000602082019050613aa26000830184613a7e565b92915050565b600060208284031215613abe57613abd613924565b5b6000613acc848285016139a3565b91505092915050565b613ade816139f8565b8114613ae957600080fd5b50565b600081359050613afb81613ad5565b92915050565b600060208284031215613b1757613b16613924565b5b6000613b2584828501613aec565b91505092915050565b600080600060608486031215613b4757613b46613924565b5b6000613b5586828701613977565b9350506020613b6686828701613977565b9250506040613b77868287016139a3565b9150509250925092565b600060208284031215613b9757613b96613924565b5b6000613ba584828501613977565b91505092915050565b60008060408385031215613bc557613bc4613924565b5b6000613bd3858286016139a3565b9250506020613be4858286016139a3565b9150509250929050565b600080600060608486031215613c0757613c06613924565b5b6000613c15868287016139a3565b9350506020613c26868287016139a3565b9250506040613c37868287016139a3565b9150509250925092565b600060ff82169050919050565b613c5781613c41565b82525050565b6000602082019050613c726000830184613c4e565b92915050565b60008060408385031215613c8f57613c8e613924565b5b6000613c9d85828601613aec565b9250506020613cae858286016139a3565b9150509250929050565b613cc18161394e565b82525050565b6000602082019050613cdc6000830184613cb8565b92915050565b60008060408385031215613cf957613cf8613924565b5b6000613d0785828601613977565b9250506020613d1885828601613aec565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613d5f826138ae565b810181811067ffffffffffffffff82111715613d7e57613d7d613d27565b5b80604052505050565b6000613d9161391a565b9050613d9d8282613d56565b919050565b600067ffffffffffffffff821115613dbd57613dbc613d27565b5b602082029050602081019050919050565b600080fd5b6000613de6613de184613da2565b613d87565b90508083825260208201905060208402830185811115613e0957613e08613dce565b5b835b81811015613e325780613e1e8882613977565b845260208401935050602081019050613e0b565b5050509392505050565b600082601f830112613e5157613e50613d22565b5b8135613e61848260208601613dd3565b91505092915050565b600060208284031215613e8057613e7f613924565b5b600082013567ffffffffffffffff811115613e9e57613e9d613929565b5b613eaa84828501613e3c565b91505092915050565b6000613ebe8261392e565b9050919050565b613ece81613eb3565b8114613ed957600080fd5b50565b600081359050613eeb81613ec5565b92915050565b600060208284031215613f0757613f06613924565b5b6000613f1584828501613edc565b91505092915050565b60008060408385031215613f3557613f34613924565b5b6000613f4385828601613977565b9250506020613f5485828601613977565b9150509250929050565b6000613f6982613a38565b9050919050565b6000613f7b82613f5e565b9050919050565b613f8b81613f70565b82525050565b6000602082019050613fa66000830184613f82565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613fe260068361386a565b9150613fed82613fac565b602082019050919050565b6000602082019050818103600083015261401181613fd5565b9050919050565b600060408201905061402d6000830185613835565b61403a6020830184613835565b9392505050565b7f746f6f2068696768000000000000000000000000000000000000000000000000600082015250565b600061407760088361386a565b915061408282614041565b602082019050919050565b600060208201905081810360008301526140a68161406a565b9050919050565b6000815190506140bc8161398c565b92915050565b6000602082840312156140d8576140d7613924565b5b60006140e6848285016140ad565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006141588261382b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361418a5761418961411e565b5b600182019050919050565b60006141a082613f5e565b9050919050565b6141b081614195565b82525050565b60006020820190506141cb60008301846141a7565b92915050565b60006141dc8261382b565b91506141e78361382b565b9250828210156141fa576141f961411e565b5b828203905092915050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b600061423b60128361386a565b915061424682614205565b602082019050919050565b6000602082019050818103600083015261426a8161422e565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b60006142a760028361386a565b91506142b282614271565b602082019050919050565b600060208201905081810360008301526142d68161429a565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b600061431360068361386a565b915061431e826142dd565b602082019050919050565b6000602082019050818103600083015261434281614306565b9050919050565b600060408201905061435e6000830185613cb8565b61436b6020830184613835565b9392505050565b6000819050919050565b600061439761439261438d84614372565b613a2e565b61382b565b9050919050565b6143a78161437c565b82525050565b60006040820190506143c26000830185613cb8565b6143cf602083018461439e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144108261382b565b915061441b8361382b565b92508261442b5761442a6143d6565b5b828204905092915050565b60006144418261382b565b915061444c8361382b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156144815761448061411e565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006144c2601b8361386a565b91506144cd8261448c565b602082019050919050565b600060208201905081810360008301526144f1816144b5565b9050919050565b60006145038261382b565b915061450e8361382b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145475761454661411e565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006145ae60218361386a565b91506145b982614552565b604082019050919050565b600060208201905081810360008301526145dd816145a1565b9050919050565b6000815190506145f381613960565b92915050565b60006020828403121561460f5761460e613924565b5b600061461d848285016145e4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61465b8161394e565b82525050565b600061466d8383614652565b60208301905092915050565b6000602082019050919050565b600061469182614626565b61469b8185614631565b93506146a683614642565b8060005b838110156146d75781516146be8882614661565b97506146c983614679565b9250506001810190506146aa565b5085935050505092915050565b600060a0820190506146f96000830188613835565b614706602083018761439e565b81810360408301526147188186614686565b90506147276060830185613cb8565b6147346080830184613835565b9695505050505050565b600060c0820190506147536000830189613cb8565b6147606020830188613835565b61476d604083018761439e565b61477a606083018661439e565b6147876080830185613cb8565b61479460a0830184613835565b979650505050505050565b6000806000606084860312156147b8576147b7613924565b5b60006147c6868287016140ad565b93505060206147d7868287016140ad565b92505060406147e8868287016140ad565b915050925092509256fea264697066735822122024826341503edf3101e26bc9376710338d31fd4ba1bb55a4cced5f7d7e8d51f864736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007efa686efd1d689e7c6eee6043569d9f5f5c570f

-----Decoded View---------------
Arg [0] : _owner (address): 0x7Efa686efd1d689E7C6EEe6043569D9f5f5C570F

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007efa686efd1d689e7c6eee6043569d9f5f5c570f


Deployed Bytecode Sourcemap

10510:12432:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12477:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17037:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17463:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12163:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16486:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13982:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22855:84;;;;;;;;;;;;;:::i;:::-;;16767:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17977:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15895:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16617:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11545:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15685:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14345:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2711:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14088:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16861:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12208:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15478:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11277:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11383:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11698:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15230:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11513:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12073:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17687:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22236:74;;;;;;;;;;;;;:::i;:::-;;17207:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12372:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11658:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22689:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14689:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11196:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22564:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11860:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22318:238;;;;;;;;;;;;;:::i;:::-;;17123:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11328:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16947:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14805:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11772:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17817:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10585:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13804:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15344:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11441:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11798:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11620:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11580:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14586:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17318:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15079:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2822:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16346:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11741:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12423:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14935:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12120:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12477:52;;;;:::o;17037:80::-;17085:13;17109:5;;;;;;;;;;;;;;;;;17102:12;;17037:80;:::o;17463:216::-;17538:4;17590:6;17555:11;:23;17567:10;17555:23;;;;;;;;;;;;;;;:32;17579:7;17555:32;;;;;;;;;;;;;;;:41;;;;17633:7;17612:37;;17621:10;17612:37;;;17642:6;17612:37;;;;;;:::i;:::-;;;;;;;;17667:4;17660:11;;17463:216;;;;:::o;12163:38::-;;;;;;;;;;;;;:::o;16486:112::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16584:6:::1;16563:18;:27;;;;16486:112:::0;:::o;13982:98::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14063:9:::1;14049:11;;:23;;;;;;;;;;;;;;;;;;13982:98:::0;:::o;22855:84::-;22895:15;;;;;;;;;;;:24;;;22920:10;22895:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22855:84::o;16767:88::-;16822:7;16840:12;;16833:19;;16767:88;:::o;17977:366::-;18077:4;18132:17;18097:11;:19;18109:6;18097:19;;;;;;;;;;;;;;;:31;18117:10;18097:31;;;;;;;;;;;;;;;;:52;18094:186;;18199:69;18235:6;18199:69;;;;;;;;;;;;;;;;;:11;:19;18211:6;18199:19;;;;;;;;;;;;;;;:31;18219:10;18199:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;18165:11;:19;18177:6;18165:19;;;;;;;;;;;;;;;:31;18185:10;18165:31;;;;;;;;;;;;;;;:103;;;;18094:186;18299:36;18309:6;18317:9;18328:6;18299:9;:36::i;:::-;18292:43;;17977:366;;;;;:::o;15895:90::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15972:5:::1;15957:4;:12;15962:6;15957:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15895:90:::0;:::o;16617:142::-;16670:7;16697:54;16735:15;16745:4;;;;;;;;;;;16735:9;:15::i;:::-;16697:33;16714:15;16724:4;;;;;;;;;;;16714:9;:15::i;:::-;16697:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;16690:61;;16617:142;:::o;11545:26::-;;;;:::o;15685:202::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15798:15:::1;;;;;;;;;;;:39;;;15838:12;15852:18;15798:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15685:202:::0;;:::o;14345:233::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14485:12:::1;14469:13;:28;;;;14522:8;14508:11;:22;;;;14555:15;14541:11;:29;;;;14345:233:::0;;;:::o;2711:103::-;2766:4;2801:5;;;;;;;;;;;2790:16;;:7;:16;;;2783:23;;2711:103;;;:::o;14088:244::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14193:9:::1;14184:6;:18;;;;14223:10;14213:7;:20;;;;14264:2;14254:6;;:12;;14246:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;14309:2;14298:7;;:13;;14290:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;14088:244:::0;;:::o;16861:80::-;16913:5;10802:2;16922:16;;16861:80;:::o;12208:37::-;;;;:::o;15478:199::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15612:14:::1;15587:21;;:39;;;;;;;;;;;;;;;;;;15653:16;15637:13;:32;;;;15478:199:::0;;:::o;11277:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;11383:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;11698:34::-;;;;:::o;15230:102::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15313:11:::1;15302:8;;:22;;;;;;;;;;;;;;;;;;15230:102:::0;:::o;11513:25::-;;;;:::o;12073:40::-;;;;;;;;;;;;;:::o;17687:122::-;17742:4;17766:35;17774:7;17783:17;17766:7;:35::i;:::-;17759:42;;17687:122;;;:::o;22236:74::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22292:10:::1;:8;:10::i;:::-;22236:74::o:0;17207:105::-;17273:7;17291:9;:18;17301:7;17291:18;;;;;;;;;;;;;;;;17284:25;;17207:105;;;:::o;12372:44::-;;;;:::o;11658:31::-;;;;:::o;22689:158::-;22766:7;22793:15;;;;;;;;;;;:33;;;22827:11;22793:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22786:53;;22689:158;;;:::o;14689:104::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14777:8:::1;14764:9;:21;;;;14689:104:::0;:::o;11196:26::-;;;;;;;;;;;;;:::o;22564:117::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22639:15:::1;;;;;;;;;;;:23;;;22663:9;22639:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22564:117:::0;:::o;11860:83::-;;;;;;;;;;;;;:::o;22318:238::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22373:26:::1;22402:21;22373:50;;22458:1;22437:18;:22;22434:115;;;22493:14;;;;;;;;;;;22485:32;;:52;22518:18;22485:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22434:115;22362:194;22318:238::o:0;17123:78::-;17175:7;17193:5;;;;;;;;;;;17186:12;;17123:78;:::o;11328:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;16947:84::-;16997:13;17021:7;;;;;;;;;;;;;;;;;17014:14;;16947:84;:::o;14805:122::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14913:6:::1;14891:11;:19;14903:6;14891:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14805:122:::0;;:::o;11772:19::-;;;;;;;;;;;;;:::o;17817:152::-;17897:4;17921:40;17931:10;17943:9;17954:6;17921:9;:40::i;:::-;17914:47;;17817:152;;;;:::o;10585:64::-;;;;;;;;;;;;;:::o;13804:166::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13880:6:::1;13875:88;13896:5;:12;13892:1;:16;13875:88;;;13947:4;13930;:14;13935:5;13941:1;13935:8;;;;;;;;:::i;:::-;;;;;;;;13930:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13910:3;;;;;:::i;:::-;;;;13875:88;;;;13804:166:::0;:::o;15344:121::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15443:14:::1;15430:10;;:27;;;;;;;;;;;;;;;;;;15344:121:::0;:::o;11441:25::-;;;;:::o;11798:22::-;;;;;;;;;;;;;:::o;11620:31::-;;;;:::o;11580:33::-;;;;:::o;14586:95::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14665:8:::1;14657:5;:16;;;;14586:95:::0;:::o;17318:133::-;17402:7;17420:11;:19;17432:6;17420:19;;;;;;;;;;;;;;;:28;17440:7;17420:28;;;;;;;;;;;;;;;;17413:35;;17318:133;;;;:::o;15079:143::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15196:17:::1;15171:14;;:43;;;;;;;;;;;;;;;;;;15079:143:::0;:::o;2822:136::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2906:3:::1;2898:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;2925:25;2946:3;2925:25;;;;;;:::i;:::-;;;;;;;;2822:136:::0;:::o;16346:132::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16434:36:::1;16455:6;16463;16434:20;:36::i;:::-;16346:132:::0;;:::o;11741:24::-;;;;;;;;;;;;;:::o;12423:47::-;;;;:::o;14935:136::-;2662:19;2670:10;2662:7;:19::i;:::-;2654:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15057:6:::1;15031:15;:23;15047:6;15031:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;14935:136:::0;;:::o;12120:30::-;;;;;;;;;;;;;:::o;1048:132::-;1106:7;1133:39;1137:1;1140;1133:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1126:46;;1048:132;;;;:::o;594:192::-;680:7;713:1;708;:6;;716:12;700:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;740:9;756:1;752;:5;;;;:::i;:::-;740:17;;777:1;770:8;;;594:192;;;;;:::o;18351:1381::-;18439:4;18469:5;;;;;;;;;;;18460:14;;:6;:14;;;;:35;;;;;18490:5;;;;;;;;;;18478:17;;:9;:17;;;;18460:35;18456:83;;;18505:11;;;;;;;;;;;18497:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;18456:83;18559:4;:12;18564:6;18559:12;;;;;;;;;;;;;;;;;;;;;;;;;18558:13;:33;;;;;18576:4;:15;18581:9;18576:15;;;;;;;;;;;;;;;;;;;;;;;;;18575:16;18558:33;18550:42;;;;;;18608:16;;;;;;;;;;;18605:73;;;18634:41;18649:6;18657:9;18668:6;18634:14;:41::i;:::-;18627:48;;;;18605:73;18708:5;;18698:6;:15;;:42;;;;18717:15;:23;18733:6;18717:23;;;;;;;;;;;;;;;;;;;;;;;;;18698:42;18690:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18764:15;:26;18780:9;18764:26;;;;;;;;;;;;;;;;;;;;;;;;;18763:27;:38;;;;;18794:7;;;;;;;;;;;18763:38;18760:143;;;18871:9;;18835:32;18860:6;18835:9;:20;18845:9;18835:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:45;;18827:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18760:143;18932:4;;;;;;;;;;;18918:18;;:10;:18;;;;:39;;;;;18941:16;;;;;;;;;;;18940:17;18918:39;:64;;;;;18961:21;;;;;;;;;;;18918:64;:109;;;;;19014:13;;18986:9;:24;19004:4;18986:24;;;;;;;;;;;;;;;;:41;;18918:109;18915:128;;;19030:10;:8;:10::i;:::-;18915:128;19075:53;19097:6;19075:53;;;;;;;;;;;;;;;;;:9;:17;19085:6;19075:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19055:9;:17;19065:6;19055:17;;;;;;;;;;;;;;;:73;;;;19149:19;19172:11;:19;19184:6;19172:19;;;;;;;;;;;;;;;;;;;;;;;;;19171:20;:47;;;;;19196:11;:22;19208:9;19196:22;;;;;;;;;;;;;;;;;;;;;;;;;19195:23;19171:47;:93;;19258:6;19171:93;;;19221:34;19229:6;19237:9;19248:6;19221:7;:34::i;:::-;19171:93;19149:115;;19298:37;19323:11;19298:9;:20;19308:9;19298:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;19275:9;:20;19285:9;19275:20;;;;;;;;;;;;;;;:60;;;;19381:16;:24;19398:6;19381:24;;;;;;;;;;;;;;;;;;;;;;;;;19377:123;;19426:15;;;;;;;;;;;:24;;;19451:6;19459:9;:17;19469:6;19459:17;;;;;;;;;;;;;;;;19426:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19422:67;19377:123;19516:16;:27;19533:9;19516:27;;;;;;;;;;;;;;;;;;;;;;;;;19512:133;;19564:15;;;;;;;;;;;:24;;;19589:9;19600;:20;19610:9;19600:20;;;;;;;;;;;;;;;;19564:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19560:73;19512:133;19679:9;19662:40;;19671:6;19662:40;;;19690:11;19662:40;;;;;;:::i;:::-;;;;;;;;19720:4;19713:11;;;18351:1381;;;;;;:::o;452:136::-;510:7;537:43;541:1;544;537:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;530:50;;452:136;;;;:::o;21282:946::-;12305:4;12286:16;;:23;;;;;;;;;;;;;;;;;;21340:20:::1;21363:9;:24;21381:4;21363:24;;;;;;;;;;;;;;;;21340:47;;21399:26;21428:45;21471:1;21428:38;21462:3;21428:29;21445:11;;21428:12;:16;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;:42;;:45;;;;:::i;:::-;21399:74;;21489:20;21512:36;21529:18;21512:12;:16;;:36;;;;:::i;:::-;21489:59;;21561:30;21578:12;21561:16;:30::i;:::-;21604:23;21630:21;21604:47;;21662:18;21683:43;21722:3;21683:34;21703:13;;21683:15;:19;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;21662:64;;21737:28;21768:41;21805:3;21768:32;21788:11;;21768:15;:19;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;21737:72;;21820:23;21846:48;21892:1;21846:41;21883:3;21846:32;21866:11;;21846:15;:19;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;:45;;:48;;;;:::i;:::-;21820:74;;21935:1;21917:15;:19;21913:105;;;21960:14;;;;;;;;;;;21952:32;;:54;21985:20;21952:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21913:105;22042:15;;;;;;;;;;;:23;;;22073:10;22042:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22038:60:::0;22143:1:::1;22122:18;:22;22118:103;;;22160:49;22173:18;22193:15;22160:12;:49::i;:::-;22118:103;21323:905;;;;;;;12351:5:::0;12332:16;;:24;;;;;;;;;;;;;;;;;;21282:946::o;15993:345::-;16098:4;16080:23;;:6;:23;;;;:41;;;;;16117:4;;;;;;;;;;;16107:14;;:6;:14;;;;16080:41;16072:50;;;;;;16160:6;16133:16;:24;16150:6;16133:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;16180:6;16177:154;;;16202:15;;;;;;;;;;;:24;;;16227:6;16235:1;16202:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16177:154;;;16268:15;;;;;;;;;;;:24;;;16293:6;16301:9;:17;16311:6;16301:17;;;;;;;;;;;;;;;;16268:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16177:154;15993:345;;:::o;1186:::-;1272:7;1371:1;1367;:5;1374:12;1359:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1398:9;1414:1;1410;:5;;;;:::i;:::-;1398:17;;1522:1;1515:8;;;1186:345;;;;;:::o;19744:330::-;19837:4;19874:53;19896:6;19874:53;;;;;;;;;;;;;;;;;:9;:17;19884:6;19874:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19854:9;:17;19864:6;19854:17;;;;;;;;;;;;;;;:73;;;;19961:32;19986:6;19961:9;:20;19971:9;19961:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19938:9;:20;19948:9;19938:20;;;;;;;;;;;;;;;:55;;;;20026:9;20009:35;;20018:6;20009:35;;;20037:6;20009:35;;;;;;:::i;:::-;;;;;;;;20062:4;20055:11;;19744:330;;;;;:::o;265:181::-;323:7;343:9;359:1;355;:5;;;;:::i;:::-;343:17;;384:1;379;:6;;371:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;437:1;430:8;;;265:181;;;;:::o;20088:427::-;20174:7;20204:21;20236:9;20228:17;;:4;;;;;;;;;;;:17;;;:36;;20258:6;;20228:36;;;20248:7;;20228:36;20204:60;;20275:17;20295:34;20325:3;20295:25;20306:13;20295:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;20275:54;;20369:39;20398:9;20369;:24;20387:4;20369:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;20342:9;:24;20360:4;20342:24;;;;;;;;;;;;;;;:66;;;;20449:4;20424:42;;20433:6;20424:42;;;20456:9;20424:42;;;;;;:::i;:::-;;;;;;;;20486:21;20497:9;20486:6;:10;;:21;;;;:::i;:::-;20479:28;;;;20088:427;;;;;:::o;792:250::-;850:7;879:1;874;:6;870:47;;904:1;897:8;;;;870:47;929:9;945:1;941;:5;;;;:::i;:::-;929:17;;974:1;969;965;:5;;;;:::i;:::-;:10;957:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1033:1;1026:8;;;792:250;;;;;:::o;20527:460::-;20595:21;20633:1;20619:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20595:40;;20664:4;20646;20651:1;20646:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20690:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20680:4;20685:1;20680:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20716:35;20732:4;20739:11;20716:7;:35::i;:::-;;20764:6;;;;;;;;;;;:57;;;20836:11;20862:1;20906:4;20933;20953:15;20764:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20582:405;20527:460;:::o;20995:279::-;21076:6;;;;;;;;;;;:22;;;21106:9;21139:4;21159:11;21185:1;21201;21217:8;;;;;;;;;;;21240:15;21076:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20995:279;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:60::-;3874:3;3895:5;3888:12;;3846:60;;;:::o;3912:142::-;3962:9;3995:53;4013:34;4022:24;4040:5;4022:24;:::i;:::-;4013:34;:::i;:::-;3995:53;:::i;:::-;3982:66;;3912:142;;;:::o;4060:134::-;4118:9;4151:37;4182:5;4151:37;:::i;:::-;4138:50;;4060:134;;;:::o;4200:166::-;4282:9;4315:45;4354:5;4315:45;:::i;:::-;4302:58;;4200:166;;;:::o;4372:195::-;4491:69;4554:5;4491:69;:::i;:::-;4486:3;4479:82;4372:195;;:::o;4573:286::-;4698:4;4736:2;4725:9;4721:18;4713:26;;4749:103;4849:1;4838:9;4834:17;4825:6;4749:103;:::i;:::-;4573:286;;;;:::o;4865:329::-;4924:6;4973:2;4961:9;4952:7;4948:23;4944:32;4941:119;;;4979:79;;:::i;:::-;4941:119;5099:1;5124:53;5169:7;5160:6;5149:9;5145:22;5124:53;:::i;:::-;5114:63;;5070:117;4865:329;;;;:::o;5200:116::-;5270:21;5285:5;5270:21;:::i;:::-;5263:5;5260:32;5250:60;;5306:1;5303;5296:12;5250:60;5200:116;:::o;5322:133::-;5365:5;5403:6;5390:20;5381:29;;5419:30;5443:5;5419:30;:::i;:::-;5322:133;;;;:::o;5461:323::-;5517:6;5566:2;5554:9;5545:7;5541:23;5537:32;5534:119;;;5572:79;;:::i;:::-;5534:119;5692:1;5717:50;5759:7;5750:6;5739:9;5735:22;5717:50;:::i;:::-;5707:60;;5663:114;5461:323;;;;:::o;5790:619::-;5867:6;5875;5883;5932:2;5920:9;5911:7;5907:23;5903:32;5900:119;;;5938:79;;:::i;:::-;5900:119;6058:1;6083:53;6128:7;6119:6;6108:9;6104:22;6083:53;:::i;:::-;6073:63;;6029:117;6185:2;6211:53;6256:7;6247:6;6236:9;6232:22;6211:53;:::i;:::-;6201:63;;6156:118;6313:2;6339:53;6384:7;6375:6;6364:9;6360:22;6339:53;:::i;:::-;6329:63;;6284:118;5790:619;;;;;:::o;6415:329::-;6474:6;6523:2;6511:9;6502:7;6498:23;6494:32;6491:119;;;6529:79;;:::i;:::-;6491:119;6649:1;6674:53;6719:7;6710:6;6699:9;6695:22;6674:53;:::i;:::-;6664:63;;6620:117;6415:329;;;;:::o;6750:474::-;6818:6;6826;6875:2;6863:9;6854:7;6850:23;6846:32;6843:119;;;6881:79;;:::i;:::-;6843:119;7001:1;7026:53;7071:7;7062:6;7051:9;7047:22;7026:53;:::i;:::-;7016:63;;6972:117;7128:2;7154:53;7199:7;7190:6;7179:9;7175:22;7154:53;:::i;:::-;7144:63;;7099:118;6750:474;;;;;:::o;7230:619::-;7307:6;7315;7323;7372:2;7360:9;7351:7;7347:23;7343:32;7340:119;;;7378:79;;:::i;:::-;7340:119;7498:1;7523:53;7568:7;7559:6;7548:9;7544:22;7523:53;:::i;:::-;7513:63;;7469:117;7625:2;7651:53;7696:7;7687:6;7676:9;7672:22;7651:53;:::i;:::-;7641:63;;7596:118;7753:2;7779:53;7824:7;7815:6;7804:9;7800:22;7779:53;:::i;:::-;7769:63;;7724:118;7230:619;;;;;:::o;7855:86::-;7890:7;7930:4;7923:5;7919:16;7908:27;;7855:86;;;:::o;7947:112::-;8030:22;8046:5;8030:22;:::i;:::-;8025:3;8018:35;7947:112;;:::o;8065:214::-;8154:4;8192:2;8181:9;8177:18;8169:26;;8205:67;8269:1;8258:9;8254:17;8245:6;8205:67;:::i;:::-;8065:214;;;;:::o;8285:468::-;8350:6;8358;8407:2;8395:9;8386:7;8382:23;8378:32;8375:119;;;8413:79;;:::i;:::-;8375:119;8533:1;8558:50;8600:7;8591:6;8580:9;8576:22;8558:50;:::i;:::-;8548:60;;8504:114;8657:2;8683:53;8728:7;8719:6;8708:9;8704:22;8683:53;:::i;:::-;8673:63;;8628:118;8285:468;;;;;:::o;8759:118::-;8846:24;8864:5;8846:24;:::i;:::-;8841:3;8834:37;8759:118;;:::o;8883:222::-;8976:4;9014:2;9003:9;8999:18;8991:26;;9027:71;9095:1;9084:9;9080:17;9071:6;9027:71;:::i;:::-;8883:222;;;;:::o;9111:468::-;9176:6;9184;9233:2;9221:9;9212:7;9208:23;9204:32;9201:119;;;9239:79;;:::i;:::-;9201:119;9359:1;9384:53;9429:7;9420:6;9409:9;9405:22;9384:53;:::i;:::-;9374:63;;9330:117;9486:2;9512:50;9554:7;9545:6;9534:9;9530:22;9512:50;:::i;:::-;9502:60;;9457:115;9111:468;;;;;:::o;9585:117::-;9694:1;9691;9684:12;9708:180;9756:77;9753:1;9746:88;9853:4;9850:1;9843:15;9877:4;9874:1;9867:15;9894:281;9977:27;9999:4;9977:27;:::i;:::-;9969:6;9965:40;10107:6;10095:10;10092:22;10071:18;10059:10;10056:34;10053:62;10050:88;;;10118:18;;:::i;:::-;10050:88;10158:10;10154:2;10147:22;9937:238;9894:281;;:::o;10181:129::-;10215:6;10242:20;;:::i;:::-;10232:30;;10271:33;10299:4;10291:6;10271:33;:::i;:::-;10181:129;;;:::o;10316:311::-;10393:4;10483:18;10475:6;10472:30;10469:56;;;10505:18;;:::i;:::-;10469:56;10555:4;10547:6;10543:17;10535:25;;10615:4;10609;10605:15;10597:23;;10316:311;;;:::o;10633:117::-;10742:1;10739;10732:12;10773:710;10869:5;10894:81;10910:64;10967:6;10910:64;:::i;:::-;10894:81;:::i;:::-;10885:90;;10995:5;11024:6;11017:5;11010:21;11058:4;11051:5;11047:16;11040:23;;11111:4;11103:6;11099:17;11091:6;11087:30;11140:3;11132:6;11129:15;11126:122;;;11159:79;;:::i;:::-;11126:122;11274:6;11257:220;11291:6;11286:3;11283:15;11257:220;;;11366:3;11395:37;11428:3;11416:10;11395:37;:::i;:::-;11390:3;11383:50;11462:4;11457:3;11453:14;11446:21;;11333:144;11317:4;11312:3;11308:14;11301:21;;11257:220;;;11261:21;10875:608;;10773:710;;;;;:::o;11506:370::-;11577:5;11626:3;11619:4;11611:6;11607:17;11603:27;11593:122;;11634:79;;:::i;:::-;11593:122;11751:6;11738:20;11776:94;11866:3;11858:6;11851:4;11843:6;11839:17;11776:94;:::i;:::-;11767:103;;11583:293;11506:370;;;;:::o;11882:539::-;11966:6;12015:2;12003:9;11994:7;11990:23;11986:32;11983:119;;;12021:79;;:::i;:::-;11983:119;12169:1;12158:9;12154:17;12141:31;12199:18;12191:6;12188:30;12185:117;;;12221:79;;:::i;:::-;12185:117;12326:78;12396:7;12387:6;12376:9;12372:22;12326:78;:::i;:::-;12316:88;;12112:302;11882:539;;;;:::o;12427:104::-;12472:7;12501:24;12519:5;12501:24;:::i;:::-;12490:35;;12427:104;;;:::o;12537:138::-;12618:32;12644:5;12618:32;:::i;:::-;12611:5;12608:43;12598:71;;12665:1;12662;12655:12;12598:71;12537:138;:::o;12681:155::-;12735:5;12773:6;12760:20;12751:29;;12789:41;12824:5;12789:41;:::i;:::-;12681:155;;;;:::o;12842:345::-;12909:6;12958:2;12946:9;12937:7;12933:23;12929:32;12926:119;;;12964:79;;:::i;:::-;12926:119;13084:1;13109:61;13162:7;13153:6;13142:9;13138:22;13109:61;:::i;:::-;13099:71;;13055:125;12842:345;;;;:::o;13193:474::-;13261:6;13269;13318:2;13306:9;13297:7;13293:23;13289:32;13286:119;;;13324:79;;:::i;:::-;13286:119;13444:1;13469:53;13514:7;13505:6;13494:9;13490:22;13469:53;:::i;:::-;13459:63;;13415:117;13571:2;13597:53;13642:7;13633:6;13622:9;13618:22;13597:53;:::i;:::-;13587:63;;13542:118;13193:474;;;;;:::o;13673:126::-;13723:9;13756:37;13787:5;13756:37;:::i;:::-;13743:50;;13673:126;;;:::o;13805:144::-;13873:9;13906:37;13937:5;13906:37;:::i;:::-;13893:50;;13805:144;;;:::o;13955:167::-;14060:55;14109:5;14060:55;:::i;:::-;14055:3;14048:68;13955:167;;:::o;14128:258::-;14239:4;14277:2;14266:9;14262:18;14254:26;;14290:89;14376:1;14365:9;14361:17;14352:6;14290:89;:::i;:::-;14128:258;;;;:::o;14392:156::-;14532:8;14528:1;14520:6;14516:14;14509:32;14392:156;:::o;14554:365::-;14696:3;14717:66;14781:1;14776:3;14717:66;:::i;:::-;14710:73;;14792:93;14881:3;14792:93;:::i;:::-;14910:2;14905:3;14901:12;14894:19;;14554:365;;;:::o;14925:419::-;15091:4;15129:2;15118:9;15114:18;15106:26;;15178:9;15172:4;15168:20;15164:1;15153:9;15149:17;15142:47;15206:131;15332:4;15206:131;:::i;:::-;15198:139;;14925:419;;;:::o;15350:332::-;15471:4;15509:2;15498:9;15494:18;15486:26;;15522:71;15590:1;15579:9;15575:17;15566:6;15522:71;:::i;:::-;15603:72;15671:2;15660:9;15656:18;15647:6;15603:72;:::i;:::-;15350:332;;;;;:::o;15688:158::-;15828:10;15824:1;15816:6;15812:14;15805:34;15688:158;:::o;15852:365::-;15994:3;16015:66;16079:1;16074:3;16015:66;:::i;:::-;16008:73;;16090:93;16179:3;16090:93;:::i;:::-;16208:2;16203:3;16199:12;16192:19;;15852:365;;;:::o;16223:419::-;16389:4;16427:2;16416:9;16412:18;16404:26;;16476:9;16470:4;16466:20;16462:1;16451:9;16447:17;16440:47;16504:131;16630:4;16504:131;:::i;:::-;16496:139;;16223:419;;;:::o;16648:143::-;16705:5;16736:6;16730:13;16721:22;;16752:33;16779:5;16752:33;:::i;:::-;16648:143;;;;:::o;16797:351::-;16867:6;16916:2;16904:9;16895:7;16891:23;16887:32;16884:119;;;16922:79;;:::i;:::-;16884:119;17042:1;17067:64;17123:7;17114:6;17103:9;17099:22;17067:64;:::i;:::-;17057:74;;17013:128;16797:351;;;;:::o;17154:180::-;17202:77;17199:1;17192:88;17299:4;17296:1;17289:15;17323:4;17320:1;17313:15;17340:180;17388:77;17385:1;17378:88;17485:4;17482:1;17475:15;17509:4;17506:1;17499:15;17526:233;17565:3;17588:24;17606:5;17588:24;:::i;:::-;17579:33;;17634:66;17627:5;17624:77;17621:103;;17704:18;;:::i;:::-;17621:103;17751:1;17744:5;17740:13;17733:20;;17526:233;;;:::o;17765:134::-;17823:9;17856:37;17887:5;17856:37;:::i;:::-;17843:50;;17765:134;;;:::o;17905:147::-;18000:45;18039:5;18000:45;:::i;:::-;17995:3;17988:58;17905:147;;:::o;18058:238::-;18159:4;18197:2;18186:9;18182:18;18174:26;;18210:79;18286:1;18275:9;18271:17;18262:6;18210:79;:::i;:::-;18058:238;;;;:::o;18302:191::-;18342:4;18362:20;18380:1;18362:20;:::i;:::-;18357:25;;18396:20;18414:1;18396:20;:::i;:::-;18391:25;;18435:1;18432;18429:8;18426:34;;;18440:18;;:::i;:::-;18426:34;18485:1;18482;18478:9;18470:17;;18302:191;;;;:::o;18499:168::-;18639:20;18635:1;18627:6;18623:14;18616:44;18499:168;:::o;18673:366::-;18815:3;18836:67;18900:2;18895:3;18836:67;:::i;:::-;18829:74;;18912:93;19001:3;18912:93;:::i;:::-;19030:2;19025:3;19021:12;19014:19;;18673:366;;;:::o;19045:419::-;19211:4;19249:2;19238:9;19234:18;19226:26;;19298:9;19292:4;19288:20;19284:1;19273:9;19269:17;19262:47;19326:131;19452:4;19326:131;:::i;:::-;19318:139;;19045:419;;;:::o;19470:152::-;19610:4;19606:1;19598:6;19594:14;19587:28;19470:152;:::o;19628:365::-;19770:3;19791:66;19855:1;19850:3;19791:66;:::i;:::-;19784:73;;19866:93;19955:3;19866:93;:::i;:::-;19984:2;19979:3;19975:12;19968:19;;19628:365;;;:::o;19999:419::-;20165:4;20203:2;20192:9;20188:18;20180:26;;20252:9;20246:4;20242:20;20238:1;20227:9;20223:17;20216:47;20280:131;20406:4;20280:131;:::i;:::-;20272:139;;19999:419;;;:::o;20424:156::-;20564:8;20560:1;20552:6;20548:14;20541:32;20424:156;:::o;20586:365::-;20728:3;20749:66;20813:1;20808:3;20749:66;:::i;:::-;20742:73;;20824:93;20913:3;20824:93;:::i;:::-;20942:2;20937:3;20933:12;20926:19;;20586:365;;;:::o;20957:419::-;21123:4;21161:2;21150:9;21146:18;21138:26;;21210:9;21204:4;21200:20;21196:1;21185:9;21181:17;21174:47;21238:131;21364:4;21238:131;:::i;:::-;21230:139;;20957:419;;;:::o;21382:332::-;21503:4;21541:2;21530:9;21526:18;21518:26;;21554:71;21622:1;21611:9;21607:17;21598:6;21554:71;:::i;:::-;21635:72;21703:2;21692:9;21688:18;21679:6;21635:72;:::i;:::-;21382:332;;;;;:::o;21720:85::-;21765:7;21794:5;21783:16;;21720:85;;;:::o;21811:158::-;21869:9;21902:61;21920:42;21929:32;21955:5;21929:32;:::i;:::-;21920:42;:::i;:::-;21902:61;:::i;:::-;21889:74;;21811:158;;;:::o;21975:147::-;22070:45;22109:5;22070:45;:::i;:::-;22065:3;22058:58;21975:147;;:::o;22128:348::-;22257:4;22295:2;22284:9;22280:18;22272:26;;22308:71;22376:1;22365:9;22361:17;22352:6;22308:71;:::i;:::-;22389:80;22465:2;22454:9;22450:18;22441:6;22389:80;:::i;:::-;22128:348;;;;;:::o;22482:180::-;22530:77;22527:1;22520:88;22627:4;22624:1;22617:15;22651:4;22648:1;22641:15;22668:185;22708:1;22725:20;22743:1;22725:20;:::i;:::-;22720:25;;22759:20;22777:1;22759:20;:::i;:::-;22754:25;;22798:1;22788:35;;22803:18;;:::i;:::-;22788:35;22845:1;22842;22838:9;22833:14;;22668:185;;;;:::o;22859:305::-;22899:3;22918:20;22936:1;22918:20;:::i;:::-;22913:25;;22952:20;22970:1;22952:20;:::i;:::-;22947:25;;23106:1;23038:66;23034:74;23031:1;23028:81;23025:107;;;23112:18;;:::i;:::-;23025:107;23156:1;23153;23149:9;23142:16;;22859:305;;;;:::o;23170:177::-;23310:29;23306:1;23298:6;23294:14;23287:53;23170:177;:::o;23353:366::-;23495:3;23516:67;23580:2;23575:3;23516:67;:::i;:::-;23509:74;;23592:93;23681:3;23592:93;:::i;:::-;23710:2;23705:3;23701:12;23694:19;;23353:366;;;:::o;23725:419::-;23891:4;23929:2;23918:9;23914:18;23906:26;;23978:9;23972:4;23968:20;23964:1;23953:9;23949:17;23942:47;24006:131;24132:4;24006:131;:::i;:::-;23998:139;;23725:419;;;:::o;24150:348::-;24190:7;24213:20;24231:1;24213:20;:::i;:::-;24208:25;;24247:20;24265:1;24247:20;:::i;:::-;24242:25;;24435:1;24367:66;24363:74;24360:1;24357:81;24352:1;24345:9;24338:17;24334:105;24331:131;;;24442:18;;:::i;:::-;24331:131;24490:1;24487;24483:9;24472:20;;24150:348;;;;:::o;24504:220::-;24644:34;24640:1;24632:6;24628:14;24621:58;24713:3;24708:2;24700:6;24696:15;24689:28;24504:220;:::o;24730:366::-;24872:3;24893:67;24957:2;24952:3;24893:67;:::i;:::-;24886:74;;24969:93;25058:3;24969:93;:::i;:::-;25087:2;25082:3;25078:12;25071:19;;24730:366;;;:::o;25102:419::-;25268:4;25306:2;25295:9;25291:18;25283:26;;25355:9;25349:4;25345:20;25341:1;25330:9;25326:17;25319:47;25383:131;25509:4;25383:131;:::i;:::-;25375:139;;25102:419;;;:::o;25527:143::-;25584:5;25615:6;25609:13;25600:22;;25631:33;25658:5;25631:33;:::i;:::-;25527:143;;;;:::o;25676:351::-;25746:6;25795:2;25783:9;25774:7;25770:23;25766:32;25763:119;;;25801:79;;:::i;:::-;25763:119;25921:1;25946:64;26002:7;25993:6;25982:9;25978:22;25946:64;:::i;:::-;25936:74;;25892:128;25676:351;;;;:::o;26033:114::-;26100:6;26134:5;26128:12;26118:22;;26033:114;;;:::o;26153:184::-;26252:11;26286:6;26281:3;26274:19;26326:4;26321:3;26317:14;26302:29;;26153:184;;;;:::o;26343:132::-;26410:4;26433:3;26425:11;;26463:4;26458:3;26454:14;26446:22;;26343:132;;;:::o;26481:108::-;26558:24;26576:5;26558:24;:::i;:::-;26553:3;26546:37;26481:108;;:::o;26595:179::-;26664:10;26685:46;26727:3;26719:6;26685:46;:::i;:::-;26763:4;26758:3;26754:14;26740:28;;26595:179;;;;:::o;26780:113::-;26850:4;26882;26877:3;26873:14;26865:22;;26780:113;;;:::o;26929:732::-;27048:3;27077:54;27125:5;27077:54;:::i;:::-;27147:86;27226:6;27221:3;27147:86;:::i;:::-;27140:93;;27257:56;27307:5;27257:56;:::i;:::-;27336:7;27367:1;27352:284;27377:6;27374:1;27371:13;27352:284;;;27453:6;27447:13;27480:63;27539:3;27524:13;27480:63;:::i;:::-;27473:70;;27566:60;27619:6;27566:60;:::i;:::-;27556:70;;27412:224;27399:1;27396;27392:9;27387:14;;27352:284;;;27356:14;27652:3;27645:10;;27053:608;;;26929:732;;;;:::o;27667:831::-;27930:4;27968:3;27957:9;27953:19;27945:27;;27982:71;28050:1;28039:9;28035:17;28026:6;27982:71;:::i;:::-;28063:80;28139:2;28128:9;28124:18;28115:6;28063:80;:::i;:::-;28190:9;28184:4;28180:20;28175:2;28164:9;28160:18;28153:48;28218:108;28321:4;28312:6;28218:108;:::i;:::-;28210:116;;28336:72;28404:2;28393:9;28389:18;28380:6;28336:72;:::i;:::-;28418:73;28486:3;28475:9;28471:19;28462:6;28418:73;:::i;:::-;27667:831;;;;;;;;:::o;28504:807::-;28753:4;28791:3;28780:9;28776:19;28768:27;;28805:71;28873:1;28862:9;28858:17;28849:6;28805:71;:::i;:::-;28886:72;28954:2;28943:9;28939:18;28930:6;28886:72;:::i;:::-;28968:80;29044:2;29033:9;29029:18;29020:6;28968:80;:::i;:::-;29058;29134:2;29123:9;29119:18;29110:6;29058:80;:::i;:::-;29148:73;29216:3;29205:9;29201:19;29192:6;29148:73;:::i;:::-;29231;29299:3;29288:9;29284:19;29275:6;29231:73;:::i;:::-;28504:807;;;;;;;;;:::o;29317:663::-;29405:6;29413;29421;29470:2;29458:9;29449:7;29445:23;29441:32;29438:119;;;29476:79;;:::i;:::-;29438:119;29596:1;29621:64;29677:7;29668:6;29657:9;29653:22;29621:64;:::i;:::-;29611:74;;29567:128;29734:2;29760:64;29816:7;29807:6;29796:9;29792:22;29760:64;:::i;:::-;29750:74;;29705:129;29873:2;29899:64;29955:7;29946:6;29935:9;29931:22;29899:64;:::i;:::-;29889:74;;29844:129;29317:663;;;;;:::o

Swarm Source

ipfs://1e4589eb79ba6d897af4239e19ecd7954420dfba5427582d1b6a7ac1ed51da2f
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.