ETH Price: $3,089.37 (+0.03%)
Gas: 5 Gwei

Token

CZ Coin (CZ)
 

Overview

Max Total Supply

1,000,000,000 CZ

Holders

70

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,999,999.400000000000157287 CZ

Value
$0.00
0xe905df561bf8cd4043bcc0fbe2009a29471c3218
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:
CzCoin

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-28
*/

pragma solidity ^0.8.12;
// SPDX-License-Identifier: Unlicensed

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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address _owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Auth {
    address internal owner;
    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;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

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

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

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

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

    function WETH() external pure returns (address);

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

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

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

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

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

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

    address public auliquidityRatioReceiver =
        0x883046D4B44ee1005A614aCdf9B0C3063cC4327d;
    address public marketingFeeReceiver =
        0x17a16Ef8085fcc13804bA9AfFf5014ddecc5a418;

    string constant _name = "CZ Coin";
    string constant _symbol = "CZ";
    uint8 constant _decimals = 18;
    uint8 constant _zeros = 9;

    uint8 constant _maxTx = 10;
    uint8 constant _maxWallet = 20;

    uint8 constant _threshpct = 1;
    uint256 _totalSupply = 1 * 10**_zeros * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(_maxTx).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(_maxWallet).div(1000);
    uint256 public swapThreshold = _totalSupply.mul(_threshpct).div(100000);

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

    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;
    mapping(address => bool) isWalletLimitExempt;
    mapping(address => bool) public _isBlacklisted;

    //FEE % TO TAKE FOR BUY OR SELL
    uint256 public sellFee = 80;
    uint256 public buyFee = 40;

    //HOW FEE IS DIVIDED WHILE SWAPPING THE TOKENS
    // 1/1 = 50% liquidity 50% Marketing
    // 1/4 = 25% liquidity 75% Marketing
    // etc
    uint256 public liquidityRatio = 1;
    uint256 public marketingRatio = 4;
    uint256 public feeRatio = marketingRatio + liquidityRatio;
    uint256 public feeDenominator = 100;

    IDEXRouter public Irouter02;
    address public liqPair;

    bool public tradingLive = false;
    uint256 private launchedAt;
    uint256 private deadBlocks;

    bool public limitsEnabled = true;
    bool public maxTxOnBuys = true;
    bool public maxTxOnSells = true;
    bool public swapEnabled = true;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() Auth(msg.sender) {
        Irouter02 = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        liqPair = IDEXFactory(Irouter02.factory()).createPair(
            Irouter02.WETH(),
            address(this)
        );

        _allowances[address(this)][address(Irouter02)] = type(uint256).max;
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[liqPair] = true;

        _approve(owner, address(Irouter02), type(uint256).max);
        _approve(address(this), address(Irouter02), type(uint256).max);

        

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

    receive() external payable {}

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function decimals() external pure override returns (uint8) {
        return _decimals;
    }

    function symbol() external pure override returns (string memory) {
        return _symbol;
    }

    function name() external pure override returns (string memory) {
        return _name;
    }

    function getOwner() external view override returns (address) {
        return owner;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function allowance(address holder, address spender)
        external
        view
        override
        returns (uint256)
    {
        return _allowances[holder][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(
        address sender,
        address spender,
        uint256 amount
    ) private {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");
        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    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 from,
        address to,
        uint256 amount
    ) internal returns (bool) {
        require(
            !_isBlacklisted[from] && !_isBlacklisted[to],
            "Blacklisted address"
        );
        if (inSwap) {
            return _basicTransfer(from, to, amount);
        }


        if (!authorizations[from] && !authorizations[to]){
            require(tradingLive, "Trading not open yet");
            if (limitsEnabled) {
                if (!authorizations[from] && !isWalletLimitExempt[to]) {
                    uint256 heldTokens = balanceOf(to);
                    require(
                        (heldTokens + amount) <= _maxWalletToken,
                        "max wallet limit reached"
                    );
                }
                checkAmountTx(from, amount);
            }
        }

        if (shouldSwapBack(from)) {
            swapBack(swapThreshold);
        }

        _balances[from] = _balances[from].sub(amount, "Insufficient Balance");
        uint256 amountReceived = (!shouldTakeFee(from) || !shouldTakeFee(to))
            ? amount
            : takeFee(from, amount);

        _balances[to] = _balances[to].add(amountReceived);
        emit Transfer(from, to, 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 checkAmountTx(address sender, uint256 amount) internal view {
        require(
            amount <= _maxTxAmount || isTxLimitExempt[sender],
            "TX Limit Exceeded"
        );
    }

    function shouldSwapBack(address from) internal view returns (bool) {
        if (
            !inSwap &&
            swapEnabled &&
            !isTxLimitExempt[from] &&
            from != liqPair &&
            _balances[address(this)] >= swapThreshold
        ) {
            return true;
        } else {
            return false;
        }
    }

    function swapbackEdit(bool _enabled) public onlyOwner {
        swapEnabled = _enabled;
    }

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

    function takeFee(address sender, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 _fee;
        if (sender != liqPair) {
            _fee = sellFee;
        } else if (sender == liqPair) {
            _fee = buyFee;
        } else {
            return amount;
        }
        uint256 contractTokens = amount.mul(_fee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        emit Transfer(sender, address(this), contractTokens);
        return amount.sub(contractTokens);
    }

    function swapBack(uint256 amountAsked) internal swapping {
        uint256 amountToLiquify = amountAsked
            .mul(liquidityRatio)
            .div(feeRatio)
            .div(2);
        uint256 amountToSwap = amountAsked.sub(amountToLiquify);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = Irouter02.WETH();
        uint256 balanceBefore = address(this).balance;
        Irouter02.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = feeRatio.sub(liquidityRatio.div(2));
        uint256 amountETHLiquidity = amountETH
            .mul(liquidityRatio)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingRatio).div(
            totalETHFee
        );
        (bool tmpSuccess, ) = payable(marketingFeeReceiver).call{
            value: amountETHMarketing,
            gas: 30000
        }("");
        tmpSuccess = false;
        if (amountToLiquify > 0) {
            Irouter02.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                auliquidityRatioReceiver,
                block.timestamp
            );
        }
    }

    function setLimits(uint256 maxWallPercent, uint256 maxTXPercent)
        external
        onlyOwner
    {
        _maxWalletToken = _totalSupply.mul(maxWallPercent).div(1000);
        _maxTxAmount = _totalSupply.mul(maxTXPercent).div(1000);
    }

    function setSwapThreshold(uint256 _swapThreshold) external onlyOwner {
        require(_swapThreshold < 10, "threshold too high");
        swapThreshold = _totalSupply.mul(_swapThreshold).div(100000);
    }

    function blacklist(address addrs, bool value) external onlyOwner {
        _isBlacklisted[addrs] = value;
    }

    function sweepContingency(uint256 amount) external onlyOwner {
        require(address(this).balance >= amount, "not enought tokens");
        swapBack(amount);
    }

    function clearStuckBalance() external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH);
    }

    function launchCoin() external onlyOwner {
        require(!tradingLive, "already launched");
        launchedAt = block.number;
        tradingLive = true;
    }

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

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

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

    function setFees(
        uint256 _marketingRatio,
        uint256 _liquidityRatio,
        uint256 _sellFee,
        uint256 _buyFee
    ) external authorized {
        sellFee = _sellFee;
        buyFee = _buyFee;
        marketingRatio = _marketingRatio;
        liquidityRatio = _liquidityRatio;
        feeRatio = liquidityRatio.add(marketingRatio);
        require(sellFee < 90 && buyFee < 90, "Fees cannot be more than 90%");
    }

    function setMaxBuySettings(bool _globalTxWatcher) external authorized {
        limitsEnabled = _globalTxWatcher;
    }
}

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":"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":"Irouter02","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"auliquidityRatioReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"address","name":"addrs","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRatio","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":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchCoin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liqPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxOnBuys","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxOnSells","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingRatio","type":"uint256"},{"internalType":"uint256","name":"_liquidityRatio","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_buyFee","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":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"},{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_globalTxWatcher","type":"bool"}],"name":"setMaxBuySettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapThreshold","type":"uint256"}],"name":"setSwapThreshold","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":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"swapbackEdit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","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":[],"name":"tradingLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"}]

