ETH Price: $3,309.59 (-3.23%)
 

Overview

Max Total Supply

100,000,000 Crispy

Holders

28

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
Ducker

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

Entry: https://t.me/DuckerBurnEntry
Twitter : https://twitter.com/DuckerBurn
Medium: https://medium.com/@DuckerBurn

*/
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;




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

interface IBEP20 {
    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;
    mapping (address => bool) internal authorizations;




    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }




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




    
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }




    
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }




    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }




    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }




    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }




    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        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;
}




contract Ducker is IBEP20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "DuckerBurn";
    string constant _symbol = "Crispy";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 100000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = (_totalSupply * 2) / 100; 
    uint256 public _maxWalletSize = (_totalSupply * 2) / 100; 

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 liquidityFee = 2;
    uint256 marketingFee = 3;
    uint256 totalFee = 5;
    uint256 feeDenominator = 100;
    
    address private marketingReceiver = 0xd72251F732eaE3eA1C2f651e36EAEA602647405B;

    IDEXRouter public router;
    address public pair;
    uint256 public launchedAt;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000000 * 1; // 0.3%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

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




        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;




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




    receive() external payable { }




    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }




    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }




    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }




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




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




        return _transferFrom(sender, recipient, amount);
    }




    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        checkTxLimit(sender, amount);
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletSize, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); }




        if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); }




        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");




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




        emit Transfer(sender, recipient, amountReceived);
        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 checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }
    
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }








    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);




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




        return amount.sub(feeAmount);
    }




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




    function swapBack() internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);




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




        uint256 balanceBefore = address(this).balance;




        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarket = amountETH.mul(marketingFee).div(totalETHFee);




        (bool OPSuccess, /* bytes memory data */) = payable(marketingReceiver).call{value: amountETHMarket, gas: 30000}("");
        require(OPSuccess, "receiver rejected ETH transfer");
        addLiquidity(amountToLiquify, amountETHLiquidity);
    }




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




    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = address(this);




        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }




    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }




    function launch() internal {
        launchedAt = block.number;
    }




    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }




   function setMaxWallet(uint256 amount) external onlyOwner() {
        require(amount >= _totalSupply / 1000 );
        _maxWalletSize = amount;
    }    




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




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




    function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_marketingFee);
        feeDenominator = _feeDenominator;
    }




    function setFeeReceiver(address _marketingReceiver) external authorized {
        marketingReceiver = _marketingReceiver;
    }




    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }



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




    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }




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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ee91906200081a565b6305f5e100620000ff919062000957565b6005556064600260055462000115919062000957565b62000121919062000787565b6006556064600260055462000137919062000957565b62000143919062000787565b6007556002600c556003600d556005600e556064600f5573d72251f732eae3ea1c2f651e36eaea602647405b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460006101000a81548160ff0219169083151502179055506001620f4240600554620001df919062000787565b620001eb919062000957565b601555348015620001fb57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035357600080fd5b505afa15801562000368573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038e9190620006e9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620003ec9291906200073d565b602060405180830381600087803b1580156200040757600080fd5b505af11580156200041c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004429190620006e9565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620006c391906200076a565b60405180910390a35062000a8d565b600081519050620006e38162000a73565b92915050565b60006020828403121562000702576200070162000a61565b5b60006200071284828501620006d2565b91505092915050565b6200072681620009b8565b82525050565b6200073781620009ec565b82525050565b60006040820190506200075460008301856200071b565b6200076360208301846200071b565b9392505050565b60006020820190506200078160008301846200072c565b92915050565b60006200079482620009ec565b9150620007a183620009ec565b925082620007b457620007b362000a32565b5b828204905092915050565b6000808291508390505b60018511156200081157808604811115620007e957620007e862000a03565b5b6001851615620007f95780820291505b8081029050620008098562000a66565b9450620007c9565b94509492505050565b60006200082782620009ec565b91506200083483620009f6565b9250620008637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200086b565b905092915050565b6000826200087d576001905062000950565b816200088d576000905062000950565b8160018114620008a65760028114620008b157620008e7565b600191505062000950565b60ff841115620008c657620008c562000a03565b5b8360020a915084821115620008e057620008df62000a03565b5b5062000950565b5060208310610133831016604e8410600b8410161715620009215782820a9050838111156200091b576200091a62000a03565b5b62000950565b620009308484846001620007bf565b925090508184048111156200094a576200094962000a03565b5b81810290505b9392505050565b60006200096482620009ec565b91506200097183620009ec565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009ad57620009ac62000a03565b5b828202905092915050565b6000620009c582620009cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000a7e81620009b8565b811462000a8a57600080fd5b50565b6132e48062000a9d6000396000f3fe6080604052600436106101f25760003560e01c8063893d20e81161010d578063d51ed1c8116100a0578063f0b37c041161006f578063f0b37c0414610746578063f2fde38b1461076f578063f84ba65d14610798578063f887ea40146107c1578063fe9fbb80146107ec576101f9565b8063d51ed1c81461067a578063dd62ed3e146106b7578063df20fd49146106f4578063efdcd9741461071d576101f9565b8063a9059cbb116100dc578063a9059cbb146105c0578063b6a5d7de146105fd578063bf56b37114610626578063cec10c1114610651576101f9565b8063893d20e8146105145780638f9a55c01461053f57806395d89b411461056a578063a8aa1b3114610595576101f9565b8063313ce56711610185578063658d4b7f11610154578063658d4b7f146104585780636ddd17131461048157806370a08231146104ac5780637d1db4a5146104e9576101f9565b8063313ce5671461039e578063571ac8b0146103c95780635c85974f146104065780635d0044ca1461042f576101f9565b806318160ddd116101c157806318160ddd146102ce57806323b872dd146102f95780632b112e49146103365780632f54bf6e14610361576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b3146102545780631161ae3914610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610829565b6040516102209190612cf0565b60405180910390f35b34801561023557600080fd5b5061023e61082f565b60405161024b9190612bee565b60405180910390f35b34801561026057600080fd5b5061027b6004803603810190610276919061273a565b61086c565b6040516102889190612bb8565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b391906127e7565b61095e565b6040516102c59190612bb8565b60405180910390f35b3480156102da57600080fd5b506102e3610973565b6040516102f09190612cf0565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b91906126a7565b61097d565b60405161032d9190612bb8565b60405180910390f35b34801561034257600080fd5b5061034b610b7d565b6040516103589190612cf0565b60405180910390f35b34801561036d57600080fd5b506103886004803603810190610383919061260d565b610bff565b6040516103959190612bb8565b60405180910390f35b3480156103aa57600080fd5b506103b3610c58565b6040516103c09190612d8e565b60405180910390f35b3480156103d557600080fd5b506103f060048036038101906103eb919061260d565b610c61565b6040516103fd9190612bb8565b60405180910390f35b34801561041257600080fd5b5061042d600480360381019061042891906127ba565b610c94565b005b34801561043b57600080fd5b50610456600480360381019061045191906127ba565b610d02565b005b34801561046457600080fd5b5061047f600480360381019061047a91906126fa565b610d70565b005b34801561048d57600080fd5b50610496610e13565b6040516104a39190612bb8565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce919061260d565b610e26565b6040516104e09190612cf0565b60405180910390f35b3480156104f557600080fd5b506104fe610e6f565b60405161050b9190612cf0565b60405180910390f35b34801561052057600080fd5b50610529610e75565b6040516105369190612b21565b60405180910390f35b34801561054b57600080fd5b50610554610e9e565b6040516105619190612cf0565b60405180910390f35b34801561057657600080fd5b5061057f610ea4565b60405161058c9190612bee565b60405180910390f35b3480156105a157600080fd5b506105aa610ee1565b6040516105b79190612b21565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e2919061273a565b610f07565b6040516105f49190612bb8565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f919061260d565b610f1c565b005b34801561063257600080fd5b5061063b610fbe565b6040516106489190612cf0565b60405180910390f35b34801561065d57600080fd5b5061067860048036038101906106739190612827565b610fc4565b005b34801561068657600080fd5b506106a1600480360381019061069c91906127ba565b61103f565b6040516106ae9190612cf0565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d99190612667565b6110b1565b6040516106eb9190612cf0565b60405180910390f35b34801561070057600080fd5b5061071b6004803603810190610716919061277a565b611138565b005b34801561072957600080fd5b50610744600480360381019061073f919061260d565b6111a5565b005b34801561075257600080fd5b5061076d6004803603810190610768919061260d565b611231565b005b34801561077b57600080fd5b506107966004803603810190610791919061263a565b6112d4565b005b3480156107a457600080fd5b506107bf60048036038101906107ba91906126fa565b6113ed565b005b3480156107cd57600080fd5b506107d6611490565b6040516107e39190612bd3565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e919061260d565b6114b6565b6040516108209190612bb8565b60405180910390f35b60155481565b60606040518060400160405280600a81526020017f4475636b65724275726e00000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161094c9190612cf0565b60405180910390a36001905092915050565b60008261096a8361103f565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b6957610ae8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b74848484611570565b90509392505050565b6000610bfa610bad600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b610bec610bdb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b6005546119ff90919063ffffffff16565b6119ff90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610c8d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086c565b9050919050565b610c9d336114b6565b610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd390612cd0565b60405180910390fd5b6103e8600554610cec9190612e5f565b811015610cf857600080fd5b8060068190555050565b610d0b33610bff565b610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4190612cb0565b60405180910390fd5b6103e8600554610d5a9190612e5f565b811015610d6657600080fd5b8060078190555050565b610d79336114b6565b610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90612cd0565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600681526020017f4372697370790000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f14338484611570565b905092915050565b610f2533610bff565b610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90612cb0565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60135481565b610fcd336114b6565b61100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612cd0565b60405180910390fd5b82600c8190555081600d8190555061102d8284611a4990919063ffffffff16565b600e8190555080600f81905550505050565b60006110aa61104c610b7d565b61109c61108d600261107f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b611aa790919063ffffffff16565b85611aa790919063ffffffff16565b611b2290919063ffffffff16565b9050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611141336114b6565b611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117790612cd0565b60405180910390fd5b81601460006101000a81548160ff021916908315150217905550806015819055505050565b6111ae336114b6565b6111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e490612cd0565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61123a33610bff565b611279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127090612cb0565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112dd33610bff565b61131c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131390612cb0565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516113e29190612b3c565b60405180910390a150565b6113f6336114b6565b611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c90612cd0565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b9190612bee565b60405180910390fd5b50600083856115639190612eea565b9050809150509392505050565b6000601660009054906101000a900460ff161561159957611592848484611b6c565b90506119f8565b6115a38483611d3f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561164f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561173857600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116f8575060075482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f59190612e09565b11155b611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e90612c10565b60405180910390fd5b5b611740611ddc565b1561174e5761174d611eb3565b5b61175661228d565b1580156117b05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561180a576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161180157600080fd5b61180961229a565b5b611893826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006118e1856122a3565b6118eb57826118f6565b6118f585846122fa565b5b905061194a81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ea9190612cf0565b60405180910390a360019150505b9392505050565b6000611a4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061150c565b905092915050565b6000808284611a589190612e09565b905083811015611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9490612c50565b60405180910390fd5b8091505092915050565b600080831415611aba5760009050611b1c565b60008284611ac89190612e90565b9050828482611ad79190612e5f565b14611b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0e90612c90565b60405180910390fd5b809150505b92915050565b6000611b6483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061243e565b905092915050565b6000611bf7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8c82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d2c9190612cf0565b60405180910390a3600190509392505050565b60065481111580611d995750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcf90612c30565b60405180910390fd5b5050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611e495750601660009054906101000a900460ff16155b8015611e615750601460009054906101000a900460ff165b8015611eae5750601554600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601660006101000a81548160ff0219169083151502179055506000611ed930610e26565b90506000611f196002611f0b600e54611efd600c5487611aa790919063ffffffff16565b611b2290919063ffffffff16565b611b2290919063ffffffff16565b90506000611f3082846119ff90919063ffffffff16565b90506000600267ffffffffffffffff811115611f4f57611f4e61309f565b5b604051908082528060200260200182016040528015611f7d5781602001602082028036833780820191505090505b5090503081600081518110611f9557611f94613070565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061200657612005613070565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016120a9959493929190612d0b565b600060405180830381600087803b1580156120c357600080fd5b505af11580156120d7573d6000803e3d6000fd5b5050505060006120f082476119ff90919063ffffffff16565b9050600061211e61210d6002600c54611b2290919063ffffffff16565b600e546119ff90919063ffffffff16565b9050600061215c600261214e84612140600c5488611aa790919063ffffffff16565b611b2290919063ffffffff16565b611b2290919063ffffffff16565b9050600061218783612179600d5487611aa790919063ffffffff16565b611b2290919063ffffffff16565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516121d590612b0c565b600060405180830381858888f193505050503d8060008114612213576040519150601f19603f3d011682016040523d82523d6000602084013e612218565b606091505b505090508061225c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225390612c70565b60405180910390fd5b61226689846124a1565b505050505050505050506000601660006101000a81548160ff021916908315150217905550565b6000806013541415905090565b43601381905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612326600f54612318600e5486611aa790919063ffffffff16565b611b2290919063ffffffff16565b905061237a81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161241a9190612cf0565b60405180910390a361243581846119ff90919063ffffffff16565b91505092915050565b60008083118290612485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247c9190612bee565b60405180910390fd5b50600083856124949190612e5f565b9050809150509392505050565b60008211156125a057601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b815260040161251196959493929190612b57565b6060604051808303818588803b15801561252a57600080fd5b505af115801561253e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612563919061287a565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068183604051612597929190612d65565b60405180910390a15b5050565b6000813590506125b381613252565b92915050565b6000813590506125c881613269565b92915050565b6000813590506125dd81613280565b92915050565b6000813590506125f281613297565b92915050565b60008151905061260781613297565b92915050565b600060208284031215612623576126226130ce565b5b6000612631848285016125a4565b91505092915050565b6000602082840312156126505761264f6130ce565b5b600061265e848285016125b9565b91505092915050565b6000806040838503121561267e5761267d6130ce565b5b600061268c858286016125a4565b925050602061269d858286016125a4565b9150509250929050565b6000806000606084860312156126c0576126bf6130ce565b5b60006126ce868287016125a4565b93505060206126df868287016125a4565b92505060406126f0868287016125e3565b9150509250925092565b60008060408385031215612711576127106130ce565b5b600061271f858286016125a4565b9250506020612730858286016125ce565b9150509250929050565b60008060408385031215612751576127506130ce565b5b600061275f858286016125a4565b9250506020612770858286016125e3565b9150509250929050565b60008060408385031215612791576127906130ce565b5b600061279f858286016125ce565b92505060206127b0858286016125e3565b9150509250929050565b6000602082840312156127d0576127cf6130ce565b5b60006127de848285016125e3565b91505092915050565b600080604083850312156127fe576127fd6130ce565b5b600061280c858286016125e3565b925050602061281d858286016125e3565b9150509250929050565b6000806000606084860312156128405761283f6130ce565b5b600061284e868287016125e3565b935050602061285f868287016125e3565b9250506040612870868287016125e3565b9150509250925092565b600080600060608486031215612893576128926130ce565b5b60006128a1868287016125f8565b93505060206128b2868287016125f8565b92505060406128c3868287016125f8565b9150509250925092565b60006128d983836128f4565b60208301905092915050565b6128ee81612f85565b82525050565b6128fd81612f1e565b82525050565b61290c81612f1e565b82525050565b600061291d82612db9565b6129278185612ddc565b935061293283612da9565b8060005b8381101561296357815161294a88826128cd565b975061295583612dcf565b925050600181019050612936565b5085935050505092915050565b61297981612f42565b82525050565b61298881612f97565b82525050565b61299781612fa9565b82525050565b60006129a882612dc4565b6129b28185612df8565b93506129c2818560208601612fdf565b6129cb816130d3565b840191505092915050565b60006129e3602583612df8565b91506129ee826130e4565b604082019050919050565b6000612a06601183612df8565b9150612a1182613133565b602082019050919050565b6000612a29601b83612df8565b9150612a348261315c565b602082019050919050565b6000612a4c601e83612df8565b9150612a5782613185565b602082019050919050565b6000612a6f602183612df8565b9150612a7a826131ae565b604082019050919050565b6000612a92600683612df8565b9150612a9d826131fd565b602082019050919050565b6000612ab5600083612ded565b9150612ac082613226565b600082019050919050565b6000612ad8600b83612df8565b9150612ae382613229565b602082019050919050565b612af781612f6e565b82525050565b612b0681612f78565b82525050565b6000612b1782612aa8565b9150819050919050565b6000602082019050612b366000830184612903565b92915050565b6000602082019050612b5160008301846128e5565b92915050565b600060c082019050612b6c6000830189612903565b612b796020830188612aee565b612b86604083018761298e565b612b93606083018661298e565b612ba06080830185612903565b612bad60a0830184612aee565b979650505050505050565b6000602082019050612bcd6000830184612970565b92915050565b6000602082019050612be8600083018461297f565b92915050565b60006020820190508181036000830152612c08818461299d565b905092915050565b60006020820190508181036000830152612c29816129d6565b9050919050565b60006020820190508181036000830152612c49816129f9565b9050919050565b60006020820190508181036000830152612c6981612a1c565b9050919050565b60006020820190508181036000830152612c8981612a3f565b9050919050565b60006020820190508181036000830152612ca981612a62565b9050919050565b60006020820190508181036000830152612cc981612a85565b9050919050565b60006020820190508181036000830152612ce981612acb565b9050919050565b6000602082019050612d056000830184612aee565b92915050565b600060a082019050612d206000830188612aee565b612d2d602083018761298e565b8181036040830152612d3f8186612912565b9050612d4e6060830185612903565b612d5b6080830184612aee565b9695505050505050565b6000604082019050612d7a6000830185612aee565b612d876020830184612aee565b9392505050565b6000602082019050612da36000830184612afd565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612e1482612f6e565b9150612e1f83612f6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e5457612e53613012565b5b828201905092915050565b6000612e6a82612f6e565b9150612e7583612f6e565b925082612e8557612e84613041565b5b828204905092915050565b6000612e9b82612f6e565b9150612ea683612f6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612edf57612ede613012565b5b828202905092915050565b6000612ef582612f6e565b9150612f0083612f6e565b925082821015612f1357612f12613012565b5b828203905092915050565b6000612f2982612f4e565b9050919050565b6000612f3b82612f4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f9082612fbb565b9050919050565b6000612fa282612fbb565b9050919050565b6000612fb482612f6e565b9050919050565b6000612fc682612fcd565b9050919050565b6000612fd882612f4e565b9050919050565b60005b83811015612ffd578082015181840152602081019050612fe2565b8381111561300c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61325b81612f1e565b811461326657600080fd5b50565b61327281612f30565b811461327d57600080fd5b50565b61328981612f42565b811461329457600080fd5b50565b6132a081612f6e565b81146132ab57600080fd5b5056fea26469706673582212209074aa22ed0ddf5368d12de27f67a4049f92e31986f67db9049301f0aa0c863a64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063893d20e81161010d578063d51ed1c8116100a0578063f0b37c041161006f578063f0b37c0414610746578063f2fde38b1461076f578063f84ba65d14610798578063f887ea40146107c1578063fe9fbb80146107ec576101f9565b8063d51ed1c81461067a578063dd62ed3e146106b7578063df20fd49146106f4578063efdcd9741461071d576101f9565b8063a9059cbb116100dc578063a9059cbb146105c0578063b6a5d7de146105fd578063bf56b37114610626578063cec10c1114610651576101f9565b8063893d20e8146105145780638f9a55c01461053f57806395d89b411461056a578063a8aa1b3114610595576101f9565b8063313ce56711610185578063658d4b7f11610154578063658d4b7f146104585780636ddd17131461048157806370a08231146104ac5780637d1db4a5146104e9576101f9565b8063313ce5671461039e578063571ac8b0146103c95780635c85974f146104065780635d0044ca1461042f576101f9565b806318160ddd116101c157806318160ddd146102ce57806323b872dd146102f95780632b112e49146103365780632f54bf6e14610361576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b3146102545780631161ae3914610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610829565b6040516102209190612cf0565b60405180910390f35b34801561023557600080fd5b5061023e61082f565b60405161024b9190612bee565b60405180910390f35b34801561026057600080fd5b5061027b6004803603810190610276919061273a565b61086c565b6040516102889190612bb8565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b391906127e7565b61095e565b6040516102c59190612bb8565b60405180910390f35b3480156102da57600080fd5b506102e3610973565b6040516102f09190612cf0565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b91906126a7565b61097d565b60405161032d9190612bb8565b60405180910390f35b34801561034257600080fd5b5061034b610b7d565b6040516103589190612cf0565b60405180910390f35b34801561036d57600080fd5b506103886004803603810190610383919061260d565b610bff565b6040516103959190612bb8565b60405180910390f35b3480156103aa57600080fd5b506103b3610c58565b6040516103c09190612d8e565b60405180910390f35b3480156103d557600080fd5b506103f060048036038101906103eb919061260d565b610c61565b6040516103fd9190612bb8565b60405180910390f35b34801561041257600080fd5b5061042d600480360381019061042891906127ba565b610c94565b005b34801561043b57600080fd5b50610456600480360381019061045191906127ba565b610d02565b005b34801561046457600080fd5b5061047f600480360381019061047a91906126fa565b610d70565b005b34801561048d57600080fd5b50610496610e13565b6040516104a39190612bb8565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce919061260d565b610e26565b6040516104e09190612cf0565b60405180910390f35b3480156104f557600080fd5b506104fe610e6f565b60405161050b9190612cf0565b60405180910390f35b34801561052057600080fd5b50610529610e75565b6040516105369190612b21565b60405180910390f35b34801561054b57600080fd5b50610554610e9e565b6040516105619190612cf0565b60405180910390f35b34801561057657600080fd5b5061057f610ea4565b60405161058c9190612bee565b60405180910390f35b3480156105a157600080fd5b506105aa610ee1565b6040516105b79190612b21565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e2919061273a565b610f07565b6040516105f49190612bb8565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f919061260d565b610f1c565b005b34801561063257600080fd5b5061063b610fbe565b6040516106489190612cf0565b60405180910390f35b34801561065d57600080fd5b5061067860048036038101906106739190612827565b610fc4565b005b34801561068657600080fd5b506106a1600480360381019061069c91906127ba565b61103f565b6040516106ae9190612cf0565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d99190612667565b6110b1565b6040516106eb9190612cf0565b60405180910390f35b34801561070057600080fd5b5061071b6004803603810190610716919061277a565b611138565b005b34801561072957600080fd5b50610744600480360381019061073f919061260d565b6111a5565b005b34801561075257600080fd5b5061076d6004803603810190610768919061260d565b611231565b005b34801561077b57600080fd5b506107966004803603810190610791919061263a565b6112d4565b005b3480156107a457600080fd5b506107bf60048036038101906107ba91906126fa565b6113ed565b005b3480156107cd57600080fd5b506107d6611490565b6040516107e39190612bd3565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e919061260d565b6114b6565b6040516108209190612bb8565b60405180910390f35b60155481565b60606040518060400160405280600a81526020017f4475636b65724275726e00000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161094c9190612cf0565b60405180910390a36001905092915050565b60008261096a8361103f565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b6957610ae8826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b74848484611570565b90509392505050565b6000610bfa610bad600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b610bec610bdb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b6005546119ff90919063ffffffff16565b6119ff90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610c8d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086c565b9050919050565b610c9d336114b6565b610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd390612cd0565b60405180910390fd5b6103e8600554610cec9190612e5f565b811015610cf857600080fd5b8060068190555050565b610d0b33610bff565b610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4190612cb0565b60405180910390fd5b6103e8600554610d5a9190612e5f565b811015610d6657600080fd5b8060078190555050565b610d79336114b6565b610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90612cd0565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600681526020017f4372697370790000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f14338484611570565b905092915050565b610f2533610bff565b610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90612cb0565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60135481565b610fcd336114b6565b61100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612cd0565b60405180910390fd5b82600c8190555081600d8190555061102d8284611a4990919063ffffffff16565b600e8190555080600f81905550505050565b60006110aa61104c610b7d565b61109c61108d600261107f601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e26565b611aa790919063ffffffff16565b85611aa790919063ffffffff16565b611b2290919063ffffffff16565b9050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611141336114b6565b611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117790612cd0565b60405180910390fd5b81601460006101000a81548160ff021916908315150217905550806015819055505050565b6111ae336114b6565b6111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e490612cd0565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61123a33610bff565b611279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127090612cb0565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112dd33610bff565b61131c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131390612cb0565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516113e29190612b3c565b60405180910390a150565b6113f6336114b6565b611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c90612cd0565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b9190612bee565b60405180910390fd5b50600083856115639190612eea565b9050809150509392505050565b6000601660009054906101000a900460ff161561159957611592848484611b6c565b90506119f8565b6115a38483611d3f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561164f5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561173857600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116f8575060075482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f59190612e09565b11155b611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e90612c10565b60405180910390fd5b5b611740611ddc565b1561174e5761174d611eb3565b5b61175661228d565b1580156117b05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561180a576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161180157600080fd5b61180961229a565b5b611893826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006118e1856122a3565b6118eb57826118f6565b6118f585846122fa565b5b905061194a81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ea9190612cf0565b60405180910390a360019150505b9392505050565b6000611a4183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061150c565b905092915050565b6000808284611a589190612e09565b905083811015611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9490612c50565b60405180910390fd5b8091505092915050565b600080831415611aba5760009050611b1c565b60008284611ac89190612e90565b9050828482611ad79190612e5f565b14611b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0e90612c90565b60405180910390fd5b809150505b92915050565b6000611b6483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061243e565b905092915050565b6000611bf7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150c9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8c82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d2c9190612cf0565b60405180910390a3600190509392505050565b60065481111580611d995750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcf90612c30565b60405180910390fd5b5050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611e495750601660009054906101000a900460ff16155b8015611e615750601460009054906101000a900460ff165b8015611eae5750601554600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601660006101000a81548160ff0219169083151502179055506000611ed930610e26565b90506000611f196002611f0b600e54611efd600c5487611aa790919063ffffffff16565b611b2290919063ffffffff16565b611b2290919063ffffffff16565b90506000611f3082846119ff90919063ffffffff16565b90506000600267ffffffffffffffff811115611f4f57611f4e61309f565b5b604051908082528060200260200182016040528015611f7d5781602001602082028036833780820191505090505b5090503081600081518110611f9557611f94613070565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061200657612005613070565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016120a9959493929190612d0b565b600060405180830381600087803b1580156120c357600080fd5b505af11580156120d7573d6000803e3d6000fd5b5050505060006120f082476119ff90919063ffffffff16565b9050600061211e61210d6002600c54611b2290919063ffffffff16565b600e546119ff90919063ffffffff16565b9050600061215c600261214e84612140600c5488611aa790919063ffffffff16565b611b2290919063ffffffff16565b611b2290919063ffffffff16565b9050600061218783612179600d5487611aa790919063ffffffff16565b611b2290919063ffffffff16565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516121d590612b0c565b600060405180830381858888f193505050503d8060008114612213576040519150601f19603f3d011682016040523d82523d6000602084013e612218565b606091505b505090508061225c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225390612c70565b60405180910390fd5b61226689846124a1565b505050505050505050506000601660006101000a81548160ff021916908315150217905550565b6000806013541415905090565b43601381905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612326600f54612318600e5486611aa790919063ffffffff16565b611b2290919063ffffffff16565b905061237a81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4990919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161241a9190612cf0565b60405180910390a361243581846119ff90919063ffffffff16565b91505092915050565b60008083118290612485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247c9190612bee565b60405180910390fd5b50600083856124949190612e5f565b9050809150509392505050565b60008211156125a057601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b815260040161251196959493929190612b57565b6060604051808303818588803b15801561252a57600080fd5b505af115801561253e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612563919061287a565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068183604051612597929190612d65565b60405180910390a15b5050565b6000813590506125b381613252565b92915050565b6000813590506125c881613269565b92915050565b6000813590506125dd81613280565b92915050565b6000813590506125f281613297565b92915050565b60008151905061260781613297565b92915050565b600060208284031215612623576126226130ce565b5b6000612631848285016125a4565b91505092915050565b6000602082840312156126505761264f6130ce565b5b600061265e848285016125b9565b91505092915050565b6000806040838503121561267e5761267d6130ce565b5b600061268c858286016125a4565b925050602061269d858286016125a4565b9150509250929050565b6000806000606084860312156126c0576126bf6130ce565b5b60006126ce868287016125a4565b93505060206126df868287016125a4565b92505060406126f0868287016125e3565b9150509250925092565b60008060408385031215612711576127106130ce565b5b600061271f858286016125a4565b9250506020612730858286016125ce565b9150509250929050565b60008060408385031215612751576127506130ce565b5b600061275f858286016125a4565b9250506020612770858286016125e3565b9150509250929050565b60008060408385031215612791576127906130ce565b5b600061279f858286016125ce565b92505060206127b0858286016125e3565b9150509250929050565b6000602082840312156127d0576127cf6130ce565b5b60006127de848285016125e3565b91505092915050565b600080604083850312156127fe576127fd6130ce565b5b600061280c858286016125e3565b925050602061281d858286016125e3565b9150509250929050565b6000806000606084860312156128405761283f6130ce565b5b600061284e868287016125e3565b935050602061285f868287016125e3565b9250506040612870868287016125e3565b9150509250925092565b600080600060608486031215612893576128926130ce565b5b60006128a1868287016125f8565b93505060206128b2868287016125f8565b92505060406128c3868287016125f8565b9150509250925092565b60006128d983836128f4565b60208301905092915050565b6128ee81612f85565b82525050565b6128fd81612f1e565b82525050565b61290c81612f1e565b82525050565b600061291d82612db9565b6129278185612ddc565b935061293283612da9565b8060005b8381101561296357815161294a88826128cd565b975061295583612dcf565b925050600181019050612936565b5085935050505092915050565b61297981612f42565b82525050565b61298881612f97565b82525050565b61299781612fa9565b82525050565b60006129a882612dc4565b6129b28185612df8565b93506129c2818560208601612fdf565b6129cb816130d3565b840191505092915050565b60006129e3602583612df8565b91506129ee826130e4565b604082019050919050565b6000612a06601183612df8565b9150612a1182613133565b602082019050919050565b6000612a29601b83612df8565b9150612a348261315c565b602082019050919050565b6000612a4c601e83612df8565b9150612a5782613185565b602082019050919050565b6000612a6f602183612df8565b9150612a7a826131ae565b604082019050919050565b6000612a92600683612df8565b9150612a9d826131fd565b602082019050919050565b6000612ab5600083612ded565b9150612ac082613226565b600082019050919050565b6000612ad8600b83612df8565b9150612ae382613229565b602082019050919050565b612af781612f6e565b82525050565b612b0681612f78565b82525050565b6000612b1782612aa8565b9150819050919050565b6000602082019050612b366000830184612903565b92915050565b6000602082019050612b5160008301846128e5565b92915050565b600060c082019050612b6c6000830189612903565b612b796020830188612aee565b612b86604083018761298e565b612b93606083018661298e565b612ba06080830185612903565b612bad60a0830184612aee565b979650505050505050565b6000602082019050612bcd6000830184612970565b92915050565b6000602082019050612be8600083018461297f565b92915050565b60006020820190508181036000830152612c08818461299d565b905092915050565b60006020820190508181036000830152612c29816129d6565b9050919050565b60006020820190508181036000830152612c49816129f9565b9050919050565b60006020820190508181036000830152612c6981612a1c565b9050919050565b60006020820190508181036000830152612c8981612a3f565b9050919050565b60006020820190508181036000830152612ca981612a62565b9050919050565b60006020820190508181036000830152612cc981612a85565b9050919050565b60006020820190508181036000830152612ce981612acb565b9050919050565b6000602082019050612d056000830184612aee565b92915050565b600060a082019050612d206000830188612aee565b612d2d602083018761298e565b8181036040830152612d3f8186612912565b9050612d4e6060830185612903565b612d5b6080830184612aee565b9695505050505050565b6000604082019050612d7a6000830185612aee565b612d876020830184612aee565b9392505050565b6000602082019050612da36000830184612afd565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612e1482612f6e565b9150612e1f83612f6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e5457612e53613012565b5b828201905092915050565b6000612e6a82612f6e565b9150612e7583612f6e565b925082612e8557612e84613041565b5b828204905092915050565b6000612e9b82612f6e565b9150612ea683612f6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612edf57612ede613012565b5b828202905092915050565b6000612ef582612f6e565b9150612f0083612f6e565b925082821015612f1357612f12613012565b5b828203905092915050565b6000612f2982612f4e565b9050919050565b6000612f3b82612f4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f9082612fbb565b9050919050565b6000612fa282612fbb565b9050919050565b6000612fb482612f6e565b9050919050565b6000612fc682612fcd565b9050919050565b6000612fd882612f4e565b9050919050565b60005b83811015612ffd578082015181840152602081019050612fe2565b8381111561300c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61325b81612f1e565b811461326657600080fd5b50565b61327281612f30565b811461327d57600080fd5b50565b61328981612f42565b811461329457600080fd5b50565b6132a081612f6e565b81146132ab57600080fd5b5056fea26469706673582212209074aa22ed0ddf5368d12de27f67a4049f92e31986f67db9049301f0aa0c863a64736f6c63430008070033