608060405273883046d4b44ee1005a614acdf9b0c3063cc4327d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507317a16ef8085fcc13804ba9afff5014ddecc5a418600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000be919062000eb8565b6009600a620000ce919062000eb8565b6001620000dc919062000f09565b620000e8919062000f09565b600455620001266103e862000112600a60ff1660045462000a0d60201b62001a231790919060201c565b62000a9160201b62001a9e1790919060201c565b600555620001646103e862000150601460ff1660045462000a0d60201b62001a231790919060201c565b62000a9160201b62001a9e1790919060201c565b600655620001a3620186a06200018f600160ff1660045462000a0d60201b62001a231790919060201c565b62000a9160201b62001a9e1790919060201c565b6007556050600e556028600f5560016010556004601155601054601154620001cc919062000f6a565b60125560646013556000601560146101000a81548160ff0219169083151502179055506001601860006101000a81548160ff0219169083151502179055506001601860016101000a81548160ff0219169083151502179055506001601860026101000a81548160ff0219169083151502179055506001601860036101000a81548160ff0219169083151502179055503480156200026857600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003eb919062001031565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049a919062001031565b306040518363ffffffff1660e01b8152600401620004ba92919062001074565b6020604051808303816000875af1158015620004da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000500919062001031565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200090260008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000ae360201b60201c565b6200095730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000ae360201b60201c565b600454600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620009ff9190620010b2565b60405180910390a362001308565b60008083141562000a22576000905062000a8b565b6000828462000a32919062000f09565b905082848262000a439190620010fe565b1462000a86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a7d90620011bd565b60405180910390fd5b809150505b92915050565b600062000adb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000cb660201b60201c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000b56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b4d906200122f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000bc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bc0906200122f565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000ca99190620010b2565b60405180910390a3505050565b6000808311829062000d00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cf79190620012e4565b60405180910390fd5b506000838562000d119190620010fe565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000dac5780860481111562000d845762000d8362000d1e565b5b600185161562000d945780820291505b808102905062000da48562000d4d565b945062000d64565b94509492505050565b60008262000dc7576001905062000e9a565b8162000dd7576000905062000e9a565b816001811462000df0576002811462000dfb5762000e31565b600191505062000e9a565b60ff84111562000e105762000e0f62000d1e565b5b8360020a91508482111562000e2a5762000e2962000d1e565b5b5062000e9a565b5060208310610133831016604e8410600b841016171562000e6b5782820a90508381111562000e655762000e6462000d1e565b5b62000e9a565b62000e7a848484600162000d5a565b9250905081840481111562000e945762000e9362000d1e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ec58262000ea1565b915062000ed28362000eab565b925062000f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000db5565b905092915050565b600062000f168262000ea1565b915062000f238362000ea1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f5f5762000f5e62000d1e565b5b828202905092915050565b600062000f778262000ea1565b915062000f848362000ea1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000fbc5762000fbb62000d1e565b5b828201905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ff98262000fcc565b9050919050565b6200100b8162000fec565b81146200101757600080fd5b50565b6000815190506200102b8162001000565b92915050565b6000602082840312156200104a576200104962000fc7565b5b60006200105a848285016200101a565b91505092915050565b6200106e8162000fec565b82525050565b60006040820190506200108b600083018562001063565b6200109a602083018462001063565b9392505050565b620010ac8162000ea1565b82525050565b6000602082019050620010c96000830184620010a1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200110b8262000ea1565b9150620011188362000ea1565b9250826200112b576200112a620010cf565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011a560218362001136565b9150620011b28262001147565b604082019050919050565b60006020820190508181036000830152620011d88162001196565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b60006200121760138362001136565b91506200122482620011df565b602082019050919050565b600060208201905081810360008301526200124a8162001208565b9050919050565b600081519050919050565b60005b838110156200127c5780820151818401526020810190506200125f565b838111156200128c576000848401525b50505050565b6000601f19601f8301169050919050565b6000620012b08262001251565b620012bc818562001136565b9350620012ce8185602086016200125c565b620012d98162001292565b840191505092915050565b60006020820190508181036000830152620013008184620012a3565b905092915050565b613e4480620013186000396000f3fe6080604052600436106102815760003560e01c806378109e541161014f578063c4590d3f116100c1578063e96fada21161007a578063e96fada214610987578063ef97212d146109b2578063f0b37c04146109dd578063f2fde38b14610a06578063f84ba65d14610a2f578063fe9fbb8014610a5857610288565b8063c4590d3f1461088d578063cfd55dda146108b6578063d4208cc1146108df578063dc4b9a4e1461090a578063dd62ed3e14610921578063e7a42de31461095e57610288565b806395d89b411161011357806395d89b411461077d5780639d0014b1146107a8578063a76293ea146107d1578063a83019fa146107fc578063a9059cbb14610827578063b6a5d7de1461086457610288565b806378109e54146106a65780637d1db4a5146106d1578063893d20e8146106fc5780638de4f5ed146107275780638ff35e561461075257610288565b8063313ce567116101f35780635da55668116101ac5780635da556681461059857806361147c54146105c1578063658d4b7f146105ec5780636ddd1713146106155780636fcba3771461064057806370a082311461066957610288565b8063313ce567146104ac5780633582ad23146104d7578063364333f414610502578063404e51291461051957806341744dd414610542578063470624021461056d57610288565b806318160ddd1161024557806318160ddd146103765780631cdd3be3146103a15780632198cf6c146103de57806323b872dd146104075780632b14ca56146104445780632f54bf6e1461046f57610288565b80630445b6671461028d57806306fdde03146102b8578063095ea7b3146102e357806311704f5214610320578063180b0d7e1461034b57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610a95565b6040516102af9190612e6d565b60405180910390f35b3480156102c457600080fd5b506102cd610a9b565b6040516102da9190612f21565b60405180910390f35b3480156102ef57600080fd5b5061030a60048036038101906103059190612fd2565b610ad8565b604051610317919061302d565b60405180910390f35b34801561032c57600080fd5b50610335610aef565b604051610342919061302d565b60405180910390f35b34801561035757600080fd5b50610360610b02565b60405161036d9190612e6d565b60405180910390f35b34801561038257600080fd5b5061038b610b08565b6040516103989190612e6d565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190613048565b610b12565b6040516103d5919061302d565b60405180910390f35b3480156103ea57600080fd5b50610405600480360381019061040091906130a1565b610b32565b005b34801561041357600080fd5b5061042e600480360381019061042991906130e1565b610bd5565b60405161043b919061302d565b60405180910390f35b34801561045057600080fd5b50610459610dd5565b6040516104669190612e6d565b60405180910390f35b34801561047b57600080fd5b5061049660048036038101906104919190613048565b610ddb565b6040516104a3919061302d565b60405180910390f35b3480156104b857600080fd5b506104c1610e34565b6040516104ce9190613150565b60405180910390f35b3480156104e357600080fd5b506104ec610e3d565b6040516104f9919061302d565b60405180910390f35b34801561050e57600080fd5b50610517610e50565b005b34801561052557600080fd5b50610540600480360381019061053b91906130a1565b610ee7565b005b34801561054e57600080fd5b50610557610f8a565b6040516105649190612e6d565b60405180910390f35b34801561057957600080fd5b50610582610f90565b60405161058f9190612e6d565b60405180910390f35b3480156105a457600080fd5b506105bf60048036038101906105ba919061316b565b610f96565b005b3480156105cd57600080fd5b506105d6610ffb565b6040516105e391906131a7565b60405180910390f35b3480156105f857600080fd5b50610613600480360381019061060e91906130a1565b611021565b005b34801561062157600080fd5b5061062a6110c4565b604051610637919061302d565b60405180910390f35b34801561064c57600080fd5b50610667600480360381019061066291906131c2565b6110d7565b005b34801561067557600080fd5b50610690600480360381019061068b9190613048565b6111b1565b60405161069d9190612e6d565b60405180910390f35b3480156106b257600080fd5b506106bb6111fa565b6040516106c89190612e6d565b60405180910390f35b3480156106dd57600080fd5b506106e6611200565b6040516106f39190612e6d565b60405180910390f35b34801561070857600080fd5b50610711611206565b60405161071e91906131a7565b60405180910390f35b34801561073357600080fd5b5061073c61122f565b60405161074991906131a7565b60405180910390f35b34801561075e57600080fd5b50610767611255565b604051610774919061302d565b60405180910390f35b34801561078957600080fd5b50610792611268565b60405161079f9190612f21565b60405180910390f35b3480156107b457600080fd5b506107cf60048036038101906107ca9190613229565b6112a5565b005b3480156107dd57600080fd5b506107e6611363565b6040516107f391906132b5565b60405180910390f35b34801561080857600080fd5b50610811611389565b60405161081e9190612e6d565b60405180910390f35b34801561083357600080fd5b5061084e60048036038101906108499190612fd2565b61138f565b60405161085b919061302d565b60405180910390f35b34801561087057600080fd5b5061088b60048036038101906108869190613048565b6113a4565b005b34801561089957600080fd5b506108b460048036038101906108af91906132d0565b611446565b005b3480156108c257600080fd5b506108dd60048036038101906108d89190613229565b6114f0565b005b3480156108eb57600080fd5b506108f4611587565b604051610901919061302d565b60405180910390f35b34801561091657600080fd5b5061091f61159a565b005b34801561092d57600080fd5b5061094860048036038101906109439190613310565b611656565b6040516109559190612e6d565b60405180910390f35b34801561096a57600080fd5b506109856004803603810190610980919061316b565b6116dd565b005b34801561099357600080fd5b5061099c611742565b6040516109a991906131a7565b60405180910390f35b3480156109be57600080fd5b506109c7611768565b6040516109d49190612e6d565b60405180910390f35b3480156109e957600080fd5b50610a0460048036038101906109ff9190613048565b61176e565b005b348015610a1257600080fd5b50610a2d6004803603810190610a28919061338e565b611811565b005b348015610a3b57600080fd5b50610a566004803603810190610a5191906130a1565b61192a565b005b348015610a6457600080fd5b50610a7f6004803603810190610a7a9190613048565b6119cd565b604051610a8c919061302d565b60405180910390f35b60075481565b60606040518060400160405280600781526020017f435a20436f696e00000000000000000000000000000000000000000000000000815250905090565b6000610ae5338484611ae8565b6001905092915050565b601560149054906101000a900460ff1681565b60135481565b6000600454905090565b600d6020528060005260406000206000915054906101000a900460ff1681565b610b3b336119cd565b610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7190613407565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dc157610d40826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb39092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dcc848484611d17565b90509392505050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601860009054906101000a900460ff1681565b610e5933610ddb565b610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f90613473565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ee3573d6000803e3d6000fd5b5050565b610ef033610ddb565b610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2690613473565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b600f5481565b610f9f33610ddb565b610fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd590613473565b60405180910390fd5b80601860036101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61102a336119cd565b611069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106090613407565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860039054906101000a900460ff1681565b6110e0336119cd565b61111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111690613407565b60405180910390fd5b81600e8190555080600f81905550836011819055508260108190555061115260115460105461226590919063ffffffff16565b601281905550605a600e5410801561116c5750605a600f54105b6111ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a2906134df565b60405180910390fd5b50505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860019054906101000a900460ff1681565b60606040518060400160405280600281526020017f435a000000000000000000000000000000000000000000000000000000000000815250905090565b6112ae33610ddb565b6112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490613473565b60405180910390fd5b600a8110611330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113279061354b565b60405180910390fd5b61135a620186a061134c83600454611a2390919063ffffffff16565b611a9e90919063ffffffff16565b60078190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b600061139c338484611d17565b905092915050565b6113ad33610ddb565b6113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390613473565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61144f33610ddb565b61148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590613473565b60405180910390fd5b6114b76103e86114a984600454611a2390919063ffffffff16565b611a9e90919063ffffffff16565b6006819055506114e66103e86114d883600454611a2390919063ffffffff16565b611a9e90919063ffffffff16565b6005819055505050565b6114f933610ddb565b611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152f90613473565b60405180910390fd5b8047101561157b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611572906135b7565b60405180910390fd5b611584816122c3565b50565b601860029054906101000a900460ff1681565b6115a333610ddb565b6115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d990613473565b60405180910390fd5b601560149054906101000a900460ff1615611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990613623565b60405180910390fd5b436016819055506001601560146101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116e6336119cd565b611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c90613407565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b61177733610ddb565b6117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad90613473565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61181a33610ddb565b611859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185090613473565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161191f9190613664565b60405180910390a150565b611933336119cd565b611972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196990613407565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080831415611a365760009050611a98565b60008284611a4491906136ae565b9050828482611a539190613737565b14611a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8a906137da565b60405180910390fd5b809150505b92915050565b6000611ae083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612791565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4f90613846565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90613846565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ca69190612e6d565b60405180910390a3505050565b6000838311158290611cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf29190612f21565b60405180910390fd5b5060008385611d0a9190613866565b9050809150509392505050565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dbd5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df3906138e6565b60405180910390fd5b601860049054906101000a900460ff1615611e2357611e1c8484846127f4565b905061225e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ec75750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561204457601560149054906101000a900460ff16611f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1290613952565b60405180910390fd5b601860009054906101000a900460ff161561204357600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fd45750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612038576000611fe4846111b1565b90506006548382611ff59190613972565b1115612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d90613a14565b60405180910390fd5b505b61204284836129c7565b5b5b61204d84612a64565b1561205e5761205d6007546122c3565b5b6120e7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb39092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061213585612ba4565b1580612147575061214584612ba4565b155b61215a576121558584612bfb565b61215c565b825b90506121b081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226590919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122509190612e6d565b60405180910390a360019150505b9392505050565b60008082846122749190613972565b9050838110156122b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b090613a80565b60405180910390fd5b8091505092915050565b6001601860046101000a81548160ff021916908315150217905550600061231c600261230e60125461230060105487611a2390919063ffffffff16565b611a9e90919063ffffffff16565b611a9e90919063ffffffff16565b905060006123338284612e0a90919063ffffffff16565b90506000600267ffffffffffffffff81111561235257612351613aa0565b5b6040519080825280602002602001820160405280156123805781602001602082028036833780820191505090505b509050308160008151811061239857612397613acf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561243f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124639190613b13565b8160018151811061247757612476613acf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161251a959493929190613c39565b600060405180830381600087803b15801561253457600080fd5b505af1158015612548573d6000803e3d6000fd5b5050505060006125618247612e0a90919063ffffffff16565b9050600061258f61257e6002601054611a9e90919063ffffffff16565b601254612e0a90919063ffffffff16565b905060006125cd60026125bf846125b160105488611a2390919063ffffffff16565b611a9e90919063ffffffff16565b611a9e90919063ffffffff16565b905060006125f8836125ea60115487611a2390919063ffffffff16565b611a9e90919063ffffffff16565b90506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161264690613cc4565b600060405180830381858888f193505050503d8060008114612684576040519150601f19603f3d011682016040523d82523d6000602084013e612689565b606091505b5050905060009050600089111561276a57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161272396959493929190613cd9565b60606040518083038185885af1158015612741573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127669190613d4f565b5050505b5050505050505050506000601860046101000a81548160ff02191690831515021790555050565b600080831182906127d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cf9190612f21565b60405180910390fd5b50600083856127e79190613737565b9050809150509392505050565b600061287f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb39092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226590919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129b49190612e6d565b60405180910390a3600190509392505050565b60055481111580612a215750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5790613dee565b60405180910390fd5b5050565b6000601860049054906101000a900460ff16158015612a8f5750601860039054906101000a900460ff165b8015612ae55750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b3f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b8c5750600754600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612b9a5760019050612b9f565b600090505b919050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612c5d57600e549050612cc7565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612cbd57600f549050612cc6565b82915050612e04565b5b6000612cf0601354612ce28487611a2390919063ffffffff16565b611a9e90919063ffffffff16565b9050612d4481600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226590919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612de49190612e6d565b60405180910390a3612dff8185612e0a90919063ffffffff16565b925050505b92915050565b6000612e4c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cb3565b905092915050565b6000819050919050565b612e6781612e54565b82525050565b6000602082019050612e826000830184612e5e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ec2578082015181840152602081019050612ea7565b83811115612ed1576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ef382612e88565b612efd8185612e93565b9350612f0d818560208601612ea4565b612f1681612ed7565b840191505092915050565b60006020820190508181036000830152612f3b8184612ee8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f7382612f48565b9050919050565b612f8381612f68565b8114612f8e57600080fd5b50565b600081359050612fa081612f7a565b92915050565b612faf81612e54565b8114612fba57600080fd5b50565b600081359050612fcc81612fa6565b92915050565b60008060408385031215612fe957612fe8612f43565b5b6000612ff785828601612f91565b925050602061300885828601612fbd565b9150509250929050565b60008115159050919050565b61302781613012565b82525050565b6000602082019050613042600083018461301e565b92915050565b60006020828403121561305e5761305d612f43565b5b600061306c84828501612f91565b91505092915050565b61307e81613012565b811461308957600080fd5b50565b60008135905061309b81613075565b92915050565b600080604083850312156130b8576130b7612f43565b5b60006130c685828601612f91565b92505060206130d78582860161308c565b9150509250929050565b6000806000606084860312156130fa576130f9612f43565b5b600061310886828701612f91565b935050602061311986828701612f91565b925050604061312a86828701612fbd565b9150509250925092565b600060ff82169050919050565b61314a81613134565b82525050565b60006020820190506131656000830184613141565b92915050565b60006020828403121561318157613180612f43565b5b600061318f8482850161308c565b91505092915050565b6131a181612f68565b82525050565b60006020820190506131bc6000830184613198565b92915050565b600080600080608085870312156131dc576131db612f43565b5b60006131ea87828801612fbd565b94505060206131fb87828801612fbd565b935050604061320c87828801612fbd565b925050606061321d87828801612fbd565b91505092959194509250565b60006020828403121561323f5761323e612f43565b5b600061324d84828501612fbd565b91505092915050565b6000819050919050565b600061327b61327661327184612f48565b613256565b612f48565b9050919050565b600061328d82613260565b9050919050565b600061329f82613282565b9050919050565b6132af81613294565b82525050565b60006020820190506132ca60008301846132a6565b92915050565b600080604083850312156132e7576132e6612f43565b5b60006132f585828601612fbd565b925050602061330685828601612fbd565b9150509250929050565b6000806040838503121561332757613326612f43565b5b600061333585828601612f91565b925050602061334685828601612f91565b9150509250929050565b600061335b82612f48565b9050919050565b61336b81613350565b811461337657600080fd5b50565b60008135905061338881613362565b92915050565b6000602082840312156133a4576133a3612f43565b5b60006133b284828501613379565b91505092915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b60006133f1600b83612e93565b91506133fc826133bb565b602082019050919050565b60006020820190508181036000830152613420816133e4565b9050919050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061345d600683612e93565b915061346882613427565b602082019050919050565b6000602082019050818103600083015261348c81613450565b9050919050565b7f466565732063616e6e6f74206265206d6f7265207468616e2039302500000000600082015250565b60006134c9601c83612e93565b91506134d482613493565b602082019050919050565b600060208201905081810360008301526134f8816134bc565b9050919050565b7f7468726573686f6c6420746f6f20686967680000000000000000000000000000600082015250565b6000613535601283612e93565b9150613540826134ff565b602082019050919050565b6000602082019050818103600083015261356481613528565b9050919050565b7f6e6f7420656e6f7567687420746f6b656e730000000000000000000000000000600082015250565b60006135a1601283612e93565b91506135ac8261356b565b602082019050919050565b600060208201905081810360008301526135d081613594565b9050919050565b7f616c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b600061360d601083612e93565b9150613618826135d7565b602082019050919050565b6000602082019050818103600083015261363c81613600565b9050919050565b600061364e82613282565b9050919050565b61365e81613643565b82525050565b60006020820190506136796000830184613655565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136b982612e54565b91506136c483612e54565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136fd576136fc61367f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061374282612e54565b915061374d83612e54565b92508261375d5761375c613708565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006137c4602183612e93565b91506137cf82613768565b604082019050919050565b600060208201905081810360008301526137f3816137b7565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6000613830601383612e93565b915061383b826137fa565b602082019050919050565b6000602082019050818103600083015261385f81613823565b9050919050565b600061387182612e54565b915061387c83612e54565b92508282101561388f5761388e61367f565b5b828203905092915050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b60006138d0601383612e93565b91506138db8261389a565b602082019050919050565b600060208201905081810360008301526138ff816138c3565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061393c601483612e93565b915061394782613906565b602082019050919050565b6000602082019050818103600083015261396b8161392f565b9050919050565b600061397d82612e54565b915061398883612e54565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139bd576139bc61367f565b5b828201905092915050565b7f6d61782077616c6c6574206c696d697420726561636865640000000000000000600082015250565b60006139fe601883612e93565b9150613a09826139c8565b602082019050919050565b60006020820190508181036000830152613a2d816139f1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a6a601b83612e93565b9150613a7582613a34565b602082019050919050565b60006020820190508181036000830152613a9981613a5d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b0d81612f7a565b92915050565b600060208284031215613b2957613b28612f43565b5b6000613b3784828501613afe565b91505092915050565b6000819050919050565b6000613b65613b60613b5b84613b40565b613256565b612e54565b9050919050565b613b7581613b4a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bb081612f68565b82525050565b6000613bc28383613ba7565b60208301905092915050565b6000602082019050919050565b6000613be682613b7b565b613bf08185613b86565b9350613bfb83613b97565b8060005b83811015613c2c578151613c138882613bb6565b9750613c1e83613bce565b925050600181019050613bff565b5085935050505092915050565b600060a082019050613c4e6000830188612e5e565b613c5b6020830187613b6c565b8181036040830152613c6d8186613bdb565b9050613c7c6060830185613198565b613c896080830184612e5e565b9695505050505050565b600081905092915050565b50565b6000613cae600083613c93565b9150613cb982613c9e565b600082019050919050565b6000613ccf82613ca1565b9150819050919050565b600060c082019050613cee6000830189613198565b613cfb6020830188612e5e565b613d086040830187613b6c565b613d156060830186613b6c565b613d226080830185613198565b613d2f60a0830184612e5e565b979650505050505050565b600081519050613d4981612fa6565b92915050565b600080600060608486031215613d6857613d67612f43565b5b6000613d7686828701613d3a565b9350506020613d8786828701613d3a565b9250506040613d9886828701613d3a565b9150509250925092565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613dd8601183612e93565b9150613de382613da2565b602082019050919050565b60006020820190508181036000830152613e0781613dcb565b905091905056fea2646970667358221220b5c6619a320354fdf79c391ac47608b2dd70f59baa9c372dd3ce3a22213dea7c64736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102815760003560e01c806378109e541161014f578063c4590d3f116100c1578063e96fada21161007a578063e96fada214610987578063ef97212d146109b2578063f0b37c04146109dd578063f2fde38b14610a06578063f84ba65d14610a2f578063fe9fbb8014610a5857610288565b8063c4590d3f1461088d578063cfd55dda146108b6578063d4208cc1146108df578063dc4b9a4e1461090a578063dd62ed3e14610921578063e7a42de31461095e57610288565b806395d89b411161011357806395d89b411461077d5780639d0014b1146107a8578063a76293ea146107d1578063a83019fa146107fc578063a9059cbb14610827578063b6a5d7de1461086457610288565b806378109e54146106a65780637d1db4a5146106d1578063893d20e8146106fc5780638de4f5ed146107275780638ff35e561461075257610288565b8063313ce567116101f35780635da55668116101ac5780635da556681461059857806361147c54146105c1578063658d4b7f146105ec5780636ddd1713146106155780636fcba3771461064057806370a082311461066957610288565b8063313ce567146104ac5780633582ad23146104d7578063364333f414610502578063404e51291461051957806341744dd414610542578063470624021461056d57610288565b806318160ddd1161024557806318160ddd146103765780631cdd3be3146103a15780632198cf6c146103de57806323b872dd146104075780632b14ca56146104445780632f54bf6e1461046f57610288565b80630445b6671461028d57806306fdde03146102b8578063095ea7b3146102e357806311704f5214610320578063180b0d7e1461034b57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610a95565b6040516102af9190612e6d565b60405180910390f35b3480156102c457600080fd5b506102cd610a9b565b6040516102da9190612f21565b60405180910390f35b3480156102ef57600080fd5b5061030a60048036038101906103059190612fd2565b610ad8565b604051610317919061302d565b60405180910390f35b34801561032c57600080fd5b50610335610aef565b604051610342919061302d565b60405180910390f35b34801561035757600080fd5b50610360610b02565b60405161036d9190612e6d565b60405180910390f35b34801561038257600080fd5b5061038b610b08565b6040516103989190612e6d565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190613048565b610b12565b6040516103d5919061302d565b60405180910390f35b3480156103ea57600080fd5b50610405600480360381019061040091906130a1565b610b32565b005b34801561041357600080fd5b5061042e600480360381019061042991906130e1565b610bd5565b60405161043b919061302d565b60405180910390f35b34801561045057600080fd5b50610459610dd5565b6040516104669190612e6d565b60405180910390f35b34801561047b57600080fd5b5061049660048036038101906104919190613048565b610ddb565b6040516104a3919061302d565b60405180910390f35b3480156104b857600080fd5b506104c1610e34565b6040516104ce9190613150565b60405180910390f35b3480156104e357600080fd5b506104ec610e3d565b6040516104f9919061302d565b60405180910390f35b34801561050e57600080fd5b50610517610e50565b005b34801561052557600080fd5b50610540600480360381019061053b91906130a1565b610ee7565b005b34801561054e57600080fd5b50610557610f8a565b6040516105649190612e6d565b60405180910390f35b34801561057957600080fd5b50610582610f90565b60405161058f9190612e6d565b60405180910390f35b3480156105a457600080fd5b506105bf60048036038101906105ba919061316b565b610f96565b005b3480156105cd57600080fd5b506105d6610ffb565b6040516105e391906131a7565b60405180910390f35b3480156105f857600080fd5b50610613600480360381019061060e91906130a1565b611021565b005b34801561062157600080fd5b5061062a6110c4565b604051610637919061302d565b60405180910390f35b34801561064c57600080fd5b50610667600480360381019061066291906131c2565b6110d7565b005b34801561067557600080fd5b50610690600480360381019061068b9190613048565b6111b1565b60405161069d9190612e6d565b60405180910390f35b3480156106b257600080fd5b506106bb6111fa565b6040516106c89190612e6d565b60405180910390f35b3480156106dd57600080fd5b506106e6611200565b6040516106f39190612e6d565b60405180910390f35b34801561070857600080fd5b50610711611206565b60405161071e91906131a7565b60405180910390f35b34801561073357600080fd5b5061073c61122f565b60405161074991906131a7565b60405180910390f35b34801561075e57600080fd5b50610767611255565b604051610774919061302d565b60405180910390f35b34801561078957600080fd5b50610792611268565b60405161079f9190612f21565b60405180910390f35b3480156107b457600080fd5b506107cf60048036038101906107ca9190613229565b6112a5565b005b3480156107dd57600080fd5b506107e6611363565b6040516107f391906132b5565b60405180910390f35b34801561080857600080fd5b50610811611389565b60405161081e9190612e6d565b60405180910390f35b34801561083357600080fd5b5061084e60048036038101906108499190612fd2565b61138f565b60405161085b919061302d565b60405180910390f35b34801561087057600080fd5b5061088b60048036038101906108869190613048565b6113a4565b005b34801561089957600080fd5b506108b460048036038101906108af91906132d0565b611446565b005b3480156108c257600080fd5b506108dd60048036038101906108d89190613229565b6114f0565b005b3480156108eb57600080fd5b506108f4611587565b604051610901919061302d565b60405180910390f35b34801561091657600080fd5b5061091f61159a565b005b34801561092d57600080fd5b5061094860048036038101906109439190613310565b611656565b6040516109559190612e6d565b60405180910390f35b34801561096a57600080fd5b506109856004803603810190610980919061316b565b6116dd565b005b34801561099357600080fd5b5061099c611742565b6040516109a991906131a7565b60405180910390f35b3480156109be57600080fd5b506109c7611768565b6040516109d49190612e6d565b60405180910390f35b3480156109e957600080fd5b50610a0460048036038101906109ff9190613048565b61176e565b005b348015610a1257600080fd5b50610a2d6004803603810190610a28919061338e565b611811565b005b348015610a3b57600080fd5b50610a566004803603810190610a5191906130a1565b61192a565b005b348015610a6457600080fd5b50610a7f6004803603810190610a7a9190613048565b6119cd565b604051610a8c919061302d565b60405180910390f35b60075481565b60606040518060400160405280600781526020017f435a20436f696e00000000000000000000000000000000000000000000000000815250905090565b6000610ae5338484611ae8565b6001905092915050565b601560149054906101000a900460ff1681565b60135481565b6000600454905090565b600d6020528060005260406000206000915054906101000a900460ff1681565b610b3b336119cd565b610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7190613407565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dc157610d40826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb39092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dcc848484611d17565b90509392505050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601860009054906101000a900460ff1681565b610e5933610ddb565b610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f90613473565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ee3573d6000803e3d6000fd5b5050565b610ef033610ddb565b610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2690613473565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60125481565b600f5481565b610f9f33610ddb565b610fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd590613473565b60405180910390fd5b80601860036101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61102a336119cd565b611069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106090613407565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860039054906101000a900460ff1681565b6110e0336119cd565b61111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111690613407565b60405180910390fd5b81600e8190555080600f81905550836011819055508260108190555061115260115460105461226590919063ffffffff16565b601281905550605a600e5410801561116c5750605a600f54105b6111ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a2906134df565b60405180910390fd5b50505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860019054906101000a900460ff1681565b60606040518060400160405280600281526020017f435a000000000000000000000000000000000000000000000000000000000000815250905090565b6112ae33610ddb565b6112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490613473565b60405180910390fd5b600a8110611330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113279061354b565b60405180910390fd5b61135a620186a061134c83600454611a2390919063ffffffff16565b611a9e90919063ffffffff16565b60078190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b600061139c338484611d17565b905092915050565b6113ad33610ddb565b6113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390613473565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61144f33610ddb565b61148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590613473565b60405180910390fd5b6114b76103e86114a984600454611a2390919063ffffffff16565b611a9e90919063ffffffff16565b6006819055506114e66103e86114d883600454611a2390919063ffffffff16565b611a9e90919063ffffffff16565b6005819055505050565b6114f933610ddb565b611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152f90613473565b60405180910390fd5b8047101561157b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611572906135b7565b60405180910390fd5b611584816122c3565b50565b601860029054906101000a900460ff1681565b6115a333610ddb565b6115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d990613473565b60405180910390fd5b601560149054906101000a900460ff1615611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990613623565b60405180910390fd5b436016819055506001601560146101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116e6336119cd565b611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c90613407565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b61177733610ddb565b6117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad90613473565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61181a33610ddb565b611859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185090613473565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161191f9190613664565b60405180910390a150565b611933336119cd565b611972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196990613407565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080831415611a365760009050611a98565b60008284611a4491906136ae565b9050828482611a539190613737565b14611a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8a906137da565b60405180910390fd5b809150505b92915050565b6000611ae083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612791565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4f90613846565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90613846565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ca69190612e6d565b60405180910390a3505050565b6000838311158290611cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf29190612f21565b60405180910390fd5b5060008385611d0a9190613866565b9050809150509392505050565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dbd5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df3906138e6565b60405180910390fd5b601860049054906101000a900460ff1615611e2357611e1c8484846127f4565b905061225e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ec75750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561204457601560149054906101000a900460ff16611f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1290613952565b60405180910390fd5b601860009054906101000a900460ff161561204357600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fd45750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612038576000611fe4846111b1565b90506006548382611ff59190613972565b1115612036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202d90613a14565b60405180910390fd5b505b61204284836129c7565b5b5b61204d84612a64565b1561205e5761205d6007546122c3565b5b6120e7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb39092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061213585612ba4565b1580612147575061214584612ba4565b155b61215a576121558584612bfb565b61215c565b825b90506121b081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226590919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122509190612e6d565b60405180910390a360019150505b9392505050565b60008082846122749190613972565b9050838110156122b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b090613a80565b60405180910390fd5b8091505092915050565b6001601860046101000a81548160ff021916908315150217905550600061231c600261230e60125461230060105487611a2390919063ffffffff16565b611a9e90919063ffffffff16565b611a9e90919063ffffffff16565b905060006123338284612e0a90919063ffffffff16565b90506000600267ffffffffffffffff81111561235257612351613aa0565b5b6040519080825280602002602001820160405280156123805781602001602082028036833780820191505090505b509050308160008151811061239857612397613acf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561243f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124639190613b13565b8160018151811061247757612476613acf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161251a959493929190613c39565b600060405180830381600087803b15801561253457600080fd5b505af1158015612548573d6000803e3d6000fd5b5050505060006125618247612e0a90919063ffffffff16565b9050600061258f61257e6002601054611a9e90919063ffffffff16565b601254612e0a90919063ffffffff16565b905060006125cd60026125bf846125b160105488611a2390919063ffffffff16565b611a9e90919063ffffffff16565b611a9e90919063ffffffff16565b905060006125f8836125ea60115487611a2390919063ffffffff16565b611a9e90919063ffffffff16565b90506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161264690613cc4565b600060405180830381858888f193505050503d8060008114612684576040519150601f19603f3d011682016040523d82523d6000602084013e612689565b606091505b5050905060009050600089111561276a57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161272396959493929190613cd9565b60606040518083038185885af1158015612741573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127669190613d4f565b5050505b5050505050505050506000601860046101000a81548160ff02191690831515021790555050565b600080831182906127d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cf9190612f21565b60405180910390fd5b50600083856127e79190613737565b9050809150509392505050565b600061287f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb39092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226590919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129b49190612e6d565b60405180910390a3600190509392505050565b60055481111580612a215750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5790613dee565b60405180910390fd5b5050565b6000601860049054906101000a900460ff16158015612a8f5750601860039054906101000a900460ff165b8015612ae55750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b3f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b8c5750600754600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612b9a5760019050612b9f565b600090505b919050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612c5d57600e549050612cc7565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612cbd57600f549050612cc6565b82915050612e04565b5b6000612cf0601354612ce28487611a2390919063ffffffff16565b611a9e90919063ffffffff16565b9050612d4481600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226590919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612de49190612e6d565b60405180910390a3612dff8185612e0a90919063ffffffff16565b925050505b92915050565b6000612e4c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cb3565b905092915050565b6000819050919050565b612e6781612e54565b82525050565b6000602082019050612e826000830184612e5e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ec2578082015181840152602081019050612ea7565b83811115612ed1576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ef382612e88565b612efd8185612e93565b9350612f0d818560208601612ea4565b612f1681612ed7565b840191505092915050565b60006020820190508181036000830152612f3b8184612ee8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f7382612f48565b9050919050565b612f8381612f68565b8114612f8e57600080fd5b50565b600081359050612fa081612f7a565b92915050565b612faf81612e54565b8114612fba57600080fd5b50565b600081359050612fcc81612fa6565b92915050565b60008060408385031215612fe957612fe8612f43565b5b6000612ff785828601612f91565b925050602061300885828601612fbd565b9150509250929050565b60008115159050919050565b61302781613012565b82525050565b6000602082019050613042600083018461301e565b92915050565b60006020828403121561305e5761305d612f43565b5b600061306c84828501612f91565b91505092915050565b61307e81613012565b811461308957600080fd5b50565b60008135905061309b81613075565b92915050565b600080604083850312156130b8576130b7612f43565b5b60006130c685828601612f91565b92505060206130d78582860161308c565b9150509250929050565b6000806000606084860312156130fa576130f9612f43565b5b600061310886828701612f91565b935050602061311986828701612f91565b925050604061312a86828701612fbd565b9150509250925092565b600060ff82169050919050565b61314a81613134565b82525050565b60006020820190506131656000830184613141565b92915050565b60006020828403121561318157613180612f43565b5b600061318f8482850161308c565b91505092915050565b6131a181612f68565b82525050565b60006020820190506131bc6000830184613198565b92915050565b600080600080608085870312156131dc576131db612f43565b5b60006131ea87828801612fbd565b94505060206131fb87828801612fbd565b935050604061320c87828801612fbd565b925050606061321d87828801612fbd565b91505092959194509250565b60006020828403121561323f5761323e612f43565b5b600061324d84828501612fbd565b91505092915050565b6000819050919050565b600061327b61327661327184612f48565b613256565b612f48565b9050919050565b600061328d82613260565b9050919050565b600061329f82613282565b9050919050565b6132af81613294565b82525050565b60006020820190506132ca60008301846132a6565b92915050565b600080604083850312156132e7576132e6612f43565b5b60006132f585828601612fbd565b925050602061330685828601612fbd565b9150509250929050565b6000806040838503121561332757613326612f43565b5b600061333585828601612f91565b925050602061334685828601612f91565b9150509250929050565b600061335b82612f48565b9050919050565b61336b81613350565b811461337657600080fd5b50565b60008135905061338881613362565b92915050565b6000602082840312156133a4576133a3612f43565b5b60006133b284828501613379565b91505092915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b60006133f1600b83612e93565b91506133fc826133bb565b602082019050919050565b60006020820190508181036000830152613420816133e4565b9050919050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061345d600683612e93565b915061346882613427565b602082019050919050565b6000602082019050818103600083015261348c81613450565b9050919050565b7f466565732063616e6e6f74206265206d6f7265207468616e2039302500000000600082015250565b60006134c9601c83612e93565b91506134d482613493565b602082019050919050565b600060208201905081810360008301526134f8816134bc565b9050919050565b7f7468726573686f6c6420746f6f20686967680000000000000000000000000000600082015250565b6000613535601283612e93565b9150613540826134ff565b602082019050919050565b6000602082019050818103600083015261356481613528565b9050919050565b7f6e6f7420656e6f7567687420746f6b656e730000000000000000000000000000600082015250565b60006135a1601283612e93565b91506135ac8261356b565b602082019050919050565b600060208201905081810360008301526135d081613594565b9050919050565b7f616c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b600061360d601083612e93565b9150613618826135d7565b602082019050919050565b6000602082019050818103600083015261363c81613600565b9050919050565b600061364e82613282565b9050919050565b61365e81613643565b82525050565b60006020820190506136796000830184613655565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136b982612e54565b91506136c483612e54565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136fd576136fc61367f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061374282612e54565b915061374d83612e54565b92508261375d5761375c613708565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006137c4602183612e93565b91506137cf82613768565b604082019050919050565b600060208201905081810360008301526137f3816137b7565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6000613830601383612e93565b915061383b826137fa565b602082019050919050565b6000602082019050818103600083015261385f81613823565b9050919050565b600061387182612e54565b915061387c83612e54565b92508282101561388f5761388e61367f565b5b828203905092915050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b60006138d0601383612e93565b91506138db8261389a565b602082019050919050565b600060208201905081810360008301526138ff816138c3565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061393c601483612e93565b915061394782613906565b602082019050919050565b6000602082019050818103600083015261396b8161392f565b9050919050565b600061397d82612e54565b915061398883612e54565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139bd576139bc61367f565b5b828201905092915050565b7f6d61782077616c6c6574206c696d697420726561636865640000000000000000600082015250565b60006139fe601883612e93565b9150613a09826139c8565b602082019050919050565b60006020820190508181036000830152613a2d816139f1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a6a601b83612e93565b9150613a7582613a34565b602082019050919050565b60006020820190508181036000830152613a9981613a5d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b0d81612f7a565b92915050565b600060208284031215613b2957613b28612f43565b5b6000613b3784828501613afe565b91505092915050565b6000819050919050565b6000613b65613b60613b5b84613b40565b613256565b612e54565b9050919050565b613b7581613b4a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bb081612f68565b82525050565b6000613bc28383613ba7565b60208301905092915050565b6000602082019050919050565b6000613be682613b7b565b613bf08185613b86565b9350613bfb83613b97565b8060005b83811015613c2c578151613c138882613bb6565b9750613c1e83613bce565b925050600181019050613bff565b5085935050505092915050565b600060a082019050613c4e6000830188612e5e565b613c5b6020830187613b6c565b8181036040830152613c6d8186613bdb565b9050613c7c6060830185613198565b613c896080830184612e5e565b9695505050505050565b600081905092915050565b50565b6000613cae600083613c93565b9150613cb982613c9e565b600082019050919050565b6000613ccf82613ca1565b9150819050919050565b600060c082019050613cee6000830189613198565b613cfb6020830188612e5e565b613d086040830187613b6c565b613d156060830186613b6c565b613d226080830185613198565b613d2f60a0830184612e5e565b979650505050505050565b600081519050613d4981612fa6565b92915050565b600080600060608486031215613d6857613d67612f43565b5b6000613d7686828701613d3a565b9350506020613d8786828701613d3a565b9250506040613d9886828701613d3a565b9150509250925092565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613dd8601183612e93565b9150613de382613da2565b602082019050919050565b60006020820190508181036000830152613e0781613dcb565b905091905056fea2646970667358221220b5c6619a320354fdf79c391ac47608b2dd70f59baa9c372dd3ce3a22213dea7c64736f6c634300080c0033

Deployed Bytecode Sourcemap

5141:11815:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5879:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8434:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8959:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6774:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6665:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8116:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6212:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16207:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9703:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6304:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2973:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8226:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6880:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15580:158;;;;;;;;;;;;;:::i;:::-;;15282:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6601:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6338:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12470:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6743:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15920:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6994:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16374:450;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8636:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5801:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5730:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8536:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5215:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6919:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8328:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15065:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6709:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6521:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9507:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2766:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14805:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15403:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6956:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15746:166;;;;;;;;;;;;;:::i;:::-;;8763:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16832:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5315:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6561:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2868:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3199:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16048:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3084:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5879:71;;;;:::o;8434:94::-;8482:13;8515:5;;;;;;;;;;;;;;;;;8508:12;;8434:94;:::o;8959:191::-;9061:4;9083:37;9092:10;9104:7;9113:6;9083:8;:37::i;:::-;9138:4;9131:11;;8959:191;;;;:::o;6774:31::-;;;;;;;;;;;;;:::o;6665:35::-;;;;:::o;8116:102::-;8171:7;8198:12;;8191:19;;8116:102;:::o;6212:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;16207:159::-;2698:24;2711:10;2698:12;:24::i;:::-;2690:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16352:6:::1;16322:19;:27;16342:6;16322:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;16207:159:::0;;:::o;9703:422::-;9837:4;9893:17;9858:11;:19;9870:6;9858:19;;;;;;;;;;;;;;;:31;9878:10;9858:31;;;;;;;;;;;;;;;;:52;9854:206;;9961:87;10015:6;9961:87;;;;;;;;;;;;;;;;;:11;:19;9973:6;9961:19;;;;;;;;;;;;;;;:31;9981:10;9961:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;9927:11;:19;9939:6;9927:19;;;;;;;;;;;;;;;:31;9947:10;9927:31;;;;;;;;;;;;;;;:121;;;;9854:206;10077:40;10091:6;10099:9;10110:6;10077:13;:40::i;:::-;10070:47;;9703:422;;;;;:::o;6304:27::-;;;;:::o;2973:103::-;3028:4;3063:5;;;;;;;;;;;3052:16;;:7;:16;;;3045:23;;2973:103;;;:::o;8226:94::-;8278:5;5517:2;8296:16;;8226:94;:::o;6880:32::-;;;;;;;;;;;;;:::o;15580:158::-;2599:19;2607:10;2599:7;:19::i;:::-;2591:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15639:17:::1;15659:21;15639:41;;15699:10;15691:28;;:39;15720:9;15691:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15628:110;15580:158::o:0;15282:113::-;2599:19;2607:10;2599:7;:19::i;:::-;2591:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15382:5:::1;15358:14;:21;15373:5;15358:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15282:113:::0;;:::o;6601:57::-;;;;:::o;6338:26::-;;;;:::o;12470:95::-;2599:19;2607:10;2599:7;:19::i;:::-;2591:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12549:8:::1;12535:11;;:22;;;;;;;;;;;;;;;;;;12470:95:::0;:::o;6743:22::-;;;;;;;;;;;;;:::o;15920:120::-;2698:24;2711:10;2698:12;:24::i;:::-;2690:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16026:6:::1;16004:11;:19;16016:6;16004:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15920:120:::0;;:::o;6994:30::-;;;;;;;;;;;;;:::o;16374:450::-;2698:24;2711:10;2698:12;:24::i;:::-;2690:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16560:8:::1;16550:7;:18;;;;16588:7;16579:6;:16;;;;16623:15;16606:14;:32;;;;16666:15;16649:14;:32;;;;16703:34;16722:14;;16703;;:18;;:34;;;;:::i;:::-;16692:8;:45;;;;16766:2;16756:7;;:12;:27;;;;;16781:2;16772:6;;:11;16756:27;16748:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16374:450:::0;;;;:::o;8636:119::-;8702:7;8729:9;:18;8739:7;8729:18;;;;;;;;;;;;;;;;8722:25;;8636:119;;;:::o;5801:71::-;;;;:::o;5730:64::-;;;;:::o;8536:92::-;8588:7;8615:5;;;;;;;;;;;8608:12;;8536:92;:::o;5215:93::-;;;;;;;;;;;;;:::o;6919:30::-;;;;;;;;;;;;;:::o;8328:98::-;8378:13;8411:7;;;;;;;;;;;;;;;;;8404:14;;8328:98;:::o;15065:209::-;2599:19;2607:10;2599:7;:19::i;:::-;2591:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15170:2:::1;15153:14;:19;15145:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;15222:44;15259:6;15222:32;15239:14;15222:12;;:16;;:32;;;;:::i;:::-;:36;;:44;;;;:::i;:::-;15206:13;:60;;;;15065:209:::0;:::o;6709:27::-;;;;;;;;;;;;;:::o;6521:33::-;;;;:::o;9507:188::-;9614:4;9643:44;9657:10;9669:9;9680:6;9643:13;:44::i;:::-;9636:51;;9507:188;;;;:::o;2766:94::-;2599:19;2607:10;2599:7;:19::i;:::-;2591:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2848:4:::1;2826:14:::0;:19:::1;2841:3;2826:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2766:94:::0;:::o;14805:252::-;2599:19;2607:10;2599:7;:19::i;:::-;2591:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14941:42:::1;14978:4;14941:32;14958:14;14941:12;;:16;;:32;;;;:::i;:::-;:36;;:42;;;;:::i;:::-;14923:15;:60;;;;15009:40;15044:4;15009:30;15026:12;15009;;:16;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;14994:12;:55;;;;14805:252:::0;;:::o;15403:169::-;2599:19;2607:10;2599:7;:19::i;:::-;2591:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15508:6:::1;15483:21;:31;;15475:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;15548:16;15557:6;15548:8;:16::i;:::-;15403:169:::0;:::o;6956:31::-;;;;;;;;;;;;;:::o;15746:166::-;2599:19;2607:10;2599:7;:19::i;:::-;2591:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15807:11:::1;;;;;;;;;;;15806:12;15798:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;15863:12;15850:10;:25;;;;15900:4;15886:11;;:18;;;;;;;;;;;;;;;;;;15746:166::o:0;8763:188::-;8883:7;8915:11;:19;8927:6;8915:19;;;;;;;;;;;;;;;:28;8935:7;8915:28;;;;;;;;;;;;;;;;8908:35;;8763:188;;;;:::o;16832:121::-;2698:24;2711:10;2698:12;:24::i;:::-;2690:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16929:16:::1;16913:13;;:32;;;;;;;;;;;;;;;;;;16832:121:::0;:::o;5315:89::-;;;;;;;;;;;;;:::o;6561:33::-;;;;:::o;2868:97::-;2599:19;2607:10;2599:7;:19::i;:::-;2591:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2952:5:::1;2930:14;:19;2945:3;2930:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2868:97:::0;:::o;3199:173::-;2599:19;2607:10;2599:7;:19::i;:::-;2591:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3283:3:::1;3275:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3319:4;3297:14:::0;:19:::1;3312:3;3297:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3339:25;3360:3;3339:25;;;;;;:::i;:::-;;;;;;;;3199:173:::0;:::o;16048:151::-;2698:24;2711:10;2698:12;:24::i;:::-;2690:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16185:6:::1;16159:15;:23;16175:6;16159:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16048:151:::0;;:::o;3084:107::-;3140:4;3164:14;:19;3179:3;3164:19;;;;;;;;;;;;;;;;;;;;;;;;;3157:26;;3084:107;;;:::o;659:250::-;717:7;746:1;741;:6;737:47;;;771:1;764:8;;;;737:47;796:9;812:1;808;:5;;;;:::i;:::-;796:17;;841:1;836;832;:5;;;;:::i;:::-;:10;824:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;900:1;893:8;;;659:250;;;;;:::o;917:132::-;975:7;1002:39;1006:1;1009;1002:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;995:46;;917:132;;;;:::o;9158:341::-;9304:1;9286:20;;:6;:20;;;;9278:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9368:1;9349:21;;:7;:21;;;;9341:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9436:6;9405:11;:19;9417:6;9405:19;;;;;;;;;;;;;;;:28;9425:7;9405:28;;;;;;;;;;;;;;;:37;;;;9475:7;9458:33;;9467:6;9458:33;;;9484:6;9458:33;;;;;;:::i;:::-;;;;;;;;9158:341;;;:::o;425:226::-;545:7;578:1;573;:6;;581:12;565:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;605:9;621:1;617;:5;;;;:::i;:::-;605:17;;642:1;635:8;;;425:226;;;;;:::o;10133:1338::-;10250:4;10290:14;:20;10305:4;10290:20;;;;;;;;;;;;;;;;;;;;;;;;;10289:21;:44;;;;;10315:14;:18;10330:2;10315:18;;;;;;;;;;;;;;;;;;;;;;;;;10314:19;10289:44;10267:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;10395:6;;;;;;;;;;;10391:78;;;10425:32;10440:4;10446:2;10450:6;10425:14;:32::i;:::-;10418:39;;;;10391:78;10488:14;:20;10503:4;10488:20;;;;;;;;;;;;;;;;;;;;;;;;;10487:21;:44;;;;;10513:14;:18;10528:2;10513:18;;;;;;;;;;;;;;;;;;;;;;;;;10512:19;10487:44;10483:538;;;10555:11;;;;;;;;;;;10547:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;10610:13;;;;;;;;;;;10606:404;;;10649:14;:20;10664:4;10649:20;;;;;;;;;;;;;;;;;;;;;;;;;10648:21;:49;;;;;10674:19;:23;10694:2;10674:23;;;;;;;;;;;;;;;;;;;;;;;;;10673:24;10648:49;10644:305;;;10722:18;10743:13;10753:2;10743:9;:13::i;:::-;10722:34;;10838:15;;10827:6;10814:10;:19;;;;:::i;:::-;10813:40;;10779:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;10699:250;10644:305;10967:27;10981:4;10987:6;10967:13;:27::i;:::-;10606:404;10483:538;11037:20;11052:4;11037:14;:20::i;:::-;11033:76;;;11074:23;11083:13;;11074:8;:23::i;:::-;11033:76;11139:51;11159:6;11139:51;;;;;;;;;;;;;;;;;:9;:15;11149:4;11139:15;;;;;;;;;;;;;;;;:19;;:51;;;;;:::i;:::-;11121:9;:15;11131:4;11121:15;;;;;;;;;;;;;;;:69;;;;11201:22;11228:19;11242:4;11228:13;:19::i;:::-;11227:20;:42;;;;11252:17;11266:2;11252:13;:17::i;:::-;11251:18;11227:42;11226:103;;11308:21;11316:4;11322:6;11308:7;:21::i;:::-;11226:103;;;11286:6;11226:103;11201:128;;11358:33;11376:14;11358:9;:13;11368:2;11358:13;;;;;;;;;;;;;;;;:17;;:33;;;;:::i;:::-;11342:9;:13;11352:2;11342:13;;;;;;;;;;;;;;;:49;;;;11422:2;11407:34;;11416:4;11407:34;;;11426:14;11407:34;;;;;;:::i;:::-;;;;;;;;11459:4;11452:11;;;10133:1338;;;;;;:::o;92:181::-;150:7;170:9;186:1;182;:5;;;;:::i;:::-;170:17;;211:1;206;:6;;198:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;264:1;257:8;;;92:181;;;;:::o;13283:1514::-;7093:4;7084:6;;:13;;;;;;;;;;;;;;;;;;13351:23:::1;13377:94;13469:1;13377:73;13441:8;;13377:45;13407:14;;13377:11;:29;;:45;;;;:::i;:::-;:63;;:73;;;;:::i;:::-;:91;;:94;;;;:::i;:::-;13351:120;;13482:20;13505:32;13521:15;13505:11;:15;;:32;;;;:::i;:::-;13482:55;;13548:21;13586:1;13572:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13548:40;;13617:4;13599;13604:1;13599:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13643:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13633:4;13638:1;13633:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;::::0;::::1;13670:21;13694;13670:45;;13726:9;;;;;;;;;;;:60;;;13801:12;13828:1;13844:4;13871;13891:15;13726:191;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13928:17;13948:40;13974:13;13948:21;:25;;:40;;;;:::i;:::-;13928:60;;13999:19;14021:35;14034:21;14053:1;14034:14;;:18;;:21;;;;:::i;:::-;14021:8;;:12;;:35;;;;:::i;:::-;13999:57;;14067:26;14096:95;14189:1;14096:74;14158:11;14096:43;14124:14;;14096:9;:27;;:43;;;;:::i;:::-;:61;;:74;;;;:::i;:::-;:92;;:95;;;;:::i;:::-;14067:124;;14202:26;14231:70;14279:11;14231:29;14245:14;;14231:9;:13;;:29;;;;:::i;:::-;:33;;:70;;;;:::i;:::-;14202:99;;14313:15;14342:20;;;;;;;;;;;14334:34;;14390:18;14428:5;14334:114;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14312:136;;;14472:5;14459:18;;14510:1;14492:15;:19;14488:302;;;14528:9;;;;;;;;;;;:25;;;14561:18;14607:4;14631:15;14665:1;14685::::0;14705:24:::1;;;;;;;;;;;14748:15;14528:250;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14488:302;13340:1457;;;;;;;;;7129:5:::0;7120:6;;:14;;;;;;;;;;;;;;;;;;13283:1514;:::o;1057:223::-;1177:7;1209:1;1205;:5;1212:12;1197:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1236:9;1252:1;1248;:5;;;;:::i;:::-;1236:17;;1271:1;1264:8;;;1057:223;;;;;:::o;11479:401::-;11606:4;11643:90;11679:6;11643:90;;;;;;;;;;;;;;;;;:9;:17;11653:6;11643:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;11623:9;:17;11633:6;11623:17;;;;;;;;;;;;;;;:110;;;;11767:32;11792:6;11767:9;:20;11777:9;11767:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11744:9;:20;11754:9;11744:20;;;;;;;;;;;;;;;:55;;;;11832:9;11815:35;;11824:6;11815:35;;;11843:6;11815:35;;;;;;:::i;:::-;;;;;;;;11868:4;11861:11;;11479:401;;;;;:::o;11888:204::-;12000:12;;11990:6;:22;;:49;;;;12016:15;:23;12032:6;12016:23;;;;;;;;;;;;;;;;;;;;;;;;;11990:49;11968:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;11888:204;;:::o;12100:362::-;12161:4;12197:6;;;;;;;;;;;12196:7;:35;;;;;12220:11;;;;;;;;;;;12196:35;:74;;;;;12249:15;:21;12265:4;12249:21;;;;;;;;;;;;;;;;;;;;;;;;;12248:22;12196:74;:106;;;;;12295:7;;;;;;;;;;;12287:15;;:4;:15;;;;12196:106;:164;;;;;12347:13;;12319:9;:24;12337:4;12319:24;;;;;;;;;;;;;;;;:41;;12196:164;12178:277;;;12394:4;12387:11;;;;12178:277;12438:5;12431:12;;12100:362;;;;:::o;12573:114::-;12635:4;12660:11;:19;12672:6;12660:19;;;;;;;;;;;;;;;;;;;;;;;;;12659:20;12652:27;;12573:114;;;:::o;12695:580::-;12780:7;12805:12;12842:7;;;;;;;;;;;12832:17;;:6;:17;;;12828:179;;12873:7;;12866:14;;12828:179;;;12912:7;;;;;;;;;;;12902:17;;:6;:17;;;12898:109;;;12943:6;;12936:13;;12898:109;;;12989:6;12982:13;;;;;12898:109;12828:179;13017:22;13042:36;13063:14;;13042:16;13053:4;13042:6;:10;;:16;;;;:::i;:::-;:20;;:36;;;;:::i;:::-;13017:61;;13116:44;13145:14;13116:9;:24;13134:4;13116:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;13089:9;:24;13107:4;13089:24;;;;;;;;;;;;;;;:71;;;;13201:4;13176:47;;13185:6;13176:47;;;13208:14;13176:47;;;;;;:::i;:::-;;;;;;;;13241:26;13252:14;13241:6;:10;;:26;;;;:::i;:::-;13234:33;;;;12695:580;;;;;:::o;281:136::-;339:7;366:43;370:1;373;366:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;359:50;;281:136;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:116::-;4251:21;4266:5;4251:21;:::i;:::-;4244:5;4241:32;4231:60;;4287:1;4284;4277:12;4231:60;4181:116;:::o;4303:133::-;4346:5;4384:6;4371:20;4362:29;;4400:30;4424:5;4400:30;:::i;:::-;4303:133;;;;:::o;4442:468::-;4507:6;4515;4564:2;4552:9;4543:7;4539:23;4535:32;4532:119;;;4570:79;;:::i;:::-;4532:119;4690:1;4715:53;4760:7;4751:6;4740:9;4736:22;4715:53;:::i;:::-;4705:63;;4661:117;4817:2;4843:50;4885:7;4876:6;4865:9;4861:22;4843:50;:::i;:::-;4833:60;;4788:115;4442:468;;;;;:::o;4916:619::-;4993:6;5001;5009;5058:2;5046:9;5037:7;5033:23;5029:32;5026:119;;;5064:79;;:::i;:::-;5026:119;5184:1;5209:53;5254:7;5245:6;5234:9;5230:22;5209:53;:::i;:::-;5199:63;;5155:117;5311:2;5337:53;5382:7;5373:6;5362:9;5358:22;5337:53;:::i;:::-;5327:63;;5282:118;5439:2;5465:53;5510:7;5501:6;5490:9;5486:22;5465:53;:::i;:::-;5455:63;;5410:118;4916:619;;;;;:::o;5541:86::-;5576:7;5616:4;5609:5;5605:16;5594:27;;5541:86;;;:::o;5633:112::-;5716:22;5732:5;5716:22;:::i;:::-;5711:3;5704:35;5633:112;;:::o;5751:214::-;5840:4;5878:2;5867:9;5863:18;5855:26;;5891:67;5955:1;5944:9;5940:17;5931:6;5891:67;:::i;:::-;5751:214;;;;:::o;5971:323::-;6027:6;6076:2;6064:9;6055:7;6051:23;6047:32;6044:119;;;6082:79;;:::i;:::-;6044:119;6202:1;6227:50;6269:7;6260:6;6249:9;6245:22;6227:50;:::i;:::-;6217:60;;6173:114;5971:323;;;;:::o;6300:118::-;6387:24;6405:5;6387:24;:::i;:::-;6382:3;6375:37;6300:118;;:::o;6424:222::-;6517:4;6555:2;6544:9;6540:18;6532:26;;6568:71;6636:1;6625:9;6621:17;6612:6;6568:71;:::i;:::-;6424:222;;;;:::o;6652:765::-;6738:6;6746;6754;6762;6811:3;6799:9;6790:7;6786:23;6782:33;6779:120;;;6818:79;;:::i;:::-;6779:120;6938:1;6963:53;7008:7;6999:6;6988:9;6984:22;6963:53;:::i;:::-;6953:63;;6909:117;7065:2;7091:53;7136:7;7127:6;7116:9;7112:22;7091:53;:::i;:::-;7081:63;;7036:118;7193:2;7219:53;7264:7;7255:6;7244:9;7240:22;7219:53;:::i;:::-;7209:63;;7164:118;7321:2;7347:53;7392:7;7383:6;7372:9;7368:22;7347:53;:::i;:::-;7337:63;;7292:118;6652:765;;;;;;;:::o;7423:329::-;7482:6;7531:2;7519:9;7510:7;7506:23;7502:32;7499:119;;;7537:79;;:::i;:::-;7499:119;7657:1;7682:53;7727:7;7718:6;7707:9;7703:22;7682:53;:::i;:::-;7672:63;;7628:117;7423:329;;;;:::o;7758:60::-;7786:3;7807:5;7800:12;;7758:60;;;:::o;7824:142::-;7874:9;7907:53;7925:34;7934:24;7952:5;7934:24;:::i;:::-;7925:34;:::i;:::-;7907:53;:::i;:::-;7894:66;;7824:142;;;:::o;7972:126::-;8022:9;8055:37;8086:5;8055:37;:::i;:::-;8042:50;;7972:126;;;:::o;8104:144::-;8172:9;8205:37;8236:5;8205:37;:::i;:::-;8192:50;;8104:144;;;:::o;8254:167::-;8359:55;8408:5;8359:55;:::i;:::-;8354:3;8347:68;8254:167;;:::o;8427:258::-;8538:4;8576:2;8565:9;8561:18;8553:26;;8589:89;8675:1;8664:9;8660:17;8651:6;8589:89;:::i;:::-;8427:258;;;;:::o;8691:474::-;8759:6;8767;8816:2;8804:9;8795:7;8791:23;8787:32;8784:119;;;8822:79;;:::i;:::-;8784:119;8942:1;8967:53;9012:7;9003:6;8992:9;8988:22;8967:53;:::i;:::-;8957:63;;8913:117;9069:2;9095:53;9140:7;9131:6;9120:9;9116:22;9095:53;:::i;:::-;9085:63;;9040:118;8691:474;;;;;:::o;9171:::-;9239:6;9247;9296:2;9284:9;9275:7;9271:23;9267:32;9264:119;;;9302:79;;:::i;:::-;9264:119;9422:1;9447:53;9492:7;9483:6;9472:9;9468:22;9447:53;:::i;:::-;9437:63;;9393:117;9549:2;9575:53;9620:7;9611:6;9600:9;9596:22;9575:53;:::i;:::-;9565:63;;9520:118;9171:474;;;;;:::o;9651:104::-;9696:7;9725:24;9743:5;9725:24;:::i;:::-;9714:35;;9651:104;;;:::o;9761:138::-;9842:32;9868:5;9842:32;:::i;:::-;9835:5;9832:43;9822:71;;9889:1;9886;9879:12;9822:71;9761:138;:::o;9905:155::-;9959:5;9997:6;9984:20;9975:29;;10013:41;10048:5;10013:41;:::i;:::-;9905:155;;;;:::o;10066:345::-;10133:6;10182:2;10170:9;10161:7;10157:23;10153:32;10150:119;;;10188:79;;:::i;:::-;10150:119;10308:1;10333:61;10386:7;10377:6;10366:9;10362:22;10333:61;:::i;:::-;10323:71;;10279:125;10066:345;;;;:::o;10417:161::-;10557:13;10553:1;10545:6;10541:14;10534:37;10417:161;:::o;10584:366::-;10726:3;10747:67;10811:2;10806:3;10747:67;:::i;:::-;10740:74;;10823:93;10912:3;10823:93;:::i;:::-;10941:2;10936:3;10932:12;10925:19;;10584:366;;;:::o;10956:419::-;11122:4;11160:2;11149:9;11145:18;11137:26;;11209:9;11203:4;11199:20;11195:1;11184:9;11180:17;11173:47;11237:131;11363:4;11237:131;:::i;:::-;11229:139;;10956:419;;;:::o;11381:156::-;11521:8;11517:1;11509:6;11505:14;11498:32;11381:156;:::o;11543:365::-;11685:3;11706:66;11770:1;11765:3;11706:66;:::i;:::-;11699:73;;11781:93;11870:3;11781:93;:::i;:::-;11899:2;11894:3;11890:12;11883:19;;11543:365;;;:::o;11914:419::-;12080:4;12118:2;12107:9;12103:18;12095:26;;12167:9;12161:4;12157:20;12153:1;12142:9;12138:17;12131:47;12195:131;12321:4;12195:131;:::i;:::-;12187:139;;11914:419;;;:::o;12339:178::-;12479:30;12475:1;12467:6;12463:14;12456:54;12339:178;:::o;12523:366::-;12665:3;12686:67;12750:2;12745:3;12686:67;:::i;:::-;12679:74;;12762:93;12851:3;12762:93;:::i;:::-;12880:2;12875:3;12871:12;12864:19;;12523:366;;;:::o;12895:419::-;13061:4;13099:2;13088:9;13084:18;13076:26;;13148:9;13142:4;13138:20;13134:1;13123:9;13119:17;13112:47;13176:131;13302:4;13176:131;:::i;:::-;13168:139;;12895:419;;;:::o;13320:168::-;13460:20;13456:1;13448:6;13444:14;13437:44;13320:168;:::o;13494:366::-;13636:3;13657:67;13721:2;13716:3;13657:67;:::i;:::-;13650:74;;13733:93;13822:3;13733:93;:::i;:::-;13851:2;13846:3;13842:12;13835:19;;13494:366;;;:::o;13866:419::-;14032:4;14070:2;14059:9;14055:18;14047:26;;14119:9;14113:4;14109:20;14105:1;14094:9;14090:17;14083:47;14147:131;14273:4;14147:131;:::i;:::-;14139:139;;13866:419;;;:::o;14291:168::-;14431:20;14427:1;14419:6;14415:14;14408:44;14291:168;:::o;14465:366::-;14607:3;14628:67;14692:2;14687:3;14628:67;:::i;:::-;14621:74;;14704:93;14793:3;14704:93;:::i;:::-;14822:2;14817:3;14813:12;14806:19;;14465:366;;;:::o;14837:419::-;15003:4;15041:2;15030:9;15026:18;15018:26;;15090:9;15084:4;15080:20;15076:1;15065:9;15061:17;15054:47;15118:131;15244:4;15118:131;:::i;:::-;15110:139;;14837:419;;;:::o;15262:166::-;15402:18;15398:1;15390:6;15386:14;15379:42;15262:166;:::o;15434:366::-;15576:3;15597:67;15661:2;15656:3;15597:67;:::i;:::-;15590:74;;15673:93;15762:3;15673:93;:::i;:::-;15791:2;15786:3;15782:12;15775:19;;15434:366;;;:::o;15806:419::-;15972:4;16010:2;15999:9;15995:18;15987:26;;16059:9;16053:4;16049:20;16045:1;16034:9;16030:17;16023:47;16087:131;16213:4;16087:131;:::i;:::-;16079:139;;15806:419;;;:::o;16231:134::-;16289:9;16322:37;16353:5;16322:37;:::i;:::-;16309:50;;16231:134;;;:::o;16371:147::-;16466:45;16505:5;16466:45;:::i;:::-;16461:3;16454:58;16371:147;;:::o;16524:238::-;16625:4;16663:2;16652:9;16648:18;16640:26;;16676:79;16752:1;16741:9;16737:17;16728:6;16676:79;:::i;:::-;16524:238;;;;:::o;16768:180::-;16816:77;16813:1;16806:88;16913:4;16910:1;16903:15;16937:4;16934:1;16927:15;16954:348;16994:7;17017:20;17035:1;17017:20;:::i;:::-;17012:25;;17051:20;17069:1;17051:20;:::i;:::-;17046:25;;17239:1;17171:66;17167:74;17164:1;17161:81;17156:1;17149:9;17142:17;17138:105;17135:131;;;17246:18;;:::i;:::-;17135:131;17294:1;17291;17287:9;17276:20;;16954:348;;;;:::o;17308:180::-;17356:77;17353:1;17346:88;17453:4;17450:1;17443:15;17477:4;17474:1;17467:15;17494:185;17534:1;17551:20;17569:1;17551:20;:::i;:::-;17546:25;;17585:20;17603:1;17585:20;:::i;:::-;17580:25;;17624:1;17614:35;;17629:18;;:::i;:::-;17614:35;17671:1;17668;17664:9;17659:14;;17494:185;;;;:::o;17685:220::-;17825:34;17821:1;17813:6;17809:14;17802:58;17894:3;17889:2;17881:6;17877:15;17870:28;17685:220;:::o;17911:366::-;18053:3;18074:67;18138:2;18133:3;18074:67;:::i;:::-;18067:74;;18150:93;18239:3;18150:93;:::i;:::-;18268:2;18263:3;18259:12;18252:19;;17911:366;;;:::o;18283:419::-;18449:4;18487:2;18476:9;18472:18;18464:26;;18536:9;18530:4;18526:20;18522:1;18511:9;18507:17;18500:47;18564:131;18690:4;18564:131;:::i;:::-;18556:139;;18283:419;;;:::o;18708:169::-;18848:21;18844:1;18836:6;18832:14;18825:45;18708:169;:::o;18883:366::-;19025:3;19046:67;19110:2;19105:3;19046:67;:::i;:::-;19039:74;;19122:93;19211:3;19122:93;:::i;:::-;19240:2;19235:3;19231:12;19224:19;;18883:366;;;:::o;19255:419::-;19421:4;19459:2;19448:9;19444:18;19436:26;;19508:9;19502:4;19498:20;19494:1;19483:9;19479:17;19472:47;19536:131;19662:4;19536:131;:::i;:::-;19528:139;;19255:419;;;:::o;19680:191::-;19720:4;19740:20;19758:1;19740:20;:::i;:::-;19735:25;;19774:20;19792:1;19774:20;:::i;:::-;19769:25;;19813:1;19810;19807:8;19804:34;;;19818:18;;:::i;:::-;19804:34;19863:1;19860;19856:9;19848:17;;19680:191;;;;:::o;19877:169::-;20017:21;20013:1;20005:6;20001:14;19994:45;19877:169;:::o;20052:366::-;20194:3;20215:67;20279:2;20274:3;20215:67;:::i;:::-;20208:74;;20291:93;20380:3;20291:93;:::i;:::-;20409:2;20404:3;20400:12;20393:19;;20052:366;;;:::o;20424:419::-;20590:4;20628:2;20617:9;20613:18;20605:26;;20677:9;20671:4;20667:20;20663:1;20652:9;20648:17;20641:47;20705:131;20831:4;20705:131;:::i;:::-;20697:139;;20424:419;;;:::o;20849:170::-;20989:22;20985:1;20977:6;20973:14;20966:46;20849:170;:::o;21025:366::-;21167:3;21188:67;21252:2;21247:3;21188:67;:::i;:::-;21181:74;;21264:93;21353:3;21264:93;:::i;:::-;21382:2;21377:3;21373:12;21366:19;;21025:366;;;:::o;21397:419::-;21563:4;21601:2;21590:9;21586:18;21578:26;;21650:9;21644:4;21640:20;21636:1;21625:9;21621:17;21614:47;21678:131;21804:4;21678:131;:::i;:::-;21670:139;;21397:419;;;:::o;21822:305::-;21862:3;21881:20;21899:1;21881:20;:::i;:::-;21876:25;;21915:20;21933:1;21915:20;:::i;:::-;21910:25;;22069:1;22001:66;21997:74;21994:1;21991:81;21988:107;;;22075:18;;:::i;:::-;21988:107;22119:1;22116;22112:9;22105:16;;21822:305;;;;:::o;22133:174::-;22273:26;22269:1;22261:6;22257:14;22250:50;22133:174;:::o;22313:366::-;22455:3;22476:67;22540:2;22535:3;22476:67;:::i;:::-;22469:74;;22552:93;22641:3;22552:93;:::i;:::-;22670:2;22665:3;22661:12;22654:19;;22313:366;;;:::o;22685:419::-;22851:4;22889:2;22878:9;22874:18;22866:26;;22938:9;22932:4;22928:20;22924:1;22913:9;22909:17;22902:47;22966:131;23092:4;22966:131;:::i;:::-;22958:139;;22685:419;;;:::o;23110:177::-;23250:29;23246:1;23238:6;23234:14;23227:53;23110:177;:::o;23293:366::-;23435:3;23456:67;23520:2;23515:3;23456:67;:::i;:::-;23449:74;;23532:93;23621:3;23532:93;:::i;:::-;23650:2;23645:3;23641:12;23634:19;;23293:366;;;:::o;23665:419::-;23831:4;23869:2;23858:9;23854:18;23846:26;;23918:9;23912:4;23908:20;23904:1;23893:9;23889:17;23882:47;23946:131;24072:4;23946:131;:::i;:::-;23938:139;;23665:419;;;:::o;24090:180::-;24138:77;24135:1;24128:88;24235:4;24232:1;24225:15;24259:4;24256:1;24249:15;24276:180;24324:77;24321:1;24314:88;24421:4;24418:1;24411:15;24445:4;24442:1;24435:15;24462:143;24519:5;24550:6;24544:13;24535:22;;24566:33;24593:5;24566:33;:::i;:::-;24462:143;;;;:::o;24611:351::-;24681:6;24730:2;24718:9;24709:7;24705:23;24701:32;24698:119;;;24736:79;;:::i;:::-;24698:119;24856:1;24881:64;24937:7;24928:6;24917:9;24913:22;24881:64;:::i;:::-;24871:74;;24827:128;24611:351;;;;:::o;24968:85::-;25013:7;25042:5;25031:16;;24968:85;;;:::o;25059:158::-;25117:9;25150:61;25168:42;25177:32;25203:5;25177:32;:::i;:::-;25168:42;:::i;:::-;25150:61;:::i;:::-;25137:74;;25059:158;;;:::o;25223:147::-;25318:45;25357:5;25318:45;:::i;:::-;25313:3;25306:58;25223:147;;:::o;25376:114::-;25443:6;25477:5;25471:12;25461:22;;25376:114;;;:::o;25496:184::-;25595:11;25629:6;25624:3;25617:19;25669:4;25664:3;25660:14;25645:29;;25496:184;;;;:::o;25686:132::-;25753:4;25776:3;25768:11;;25806:4;25801:3;25797:14;25789:22;;25686:132;;;:::o;25824:108::-;25901:24;25919:5;25901:24;:::i;:::-;25896:3;25889:37;25824:108;;:::o;25938:179::-;26007:10;26028:46;26070:3;26062:6;26028:46;:::i;:::-;26106:4;26101:3;26097:14;26083:28;;25938:179;;;;:::o;26123:113::-;26193:4;26225;26220:3;26216:14;26208:22;;26123:113;;;:::o;26272:732::-;26391:3;26420:54;26468:5;26420:54;:::i;:::-;26490:86;26569:6;26564:3;26490:86;:::i;:::-;26483:93;;26600:56;26650:5;26600:56;:::i;:::-;26679:7;26710:1;26695:284;26720:6;26717:1;26714:13;26695:284;;;26796:6;26790:13;26823:63;26882:3;26867:13;26823:63;:::i;:::-;26816:70;;26909:60;26962:6;26909:60;:::i;:::-;26899:70;;26755:224;26742:1;26739;26735:9;26730:14;;26695:284;;;26699:14;26995:3;26988:10;;26396:608;;;26272:732;;;;:::o;27010:831::-;27273:4;27311:3;27300:9;27296:19;27288:27;;27325:71;27393:1;27382:9;27378:17;27369:6;27325:71;:::i;:::-;27406:80;27482:2;27471:9;27467:18;27458:6;27406:80;:::i;:::-;27533:9;27527:4;27523:20;27518:2;27507:9;27503:18;27496:48;27561:108;27664:4;27655:6;27561:108;:::i;:::-;27553:116;;27679:72;27747:2;27736:9;27732:18;27723:6;27679:72;:::i;:::-;27761:73;27829:3;27818:9;27814:19;27805:6;27761:73;:::i;:::-;27010:831;;;;;;;;:::o;27847:147::-;27948:11;27985:3;27970:18;;27847:147;;;;:::o;28000:114::-;;:::o;28120:398::-;28279:3;28300:83;28381:1;28376:3;28300:83;:::i;:::-;28293:90;;28392:93;28481:3;28392:93;:::i;:::-;28510:1;28505:3;28501:11;28494:18;;28120:398;;;:::o;28524:379::-;28708:3;28730:147;28873:3;28730:147;:::i;:::-;28723:154;;28894:3;28887:10;;28524:379;;;:::o;28909:807::-;29158:4;29196:3;29185:9;29181:19;29173:27;;29210:71;29278:1;29267:9;29263:17;29254:6;29210:71;:::i;:::-;29291:72;29359:2;29348:9;29344:18;29335:6;29291:72;:::i;:::-;29373:80;29449:2;29438:9;29434:18;29425:6;29373:80;:::i;:::-;29463;29539:2;29528:9;29524:18;29515:6;29463:80;:::i;:::-;29553:73;29621:3;29610:9;29606:19;29597:6;29553:73;:::i;:::-;29636;29704:3;29693:9;29689:19;29680:6;29636:73;:::i;:::-;28909:807;;;;;;;;;:::o;29722:143::-;29779:5;29810:6;29804:13;29795:22;;29826:33;29853:5;29826:33;:::i;:::-;29722:143;;;;:::o;29871:663::-;29959:6;29967;29975;30024:2;30012:9;30003:7;29999:23;29995:32;29992:119;;;30030:79;;:::i;:::-;29992:119;30150:1;30175:64;30231:7;30222:6;30211:9;30207:22;30175:64;:::i;:::-;30165:74;;30121:128;30288:2;30314:64;30370:7;30361:6;30350:9;30346:22;30314:64;:::i;:::-;30304:74;;30259:129;30427:2;30453:64;30509:7;30500:6;30489:9;30485:22;30453:64;:::i;:::-;30443:74;;30398:129;29871:663;;;;;:::o;30540:167::-;30680:19;30676:1;30668:6;30664:14;30657:43;30540:167;:::o;30713:366::-;30855:3;30876:67;30940:2;30935:3;30876:67;:::i;:::-;30869:74;;30952:93;31041:3;30952:93;:::i;:::-;31070:2;31065:3;31061:12;31054:19;;30713:366;;;:::o;31085:419::-;31251:4;31289:2;31278:9;31274:18;31266:26;;31338:9;31332:4;31328:20;31324:1;31313:9;31309:17;31302:47;31366:131;31492:4;31366:131;:::i;:::-;31358:139;;31085:419;;;:::o

Swarm Source

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