Deployed Bytecode Sourcemap

5377:9679:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6508:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7486:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7914:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14835:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7216:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8450:376;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14498:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3222:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7310:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8144:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13279:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13437:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13606:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6471:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7656:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5826:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7572:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5888:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7396:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6411:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8280:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2883:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13882:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14654:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7767:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14330:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14187:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3059:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3634:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13740:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6380:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3402:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6508:57;;;;:::o;7486:80::-;7534:13;7558:5;;;;;;;;;;;;;;;;;7551:12;;7486:80;:::o;7914:216::-;7989:4;8041:6;8006:11;:23;8018:10;8006:23;;;;;;;;;;;;;;;:32;8030:7;8006:32;;;;;;;;;;;;;;;:41;;;;8084:7;8063:37;;8072:10;8063:37;;;8093:6;8063:37;;;;;;:::i;:::-;;;;;;;;8118:4;8111:11;;7914:216;;;;:::o;14835:150::-;14915:4;14971:6;14939:29;14959:8;14939:19;:29::i;:::-;:38;14932:45;;14835:150;;;;:::o;7216:88::-;7271:7;7289:12;;7282:19;;7216:88;:::o;8450:376::-;8550:4;8605:17;8570:11;:19;8582:6;8570:19;;;;;;;;;;;;;;;:31;8590:10;8570:31;;;;;;;;;;;;;;;;:52;8567:186;;8672:69;8708:6;8672:69;;;;;;;;;;;;;;;;;:11;:19;8684:6;8672:19;;;;;;;;;;;;;;;:31;8692:10;8672:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8638:11;:19;8650:6;8638:19;;;;;;;;;;;;;;;:31;8658:10;8638:31;;;;;;;;;;;;;;;:103;;;;8567:186;8778:40;8792:6;8800:9;8811:6;8778:13;:40::i;:::-;8771:47;;8450:376;;;;;:::o;14498:142::-;14551:7;14578:54;14616:15;14626:4;;;;;;;;;;;14616:9;:15::i;:::-;14578:33;14595:15;14605:4;;;;;;;;;;;14595:9;:15::i;:::-;14578:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;14571:61;;14498:142;:::o;3222:103::-;3277:4;3312:5;;;;;;;;;;;3301:16;;:7;:16;;;3294:23;;3222:103;;;:::o;7310:80::-;7362:5;5756:2;7371:16;;7310:80;:::o;8144:122::-;8199:4;8223:35;8231:7;8240:17;8223:7;:35::i;:::-;8216:42;;8144:122;;;:::o;13279:145::-;2812:24;2825:10;2812:12;:24::i;:::-;2804:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13379:4:::1;13364:12;;:19;;;;:::i;:::-;13354:6;:29;;13346:38;;;::::0;::::1;;13410:6;13395:12;:21;;;;13279:145:::0;:::o;13437:151::-;2710:19;2718:10;2710:7;:19::i;:::-;2702:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13540:4:::1;13525:12;;:19;;;;:::i;:::-;13515:6;:29;;13507:39;;;::::0;::::1;;13574:6;13557:14;:23;;;;13437:151:::0;:::o;13606:120::-;2812:24;2825:10;2812:12;:24::i;:::-;2804:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13712:6:::1;13690:11;:19;13702:6;13690:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13606:120:::0;;:::o;6471:30::-;;;;;;;;;;;;;:::o;7656:105::-;7722:7;7740:9;:18;7750:7;7740:18;;;;;;;;;;;;;;;;7733:25;;7656:105;;;:::o;5826:54::-;;;;:::o;7572:78::-;7624:7;7642:5;;;;;;;;;;;7635:12;;7572:78;:::o;5888:56::-;;;;:::o;7396:84::-;7446:13;7470:7;;;;;;;;;;;;;;;;;7463:14;;7396:84;:::o;6411:19::-;;;;;;;;;;;;;:::o;8280:156::-;8360:4;8384:44;8398:10;8410:9;8421:6;8384:13;:44::i;:::-;8377:51;;8280:156;;;;:::o;2883:94::-;2710:19;2718:10;2710:7;:19::i;:::-;2702:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2965:4:::1;2943:14:::0;:19:::1;2958:3;2943:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2883:94:::0;:::o;6437:25::-;;;;:::o;13882:291::-;2812:24;2825:10;2812:12;:24::i;:::-;2804:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14016:13:::1;14001:12;:28;;;;14055:13;14040:12;:28;;;;14090:32;14108:13;14090;:17;;:32;;;;:::i;:::-;14079:8;:43;;;;14150:15;14133:14;:32;;;;13882:291:::0;;;:::o;14654:167::-;14722:7;14749:64;14790:22;:20;:22::i;:::-;14749:36;14762:22;14782:1;14762:15;14772:4;;;;;;;;;;;14762:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;14749:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;14742:71;;14654:167;;;:::o;7767:133::-;7851:7;7869:11;:19;7881:6;7869:19;;;;;;;;;;;;;;;:28;7889:7;7869:28;;;;;;;;;;;;;;;;7862:35;;7767:133;;;;:::o;14330:156::-;2812:24;2825:10;2812:12;:24::i;:::-;2804:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14436:8:::1;14422:11;;:22;;;;;;;;;;;;;;;;;;14471:7;14455:13;:23;;;;14330:156:::0;;:::o;14187:129::-;2812:24;2825:10;2812:12;:24::i;:::-;2804:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14290:18:::1;14270:17;;:38;;;;;;;;;;;;;;;;;;14187:129:::0;:::o;3059:97::-;2710:19;2718:10;2710:7;:19::i;:::-;2702:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3143:5:::1;3121:14;:19;3136:3;3121:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3059:97:::0;:::o;3634:173::-;2710:19;2718:10;2710:7;:19::i;:::-;2702:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3718:3:::1;3710:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3754:4;3732:14:::0;:19:::1;3747:3;3732:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3774:25;3795:3;3774:25;;;;;;:::i;:::-;;;;;;;;3634:173:::0;:::o;13740:128::-;2812:24;2825:10;2812:12;:24::i;:::-;2804:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13854:6:::1;13828:15;:23;13844:6;13828:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;13740:128:::0;;:::o;6380:24::-;;;;;;;;;;;;;:::o;3402:107::-;3458:4;3482:14;:19;3497:3;3482:19;;;;;;;;;;;;;;;;;;;;;;;;;3475:26;;3402:107;;;:::o;556:198::-;642:7;675:1;670;:6;;678:12;662:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;702:9;718:1;714;:5;;;;:::i;:::-;702:17;;745:1;738:8;;;556:198;;;;;:::o;8840:955::-;8932:4;8952:6;;;;;;;;;;;8949:63;;;8968:41;8983:6;8991:9;9002:6;8968:14;:41::i;:::-;8961:48;;;;8949:63;9032:28;9045:6;9053;9032:12;:28::i;:::-;9098:4;;;;;;;;;;;9085:17;;:9;:17;;;;:38;;;;;9119:4;;;;;;;;;;;9106:17;;:9;:17;;;;9085:38;9081:198;;;9148:15;:26;9164:9;9148:26;;;;;;;;;;;;;;;;;;;;;;;;;:77;;;;9211:14;;9201:6;9178:9;:20;9188:9;9178:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;9148:77;9140:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;9081:198;9302:16;:14;:16::i;:::-;9299:35;;;9321:10;:8;:10::i;:::-;9299:35;9356:10;:8;:10::i;:::-;9355:11;:32;;;;;9383:4;;;;;;;;;;;9370:17;;:9;:17;;;9355:32;9352:81;;;9418:1;9398:9;:17;9408:6;9398:17;;;;;;;;;;;;;;;;:21;9390:30;;;;;;9422:8;:6;:8::i;:::-;9352:81;9471:53;9493:6;9471:53;;;;;;;;;;;;;;;;;:9;:17;9481:6;9471:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9451:9;:17;9461:6;9451:17;;;;;;;;;;;;;;;:73;;;;9543:22;9568:21;9582:6;9568:13;:21::i;:::-;:56;;9618:6;9568:56;;;9592:23;9600:6;9608;9592:7;:23::i;:::-;9568:56;9543:81;;9658:40;9683:14;9658:9;:20;9668:9;9658:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9635:9;:20;9645:9;9635:20;;;;;;;;;;;;;;;:63;;;;9739:9;9722:43;;9731:6;9722:43;;;9750:14;9722:43;;;;;;:::i;:::-;;;;;;;;9783:4;9776:11;;;8840:955;;;;;;:::o;414:136::-;472:7;499:43;503:1;506;499:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;492:50;;414:136;;;;:::o;221:187::-;279:7;299:9;315:1;311;:5;;;;:::i;:::-;299:17;;340:1;335;:6;;327:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;399:1;392:8;;;221:187;;;;:::o;760:250::-;818:7;847:1;842;:6;838:47;;;872:1;865:8;;;;838:47;897:9;913:1;909;:5;;;;:::i;:::-;897:17;;942:1;937;933;:5;;;;:::i;:::-;:10;925:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1001:1;994:8;;;760:250;;;;;:::o;1016:132::-;1074:7;1101:39;1105:1;1108;1101:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1094:46;;1016:132;;;;:::o;9807:330::-;9900:4;9937:53;9959:6;9937:53;;;;;;;;;;;;;;;;;:9;:17;9947:6;9937:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9917:9;:17;9927:6;9917:17;;;;;;;;;;;;;;;:73;;;;10024:32;10049:6;10024:9;:20;10034:9;10024:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10001:9;:20;10011:9;10001:20;;;;;;;;;;;;;;;:55;;;;10089:9;10072:35;;10081:6;10072:35;;;10100:6;10072:35;;;;;;:::i;:::-;;;;;;;;10125:4;10118:11;;9807:330;;;;;:::o;10151:166::-;10248:12;;10238:6;:22;;:49;;;;10264:15;:23;10280:6;10264:23;;;;;;;;;;;;;;;;;;;;;;;;;10238:49;10230:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10151:166;;:::o;10824:197::-;10873:4;10911;;;;;;;;;;;10897:18;;:10;:18;;;;:38;;;;;10929:6;;;;;;;;;;;10928:7;10897:38;:62;;;;;10948:11;;;;;;;;;;;10897:62;:116;;;;;11000:13;;10972:9;:24;10990:4;10972:24;;;;;;;;;;;;;;;;:41;;10897:116;10890:123;;10824:197;:::o;11035:1238::-;6629:4;6620:6;;:13;;;;;;;;;;;;;;;;;;11084:28:::1;11115:24;11133:4;11115:9;:24::i;:::-;11084:55;;11150:23;11176:59;11233:1;11176:52;11219:8;;11176:38;11201:12;;11176:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;11150:85;;11246:20;11269:41;11294:15;11269:20;:24;;:41;;;;:::i;:::-;11246:64;;11329:21;11367:1;11353:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11329:40;;11398:4;11380;11385:1;11380:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11424:4;;;;;;;;;;;11414;11419:1;11414:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;11447:21;11471;11447:45;;11511:6;;;;;;;;;;;:57;;;11583:12;11610:1;11626:4;11653;11673:15;11511:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11710:17;11730:40;11756:13;11730:21;:25;;:40;;;;:::i;:::-;11710:60;;11781:19;11803:33;11816:19;11833:1;11816:12;;:16;;:19;;;;:::i;:::-;11803:8;;:12;;:33;;;;:::i;:::-;11781:55;;11847:26;11876:51;11925:1;11876:44;11908:11;11876:27;11890:12;;11876:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;11847:80;;11938:23;11964:44;11996:11;11964:27;11978:12;;11964:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;11938:70;;12028:14;12079:17;;;;;;;;;;;12071:31;;12110:15;12132:5;12071:71;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12027:115;;;12161:9;12153:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12216:49;12229:15;12246:18;12216:12;:49::i;:::-;11073:1200;;;;;;;;;;6647:5:::0;6638:6;;:14;;;;;;;;;;;;;;;;;;11035:1238::o;13090:90::-;13133:4;13171:1;13157:10;;:15;;13150:22;;13090:90;:::o;13194:71::-;13245:12;13232:10;:25;;;;13194:71::o;10329:114::-;10391:4;10416:11;:19;10428:6;10416:19;;;;;;;;;;;;;;;;;;;;;;;;;10415:20;10408:27;;10329:114;;;:::o;10465:345::-;10532:7;10552:17;10572:40;10597:14;;10572:20;10583:8;;10572:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;10552:60;;10658:39;10687:9;10658;:24;10676:4;10658:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10631:9;:24;10649:4;10631:24;;;;;;;;;;;;;;;:66;;;;10738:4;10713:42;;10722:6;10713:42;;;10745:9;10713:42;;;;;;:::i;:::-;;;;;;;;10781:21;10792:9;10781:6;:10;;:21;;;;:::i;:::-;10774:28;;;10465:345;;;;:::o;1154:::-;1240:7;1339:1;1335;:5;1342:12;1327:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1366:9;1382:1;1378;:5;;;;:::i;:::-;1366:17;;1490:1;1483:8;;;1154:345;;;;;:::o;12287:408::-;12381:1;12367:11;:15;12364:324;;;12398:6;;;;;;;;;;;:22;;;12428:9;12465:4;12489:11;12519:1;12539;12567:4;12591:15;12398:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12641:35;12653:9;12664:11;12641:35;;;;;;;:::i;:::-;;;;;;;;12364:324;12287:408;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;152:155;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;313:133;;;;:::o;452:139::-;498:5;536:6;523:20;514:29;;552:33;579:5;552:33;:::i;:::-;452:139;;;;:::o;597:143::-;654:5;685:6;679:13;670:22;;701:33;728:5;701:33;:::i;:::-;597:143;;;;:::o;746:329::-;805:6;854:2;842:9;833:7;829:23;825:32;822:119;;;860:79;;:::i;:::-;822:119;980:1;1005:53;1050:7;1041:6;1030:9;1026:22;1005:53;:::i;:::-;995:63;;951:117;746:329;;;;:::o;1081:345::-;1148:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:119;;;1203:79;;:::i;:::-;1165:119;1323:1;1348:61;1401:7;1392:6;1381:9;1377:22;1348:61;:::i;:::-;1338:71;;1294:125;1081:345;;;;:::o;1432:474::-;1500:6;1508;1557:2;1545:9;1536:7;1532:23;1528:32;1525:119;;;1563:79;;:::i;:::-;1525:119;1683:1;1708:53;1753:7;1744:6;1733:9;1729:22;1708:53;:::i;:::-;1698:63;;1654:117;1810:2;1836:53;1881:7;1872:6;1861:9;1857:22;1836:53;:::i;:::-;1826:63;;1781:118;1432:474;;;;;:::o;1912:619::-;1989:6;1997;2005;2054:2;2042:9;2033:7;2029:23;2025:32;2022:119;;;2060:79;;:::i;:::-;2022:119;2180:1;2205:53;2250:7;2241:6;2230:9;2226:22;2205:53;:::i;:::-;2195:63;;2151:117;2307:2;2333:53;2378:7;2369:6;2358:9;2354:22;2333:53;:::i;:::-;2323:63;;2278:118;2435:2;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;:::i;:::-;2451:63;;2406:118;1912:619;;;;;:::o;2537:468::-;2602:6;2610;2659:2;2647:9;2638:7;2634:23;2630:32;2627:119;;;2665:79;;:::i;:::-;2627:119;2785:1;2810:53;2855:7;2846:6;2835:9;2831:22;2810:53;:::i;:::-;2800:63;;2756:117;2912:2;2938:50;2980:7;2971:6;2960:9;2956:22;2938:50;:::i;:::-;2928:60;;2883:115;2537:468;;;;;:::o;3011:474::-;3079:6;3087;3136:2;3124:9;3115:7;3111:23;3107:32;3104:119;;;3142:79;;:::i;:::-;3104:119;3262:1;3287:53;3332:7;3323:6;3312:9;3308:22;3287:53;:::i;:::-;3277:63;;3233:117;3389:2;3415:53;3460:7;3451:6;3440:9;3436:22;3415:53;:::i;:::-;3405:63;;3360:118;3011:474;;;;;:::o;3491:468::-;3556:6;3564;3613:2;3601:9;3592:7;3588:23;3584:32;3581:119;;;3619:79;;:::i;:::-;3581:119;3739:1;3764:50;3806:7;3797:6;3786:9;3782:22;3764:50;:::i;:::-;3754:60;;3710:114;3863:2;3889:53;3934:7;3925:6;3914:9;3910:22;3889:53;:::i;:::-;3879:63;;3834:118;3491:468;;;;;:::o;3965:329::-;4024:6;4073:2;4061:9;4052:7;4048:23;4044:32;4041:119;;;4079:79;;:::i;:::-;4041:119;4199:1;4224:53;4269:7;4260:6;4249:9;4245:22;4224:53;:::i;:::-;4214:63;;4170:117;3965:329;;;;:::o;4300:474::-;4368:6;4376;4425:2;4413:9;4404:7;4400:23;4396:32;4393:119;;;4431:79;;:::i;:::-;4393:119;4551:1;4576:53;4621:7;4612:6;4601:9;4597:22;4576:53;:::i;:::-;4566:63;;4522:117;4678:2;4704:53;4749:7;4740:6;4729:9;4725:22;4704:53;:::i;:::-;4694:63;;4649:118;4300:474;;;;;:::o;4780:619::-;4857:6;4865;4873;4922:2;4910:9;4901:7;4897:23;4893:32;4890:119;;;4928:79;;:::i;:::-;4890:119;5048:1;5073:53;5118:7;5109:6;5098:9;5094:22;5073:53;:::i;:::-;5063:63;;5019:117;5175:2;5201:53;5246:7;5237:6;5226:9;5222:22;5201:53;:::i;:::-;5191:63;;5146:118;5303:2;5329:53;5374:7;5365:6;5354:9;5350:22;5329:53;:::i;:::-;5319:63;;5274:118;4780:619;;;;;:::o;5405:663::-;5493:6;5501;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:64;5765:7;5756:6;5745:9;5741:22;5709:64;:::i;:::-;5699:74;;5655:128;5822:2;5848:64;5904:7;5895:6;5884:9;5880:22;5848:64;:::i;:::-;5838:74;;5793:129;5961:2;5987:64;6043:7;6034:6;6023:9;6019:22;5987:64;:::i;:::-;5977:74;;5932:129;5405:663;;;;;:::o;6074:179::-;6143:10;6164:46;6206:3;6198:6;6164:46;:::i;:::-;6242:4;6237:3;6233:14;6219:28;;6074:179;;;;:::o;6259:147::-;6354:45;6393:5;6354:45;:::i;:::-;6349:3;6342:58;6259:147;;:::o;6412:108::-;6489:24;6507:5;6489:24;:::i;:::-;6484:3;6477:37;6412:108;;:::o;6526:118::-;6613:24;6631:5;6613:24;:::i;:::-;6608:3;6601:37;6526:118;;:::o;6680:732::-;6799:3;6828:54;6876:5;6828:54;:::i;:::-;6898:86;6977:6;6972:3;6898:86;:::i;:::-;6891:93;;7008:56;7058:5;7008:56;:::i;:::-;7087:7;7118:1;7103:284;7128:6;7125:1;7122:13;7103:284;;;7204:6;7198:13;7231:63;7290:3;7275:13;7231:63;:::i;:::-;7224:70;;7317:60;7370:6;7317:60;:::i;:::-;7307:70;;7163:224;7150:1;7147;7143:9;7138:14;;7103:284;;;7107:14;7403:3;7396:10;;6804:608;;;6680:732;;;;:::o;7418:109::-;7499:21;7514:5;7499:21;:::i;:::-;7494:3;7487:34;7418:109;;:::o;7533:167::-;7638:55;7687:5;7638:55;:::i;:::-;7633:3;7626:68;7533:167;;:::o;7706:147::-;7801:45;7840:5;7801:45;:::i;:::-;7796:3;7789:58;7706:147;;:::o;7859:364::-;7947:3;7975:39;8008:5;7975:39;:::i;:::-;8030:71;8094:6;8089:3;8030:71;:::i;:::-;8023:78;;8110:52;8155:6;8150:3;8143:4;8136:5;8132:16;8110:52;:::i;:::-;8187:29;8209:6;8187:29;:::i;:::-;8182:3;8178:39;8171:46;;7951:272;7859:364;;;;:::o;8229:366::-;8371:3;8392:67;8456:2;8451:3;8392:67;:::i;:::-;8385:74;;8468:93;8557:3;8468:93;:::i;:::-;8586:2;8581:3;8577:12;8570:19;;8229:366;;;:::o;8601:::-;8743:3;8764:67;8828:2;8823:3;8764:67;:::i;:::-;8757:74;;8840:93;8929:3;8840:93;:::i;:::-;8958:2;8953:3;8949:12;8942:19;;8601:366;;;:::o;8973:::-;9115:3;9136:67;9200:2;9195:3;9136:67;:::i;:::-;9129:74;;9212:93;9301:3;9212:93;:::i;:::-;9330:2;9325:3;9321:12;9314:19;;8973:366;;;:::o;9345:::-;9487:3;9508:67;9572:2;9567:3;9508:67;:::i;:::-;9501:74;;9584:93;9673:3;9584:93;:::i;:::-;9702:2;9697:3;9693:12;9686:19;;9345:366;;;:::o;9717:::-;9859:3;9880:67;9944:2;9939:3;9880:67;:::i;:::-;9873:74;;9956:93;10045:3;9956:93;:::i;:::-;10074:2;10069:3;10065:12;10058:19;;9717:366;;;:::o;10089:365::-;10231:3;10252:66;10316:1;10311:3;10252:66;:::i;:::-;10245:73;;10327:93;10416:3;10327:93;:::i;:::-;10445:2;10440:3;10436:12;10429:19;;10089:365;;;:::o;10460:398::-;10619:3;10640:83;10721:1;10716:3;10640:83;:::i;:::-;10633:90;;10732:93;10821:3;10732:93;:::i;:::-;10850:1;10845:3;10841:11;10834:18;;10460:398;;;:::o;10864:366::-;11006:3;11027:67;11091:2;11086:3;11027:67;:::i;:::-;11020:74;;11103:93;11192:3;11103:93;:::i;:::-;11221:2;11216:3;11212:12;11205:19;;10864:366;;;:::o;11236:118::-;11323:24;11341:5;11323:24;:::i;:::-;11318:3;11311:37;11236:118;;:::o;11360:112::-;11443:22;11459:5;11443:22;:::i;:::-;11438:3;11431:35;11360:112;;:::o;11478:379::-;11662:3;11684:147;11827:3;11684:147;:::i;:::-;11677:154;;11848:3;11841:10;;11478:379;;;:::o;11863:222::-;11956:4;11994:2;11983:9;11979:18;11971:26;;12007:71;12075:1;12064:9;12060:17;12051:6;12007:71;:::i;:::-;11863:222;;;;:::o;12091:238::-;12192:4;12230:2;12219:9;12215:18;12207:26;;12243:79;12319:1;12308:9;12304:17;12295:6;12243:79;:::i;:::-;12091:238;;;;:::o;12335:807::-;12584:4;12622:3;12611:9;12607:19;12599:27;;12636:71;12704:1;12693:9;12689:17;12680:6;12636:71;:::i;:::-;12717:72;12785:2;12774:9;12770:18;12761:6;12717:72;:::i;:::-;12799:80;12875:2;12864:9;12860:18;12851:6;12799:80;:::i;:::-;12889;12965:2;12954:9;12950:18;12941:6;12889:80;:::i;:::-;12979:73;13047:3;13036:9;13032:19;13023:6;12979:73;:::i;:::-;13062;13130:3;13119:9;13115:19;13106:6;13062:73;:::i;:::-;12335:807;;;;;;;;;:::o;13148:210::-;13235:4;13273:2;13262:9;13258:18;13250:26;;13286:65;13348:1;13337:9;13333:17;13324:6;13286:65;:::i;:::-;13148:210;;;;:::o;13364:258::-;13475:4;13513:2;13502:9;13498:18;13490:26;;13526:89;13612:1;13601:9;13597:17;13588:6;13526:89;:::i;:::-;13364:258;;;;:::o;13628:313::-;13741:4;13779:2;13768:9;13764:18;13756:26;;13828:9;13822:4;13818:20;13814:1;13803:9;13799:17;13792:47;13856:78;13929:4;13920:6;13856:78;:::i;:::-;13848:86;;13628:313;;;;:::o;13947:419::-;14113:4;14151:2;14140:9;14136:18;14128:26;;14200:9;14194:4;14190:20;14186:1;14175:9;14171:17;14164:47;14228:131;14354:4;14228:131;:::i;:::-;14220:139;;13947:419;;;:::o;14372:::-;14538:4;14576:2;14565:9;14561:18;14553:26;;14625:9;14619:4;14615:20;14611:1;14600:9;14596:17;14589:47;14653:131;14779:4;14653:131;:::i;:::-;14645:139;;14372:419;;;:::o;14797:::-;14963:4;15001:2;14990:9;14986:18;14978:26;;15050:9;15044:4;15040:20;15036:1;15025:9;15021:17;15014:47;15078:131;15204:4;15078:131;:::i;:::-;15070:139;;14797:419;;;:::o;15222:::-;15388:4;15426:2;15415:9;15411:18;15403:26;;15475:9;15469:4;15465:20;15461:1;15450:9;15446:17;15439:47;15503:131;15629:4;15503:131;:::i;:::-;15495:139;;15222:419;;;:::o;15647:::-;15813:4;15851:2;15840:9;15836:18;15828:26;;15900:9;15894:4;15890:20;15886:1;15875:9;15871:17;15864:47;15928:131;16054:4;15928:131;:::i;:::-;15920:139;;15647:419;;;:::o;16072:::-;16238:4;16276:2;16265:9;16261:18;16253:26;;16325:9;16319:4;16315:20;16311:1;16300:9;16296:17;16289:47;16353:131;16479:4;16353:131;:::i;:::-;16345:139;;16072:419;;;:::o;16497:::-;16663:4;16701:2;16690:9;16686:18;16678:26;;16750:9;16744:4;16740:20;16736:1;16725:9;16721:17;16714:47;16778:131;16904:4;16778:131;:::i;:::-;16770:139;;16497:419;;;:::o;16922:222::-;17015:4;17053:2;17042:9;17038:18;17030:26;;17066:71;17134:1;17123:9;17119:17;17110:6;17066:71;:::i;:::-;16922:222;;;;:::o;17150:831::-;17413:4;17451:3;17440:9;17436:19;17428:27;;17465:71;17533:1;17522:9;17518:17;17509:6;17465:71;:::i;:::-;17546:80;17622:2;17611:9;17607:18;17598:6;17546:80;:::i;:::-;17673:9;17667:4;17663:20;17658:2;17647:9;17643:18;17636:48;17701:108;17804:4;17795:6;17701:108;:::i;:::-;17693:116;;17819:72;17887:2;17876:9;17872:18;17863:6;17819:72;:::i;:::-;17901:73;17969:3;17958:9;17954:19;17945:6;17901:73;:::i;:::-;17150:831;;;;;;;;:::o;17987:332::-;18108:4;18146:2;18135:9;18131:18;18123:26;;18159:71;18227:1;18216:9;18212:17;18203:6;18159:71;:::i;:::-;18240:72;18308:2;18297:9;18293:18;18284:6;18240:72;:::i;:::-;17987:332;;;;;:::o;18325:214::-;18414:4;18452:2;18441:9;18437:18;18429:26;;18465:67;18529:1;18518:9;18514:17;18505:6;18465:67;:::i;:::-;18325:214;;;;:::o;18626:132::-;18693:4;18716:3;18708:11;;18746:4;18741:3;18737:14;18729:22;;18626:132;;;:::o;18764:114::-;18831:6;18865:5;18859:12;18849:22;;18764:114;;;:::o;18884:99::-;18936:6;18970:5;18964:12;18954:22;;18884:99;;;:::o;18989:113::-;19059:4;19091;19086:3;19082:14;19074:22;;18989:113;;;:::o;19108:184::-;19207:11;19241:6;19236:3;19229:19;19281:4;19276:3;19272:14;19257:29;;19108:184;;;;:::o;19298:147::-;19399:11;19436:3;19421:18;;19298:147;;;;:::o;19451:169::-;19535:11;19569:6;19564:3;19557:19;19609:4;19604:3;19600:14;19585:29;;19451:169;;;;:::o;19626:305::-;19666:3;19685:20;19703:1;19685:20;:::i;:::-;19680:25;;19719:20;19737:1;19719:20;:::i;:::-;19714:25;;19873:1;19805:66;19801:74;19798:1;19795:81;19792:107;;;19879:18;;:::i;:::-;19792:107;19923:1;19920;19916:9;19909:16;;19626:305;;;;:::o;19937:185::-;19977:1;19994:20;20012:1;19994:20;:::i;:::-;19989:25;;20028:20;20046:1;20028:20;:::i;:::-;20023:25;;20067:1;20057:35;;20072:18;;:::i;:::-;20057:35;20114:1;20111;20107:9;20102:14;;19937:185;;;;:::o;20128:348::-;20168:7;20191:20;20209:1;20191:20;:::i;:::-;20186:25;;20225:20;20243:1;20225:20;:::i;:::-;20220:25;;20413:1;20345:66;20341:74;20338:1;20335:81;20330:1;20323:9;20316:17;20312:105;20309:131;;;20420:18;;:::i;:::-;20309:131;20468:1;20465;20461:9;20450:20;;20128:348;;;;:::o;20482:191::-;20522:4;20542:20;20560:1;20542:20;:::i;:::-;20537:25;;20576:20;20594:1;20576:20;:::i;:::-;20571:25;;20615:1;20612;20609:8;20606:34;;;20620:18;;:::i;:::-;20606:34;20665:1;20662;20658:9;20650:17;;20482:191;;;;:::o;20679:96::-;20716:7;20745:24;20763:5;20745:24;:::i;:::-;20734:35;;20679:96;;;:::o;20781:104::-;20826:7;20855:24;20873:5;20855:24;:::i;:::-;20844:35;;20781:104;;;:::o;20891:90::-;20925:7;20968:5;20961:13;20954:21;20943:32;;20891:90;;;:::o;20987:126::-;21024:7;21064:42;21057:5;21053:54;21042:65;;20987:126;;;:::o;21119:77::-;21156:7;21185:5;21174:16;;21119:77;;;:::o;21202:86::-;21237:7;21277:4;21270:5;21266:16;21255:27;;21202:86;;;:::o;21294:134::-;21352:9;21385:37;21416:5;21385:37;:::i;:::-;21372:50;;21294:134;;;:::o;21434:144::-;21502:9;21535:37;21566:5;21535:37;:::i;:::-;21522:50;;21434:144;;;:::o;21584:121::-;21642:9;21675:24;21693:5;21675:24;:::i;:::-;21662:37;;21584:121;;;:::o;21711:126::-;21761:9;21794:37;21825:5;21794:37;:::i;:::-;21781:50;;21711:126;;;:::o;21843:113::-;21893:9;21926:24;21944:5;21926:24;:::i;:::-;21913:37;;21843:113;;;:::o;21962:307::-;22030:1;22040:113;22054:6;22051:1;22048:13;22040:113;;;22139:1;22134:3;22130:11;22124:18;22120:1;22115:3;22111:11;22104:39;22076:2;22073:1;22069:10;22064:15;;22040:113;;;22171:6;22168:1;22165:13;22162:101;;;22251:1;22242:6;22237:3;22233:16;22226:27;22162:101;22011:258;21962:307;;;:::o;22275:180::-;22323:77;22320:1;22313:88;22420:4;22417:1;22410:15;22444:4;22441:1;22434:15;22461:180;22509:77;22506:1;22499:88;22606:4;22603:1;22596:15;22630:4;22627:1;22620:15;22647:180;22695:77;22692:1;22685:88;22792:4;22789:1;22782:15;22816:4;22813:1;22806:15;22833:180;22881:77;22878:1;22871:88;22978:4;22975:1;22968:15;23002:4;22999:1;22992:15;23142:117;23251:1;23248;23241:12;23265:102;23306:6;23357:2;23353:7;23348:2;23341:5;23337:14;23333:28;23323:38;;23265:102;;;:::o;23373:224::-;23513:34;23509:1;23501:6;23497:14;23490:58;23582:7;23577:2;23569:6;23565:15;23558:32;23373:224;:::o;23603:167::-;23743:19;23739:1;23731:6;23727:14;23720:43;23603:167;:::o;23776:177::-;23916:29;23912:1;23904:6;23900:14;23893:53;23776:177;:::o;23959:180::-;24099:32;24095:1;24087:6;24083:14;24076:56;23959:180;:::o;24145:220::-;24285:34;24281:1;24273:6;24269:14;24262:58;24354:3;24349:2;24341:6;24337:15;24330:28;24145:220;:::o;24371:156::-;24511:8;24507:1;24499:6;24495:14;24488:32;24371:156;:::o;24533:114::-;;:::o;24653:161::-;24793:13;24789:1;24781:6;24777:14;24770:37;24653:161;:::o;24820:122::-;24893:24;24911:5;24893:24;:::i;:::-;24886:5;24883:35;24873:63;;24932:1;24929;24922:12;24873:63;24820:122;:::o;24948:138::-;25029:32;25055:5;25029:32;:::i;:::-;25022:5;25019:43;25009:71;;25076:1;25073;25066:12;25009:71;24948:138;:::o;25092:116::-;25162:21;25177:5;25162:21;:::i;:::-;25155:5;25152:32;25142:60;;25198:1;25195;25188:12;25142:60;25092:116;:::o;25214:122::-;25287:24;25305:5;25287:24;:::i;:::-;25280:5;25277:35;25267:63;;25326:1;25323;25316:12;25267:63;25214:122;:::o

Swarm Source

ipfs://9074aa22ed0ddf5368d12de27f67a4049f92e31986f67db9049301f0aa0c863a
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.