ETH Price: $2,383.08 (+1.30%)

Token

It Protocol (IT)
 

Overview

Max Total Supply

100,000 IT

Holders

92

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
15.802678062 IT

Value
$0.00
0x9084a0d8e1b2286474cff6d0d27104a36621507c
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:
ItProtocol

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-17
*/

//SPDX-License-Identifier: MIT


 
pragma solidity ^0.8.5;

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

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

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

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

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

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

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

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

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

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

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

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

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

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

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

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

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

}



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

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

    string constant _name = "It Protocol";
    string constant _symbol = "IT";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1 * 10 ** 5 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply  / 100; // 1%
    uint256 public _maxWalletToken = _totalSupply / 100; // 2%

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

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

    bool tradingEnabled = false;

    uint256 marketingFee = 20;
    uint256 totalFee = 20;

    uint256 feeDenominator = 1000;
    uint256 feeAmount;

    address public marketingFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    // Cooldown & timer functionality

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 10 / 10000; // 0.01% of supply
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D );
        // router = IDEXRouter(0xD99D1c33F9fC3444f8101754aBC46c52416550D1 );
        
        
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        
        // No timelock for these people
        
        isLimitExempt[address(this)] = true;
        isLimitExempt[DEAD] = true;
        isLimitExempt[msg.sender]= true;
        
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        
        marketingFeeReceiver = msg.sender;
        
        _balances[msg.sender] = _totalSupply;
        _allowances[msg.sender][address(router)] = _totalSupply;
    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    //settting the maximum permitted wallet holding (percent of total supply)
     function setMaxWalletPercent(uint256 maxWallet) external onlyOwner() {
       uint256 amount = (_totalSupply * maxWallet / feeDenominator);
        require(amount > _totalSupply / 100, "You can't set Max Wallet This Low!"); // Can't Set Max Wallet under 1%
        _maxWalletToken = amount;
    }

    function setMaxTxPercent(uint256 maxTx) external onlyOwner() {
       uint256 amount = (_totalSupply * maxTx / feeDenominator);
        require(amount > _totalSupply / 100, "You can't set Max Wallet This Low!"); // Can't set Max Tx under 1%
        _maxTxAmount = amount;
    }

    function removeLimits() external onlyOwner{
        _maxWalletToken = _totalSupply;
        _maxTxAmount = _totalSupply;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        require(tradingEnabled || isLimitExempt[sender], "Trading is not enabled.");
        
        // max wallet code
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");
        }
        
        // Checks max transaction limit
        checkTxLimit(sender, amount, recipient);

        // Liquidity, Maintained at 25%
        if(shouldSwapBack()){ 
            swapBack();
        }

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

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

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

    function enableTrading() public onlyOwner{
        tradingEnabled = true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount, address recipient) internal view {
        require(amount <= _maxTxAmount || isLimitExempt[sender] || isLimitExempt[recipient] , "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount) internal returns (uint256) {

        feeAmount = amount.mul(totalFee).div(feeDenominator);
        
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {

        uint256 amountToSwap = swapThreshold;

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 amountETHMarketing = amountETH;

        payable(marketingFeeReceiver).call{value: amountETHMarketing, gas:30000};
        
    }

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

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


    function setFeeReceivers( address _marketingFeeReceiver) external authorized {
        marketingFeeReceiver = _marketingFeeReceiver;
    }

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

    function getStuckBalance() external authorized {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingFeeReceiver).transfer(contractETHBalance);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

}

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":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStuckBalance","outputs":[],"stateMutability":"nonpayable","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":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTx","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000999190620009a8565b620186a0620000a9919062000ae5565b6005556064600554620000bd919062000915565b6006556064600554620000d1919062000915565b6007556000600c60006101000a81548160ff0219169083151502179055506014600d556014600e556103e8600f55601460125560646013556001601560146101000a81548160ff021916908315150217905550612710600a60055462000138919062000ae5565b62000144919062000915565b6016553480156200015457600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ac57600080fd5b505afa158015620002c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e79190620008a5565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039057600080fd5b505afa158015620003a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cb9190620008a5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b815260040162000429929190620008e8565b602060405180830381600087803b1580156200044457600080fd5b505af115801562000459573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047f9190620008a5565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600554600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000c1b565b6000815190506200089f8162000c01565b92915050565b600060208284031215620008be57620008bd62000bef565b5b6000620008ce848285016200088e565b91505092915050565b620008e28162000b46565b82525050565b6000604082019050620008ff6000830185620008d7565b6200090e6020830184620008d7565b9392505050565b6000620009228262000b7a565b91506200092f8362000b7a565b92508262000942576200094162000bc0565b5b828204905092915050565b6000808291508390505b60018511156200099f5780860481111562000977576200097662000b91565b5b6001851615620009875780820291505b8081029050620009978562000bf4565b945062000957565b94509492505050565b6000620009b58262000b7a565b9150620009c28362000b84565b9250620009f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009f9565b905092915050565b60008262000a0b576001905062000ade565b8162000a1b576000905062000ade565b816001811462000a34576002811462000a3f5762000a75565b600191505062000ade565b60ff84111562000a545762000a5362000b91565b5b8360020a91508482111562000a6e5762000a6d62000b91565b5b5062000ade565b5060208310610133831016604e8410600b841016171562000aaf5782820a90508381111562000aa95762000aa862000b91565b5b62000ade565b62000abe84848460016200094d565b9250905081840481111562000ad85762000ad762000b91565b5b81810290505b9392505050565b600062000af28262000b7a565b915062000aff8362000b7a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b3b5762000b3a62000b91565b5b828202905092915050565b600062000b538262000b5a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000c0c8162000b46565b811462000c1857600080fd5b50565b61308e8062000c2b6000396000f3fe6080604052600436106101fd5760003560e01c8063893d20e81161010d578063d962cf58116100a0578063e96fada21161006f578063e96fada21461071c578063f0b37c0414610747578063f2fde38b14610770578063f887ea4014610799578063fe9fbb80146107c457610204565b8063d962cf5814610664578063dd62ed3e1461068d578063df20fd49146106ca578063e01bb688146106f357610204565b8063a9059cbb116100dc578063a9059cbb146105aa578063ad5c4648146105e7578063b6a5d7de14610612578063d543dbeb1461063b57610204565b8063893d20e8146105125780638a8c523c1461053d57806395d89b4114610554578063a8aa1b311461057f57610204565b8063571ac8b011610190578063751039fc1161015f578063751039fc1461046557806378109e541461047c5780637a336e66146104a75780637d1db4a5146104be57806382bf293c146104e957610204565b8063571ac8b014610397578063658d4b7f146103d45780636ddd1713146103fd57806370a082311461042857610204565b806323b872dd116101cc57806323b872dd146102c75780632b112e49146103045780632f54bf6e1461032f578063313ce5671461036c57610204565b80630445b6671461020957806306fdde0314610234578063095ea7b31461025f57806318160ddd1461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e610801565b60405161022b9190612a82565b60405180910390f35b34801561024057600080fd5b50610249610807565b6040516102569190612960565b60405180910390f35b34801561026b57600080fd5b5061028660048036038101906102819190612608565b610844565b604051610293919061292a565b60405180910390f35b3480156102a857600080fd5b506102b1610936565b6040516102be9190612a82565b60405180910390f35b3480156102d357600080fd5b506102ee60048036038101906102e99190612575565b610940565b6040516102fb919061292a565b60405180910390f35b34801561031057600080fd5b50610319610b40565b6040516103269190612a82565b60405180910390f35b34801561033b57600080fd5b50610356600480360381019061035191906124db565b610bc2565b604051610363919061292a565b60405180910390f35b34801561037857600080fd5b50610381610c1b565b60405161038e9190612af7565b60405180910390f35b3480156103a357600080fd5b506103be60048036038101906103b991906124db565b610c24565b6040516103cb919061292a565b60405180910390f35b3480156103e057600080fd5b506103fb60048036038101906103f691906125c8565b610c57565b005b34801561040957600080fd5b50610412610cfa565b60405161041f919061292a565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a91906124db565b610d0d565b60405161045c9190612a82565b60405180910390f35b34801561047157600080fd5b5061047a610d56565b005b34801561048857600080fd5b50610491610db2565b60405161049e9190612a82565b60405180910390f35b3480156104b357600080fd5b506104bc610db8565b005b3480156104ca57600080fd5b506104d3610e71565b6040516104e09190612a82565b60405180910390f35b3480156104f557600080fd5b50610510600480360381019061050b9190612688565b610e77565b005b34801561051e57600080fd5b50610527610f39565b60405161053491906128f4565b60405180910390f35b34801561054957600080fd5b50610552610f62565b005b34801561056057600080fd5b50610569610fc7565b6040516105769190612960565b60405180910390f35b34801561058b57600080fd5b50610594611004565b6040516105a191906128f4565b60405180910390f35b3480156105b657600080fd5b506105d160048036038101906105cc9190612608565b61102a565b6040516105de919061292a565b60405180910390f35b3480156105f357600080fd5b506105fc61103f565b60405161060991906128f4565b60405180910390f35b34801561061e57600080fd5b50610639600480360381019061063491906124db565b611065565b005b34801561064757600080fd5b50610662600480360381019061065d9190612688565b611107565b005b34801561067057600080fd5b5061068b600480360381019061068691906125c8565b6111c9565b005b34801561069957600080fd5b506106b460048036038101906106af9190612535565b61126c565b6040516106c19190612a82565b60405180910390f35b3480156106d657600080fd5b506106f160048036038101906106ec9190612648565b6112f3565b005b3480156106ff57600080fd5b5061071a600480360381019061071591906124db565b611360565b005b34801561072857600080fd5b506107316113ec565b60405161073e91906128f4565b60405180910390f35b34801561075357600080fd5b5061076e600480360381019061076991906124db565b611412565b005b34801561077c57600080fd5b5061079760048036038101906107929190612508565b6114b5565b005b3480156107a557600080fd5b506107ae6115ce565b6040516107bb9190612945565b60405180910390f35b3480156107d057600080fd5b506107eb60048036038101906107e691906124db565b6115f4565b6040516107f8919061292a565b60405180910390f35b60165481565b60606040518060400160405280600b81526020017f49742050726f746f636f6c000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109249190612a82565b60405180910390a36001905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b2c57610aab826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461164a9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b378484846116ae565b90509392505050565b6000610bbd610b70600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d0d565b610baf610b9e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d0d565b600554611b2e90919063ffffffff16565b611b2e90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000610c50827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610844565b9050919050565b610c60336115f4565b610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9690612a62565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560149054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5f33610bc2565b610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590612a22565b60405180910390fd5b600554600781905550600554600681905550565b60075481565b610dc1336115f4565b610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df790612a62565b60405180910390fd5b6000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e6d573d6000803e3d6000fd5b5050565b60065481565b610e8033610bc2565b610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690612a22565b60405180910390fd5b6000600f5482600554610ed29190612bee565b610edc9190612bbd565b90506064600554610eed9190612bbd565b8111610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2590612a42565b60405180910390fd5b806007819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f6b33610bc2565b610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612a22565b60405180910390fd5b6001600c60006101000a81548160ff021916908315150217905550565b60606040518060400160405280600281526020017f4954000000000000000000000000000000000000000000000000000000000000815250905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006110373384846116ae565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61106e33610bc2565b6110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a490612a22565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61111033610bc2565b61114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114690612a22565b60405180910390fd5b6000600f54826005546111629190612bee565b61116c9190612bbd565b9050606460055461117d9190612bbd565b81116111be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b590612a42565b60405180910390fd5b806006819055505050565b6111d2336115f4565b611211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120890612a62565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112fc336115f4565b61133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612a62565b60405180910390fd5b81601560146101000a81548160ff021916908315150217905550806016819055505050565b611369336115f4565b6113a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139f90612a62565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61141b33610bc2565b61145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190612a22565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6114be33610bc2565b6114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490612a22565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516115c3919061290f565b60405180910390a150565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611692576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116899190612960565b60405180910390fd5b50600083856116a19190612c48565b9050809150509392505050565b6000601760009054906101000a900460ff16156116d7576116d0848484611b78565b9050611b27565b600c60009054906101000a900460ff168061173b5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61177a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611771906129c2565b60405180910390fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561180057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561185a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118b45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119185760006118c484610d0d565b905060075483826118d59190612b67565b1115611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190d90612a02565b60405180910390fd5b505b611923848385611d4b565b61192b611e3d565b1561193957611938611f14565b5b6119c2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461164a9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611a108561215e565b611a1a5782611a25565b611a2485846121b5565b5b9050611a7981600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230190919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b199190612a82565b60405180910390a360019150505b9392505050565b6000611b7083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061164a565b905092915050565b6000611c03826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461164a9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230190919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d389190612a82565b60405180910390a3600190509392505050565b60065482111580611da55750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611df95750600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f90612982565b60405180910390fd5b505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611eaa5750601760009054906101000a900460ff16155b8015611ec25750601560149054906101000a900460ff165b8015611f0f5750601654600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760006101000a81548160ff021916908315150217905550600060165490506000600267ffffffffffffffff811115611f5357611f52612dfd565b5b604051908082528060200260200182016040528015611f815781602001602082028036833780820191505090505b5090503081600081518110611f9957611f98612dce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061200a57612009612dce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016120ad959493929190612a9d565b600060405180830381600087803b1580156120c757600080fd5b505af11580156120db573d6000803e3d6000fd5b5050505060006120f48247611b2e90919063ffffffff16565b90506000819050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816175309050505050505050506000601760006101000a81548160ff021916908315150217905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60006121e0600f546121d2600e548561235f90919063ffffffff16565b6123da90919063ffffffff16565b60108190555061223a601054600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230190919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516122dc9190612a82565b60405180910390a36122f960105483611b2e90919063ffffffff16565b905092915050565b60008082846123109190612b67565b905083811015612355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234c906129a2565b60405180910390fd5b8091505092915050565b60008083141561237257600090506123d4565b600082846123809190612bee565b905082848261238f9190612bbd565b146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c6906129e2565b60405180910390fd5b809150505b92915050565b600061241c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612424565b905092915050565b6000808311829061246b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124629190612960565b60405180910390fd5b506000838561247a9190612bbd565b9050809150509392505050565b60008135905061249681612ffc565b92915050565b6000813590506124ab81613013565b92915050565b6000813590506124c08161302a565b92915050565b6000813590506124d581613041565b92915050565b6000602082840312156124f1576124f0612e2c565b5b60006124ff84828501612487565b91505092915050565b60006020828403121561251e5761251d612e2c565b5b600061252c8482850161249c565b91505092915050565b6000806040838503121561254c5761254b612e2c565b5b600061255a85828601612487565b925050602061256b85828601612487565b9150509250929050565b60008060006060848603121561258e5761258d612e2c565b5b600061259c86828701612487565b93505060206125ad86828701612487565b92505060406125be868287016124c6565b9150509250925092565b600080604083850312156125df576125de612e2c565b5b60006125ed85828601612487565b92505060206125fe858286016124b1565b9150509250929050565b6000806040838503121561261f5761261e612e2c565b5b600061262d85828601612487565b925050602061263e858286016124c6565b9150509250929050565b6000806040838503121561265f5761265e612e2c565b5b600061266d858286016124b1565b925050602061267e858286016124c6565b9150509250929050565b60006020828403121561269e5761269d612e2c565b5b60006126ac848285016124c6565b91505092915050565b60006126c183836126dc565b60208301905092915050565b6126d681612ce3565b82525050565b6126e581612c7c565b82525050565b6126f481612c7c565b82525050565b600061270582612b22565b61270f8185612b45565b935061271a83612b12565b8060005b8381101561274b57815161273288826126b5565b975061273d83612b38565b92505060018101905061271e565b5085935050505092915050565b61276181612ca0565b82525050565b61277081612cf5565b82525050565b61277f81612d07565b82525050565b600061279082612b2d565b61279a8185612b56565b93506127aa818560208601612d3d565b6127b381612e31565b840191505092915050565b60006127cb601183612b56565b91506127d682612e42565b602082019050919050565b60006127ee601b83612b56565b91506127f982612e6b565b602082019050919050565b6000612811601783612b56565b915061281c82612e94565b602082019050919050565b6000612834602183612b56565b915061283f82612ebd565b604082019050919050565b6000612857603e83612b56565b915061286282612f0c565b604082019050919050565b600061287a600683612b56565b915061288582612f5b565b602082019050919050565b600061289d602283612b56565b91506128a882612f84565b604082019050919050565b60006128c0600b83612b56565b91506128cb82612fd3565b602082019050919050565b6128df81612ccc565b82525050565b6128ee81612cd6565b82525050565b600060208201905061290960008301846126eb565b92915050565b600060208201905061292460008301846126cd565b92915050565b600060208201905061293f6000830184612758565b92915050565b600060208201905061295a6000830184612767565b92915050565b6000602082019050818103600083015261297a8184612785565b905092915050565b6000602082019050818103600083015261299b816127be565b9050919050565b600060208201905081810360008301526129bb816127e1565b9050919050565b600060208201905081810360008301526129db81612804565b9050919050565b600060208201905081810360008301526129fb81612827565b9050919050565b60006020820190508181036000830152612a1b8161284a565b9050919050565b60006020820190508181036000830152612a3b8161286d565b9050919050565b60006020820190508181036000830152612a5b81612890565b9050919050565b60006020820190508181036000830152612a7b816128b3565b9050919050565b6000602082019050612a9760008301846128d6565b92915050565b600060a082019050612ab260008301886128d6565b612abf6020830187612776565b8181036040830152612ad181866126fa565b9050612ae060608301856126eb565b612aed60808301846128d6565b9695505050505050565b6000602082019050612b0c60008301846128e5565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612b7282612ccc565b9150612b7d83612ccc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612bb257612bb1612d70565b5b828201905092915050565b6000612bc882612ccc565b9150612bd383612ccc565b925082612be357612be2612d9f565b5b828204905092915050565b6000612bf982612ccc565b9150612c0483612ccc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c3d57612c3c612d70565b5b828202905092915050565b6000612c5382612ccc565b9150612c5e83612ccc565b925082821015612c7157612c70612d70565b5b828203905092915050565b6000612c8782612cac565b9050919050565b6000612c9982612cac565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612cee82612d19565b9050919050565b6000612d0082612d19565b9050919050565b6000612d1282612ccc565b9050919050565b6000612d2482612d2b565b9050919050565b6000612d3682612cac565b9050919050565b60005b83811015612d5b578082015181840152602081019050612d40565b83811115612d6a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f596f752063616e277420736574204d61782057616c6c65742054686973204c6f60008201527f7721000000000000000000000000000000000000000000000000000000000000602082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61300581612c7c565b811461301057600080fd5b50565b61301c81612c8e565b811461302757600080fd5b50565b61303381612ca0565b811461303e57600080fd5b50565b61304a81612ccc565b811461305557600080fd5b5056fea2646970667358221220f15d63fe3276e5877f1efc13c842db88942b10513f70ac013467764b7b3d7fcb64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c8063893d20e81161010d578063d962cf58116100a0578063e96fada21161006f578063e96fada21461071c578063f0b37c0414610747578063f2fde38b14610770578063f887ea4014610799578063fe9fbb80146107c457610204565b8063d962cf5814610664578063dd62ed3e1461068d578063df20fd49146106ca578063e01bb688146106f357610204565b8063a9059cbb116100dc578063a9059cbb146105aa578063ad5c4648146105e7578063b6a5d7de14610612578063d543dbeb1461063b57610204565b8063893d20e8146105125780638a8c523c1461053d57806395d89b4114610554578063a8aa1b311461057f57610204565b8063571ac8b011610190578063751039fc1161015f578063751039fc1461046557806378109e541461047c5780637a336e66146104a75780637d1db4a5146104be57806382bf293c146104e957610204565b8063571ac8b014610397578063658d4b7f146103d45780636ddd1713146103fd57806370a082311461042857610204565b806323b872dd116101cc57806323b872dd146102c75780632b112e49146103045780632f54bf6e1461032f578063313ce5671461036c57610204565b80630445b6671461020957806306fdde0314610234578063095ea7b31461025f57806318160ddd1461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e610801565b60405161022b9190612a82565b60405180910390f35b34801561024057600080fd5b50610249610807565b6040516102569190612960565b60405180910390f35b34801561026b57600080fd5b5061028660048036038101906102819190612608565b610844565b604051610293919061292a565b60405180910390f35b3480156102a857600080fd5b506102b1610936565b6040516102be9190612a82565b60405180910390f35b3480156102d357600080fd5b506102ee60048036038101906102e99190612575565b610940565b6040516102fb919061292a565b60405180910390f35b34801561031057600080fd5b50610319610b40565b6040516103269190612a82565b60405180910390f35b34801561033b57600080fd5b50610356600480360381019061035191906124db565b610bc2565b604051610363919061292a565b60405180910390f35b34801561037857600080fd5b50610381610c1b565b60405161038e9190612af7565b60405180910390f35b3480156103a357600080fd5b506103be60048036038101906103b991906124db565b610c24565b6040516103cb919061292a565b60405180910390f35b3480156103e057600080fd5b506103fb60048036038101906103f691906125c8565b610c57565b005b34801561040957600080fd5b50610412610cfa565b60405161041f919061292a565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a91906124db565b610d0d565b60405161045c9190612a82565b60405180910390f35b34801561047157600080fd5b5061047a610d56565b005b34801561048857600080fd5b50610491610db2565b60405161049e9190612a82565b60405180910390f35b3480156104b357600080fd5b506104bc610db8565b005b3480156104ca57600080fd5b506104d3610e71565b6040516104e09190612a82565b60405180910390f35b3480156104f557600080fd5b50610510600480360381019061050b9190612688565b610e77565b005b34801561051e57600080fd5b50610527610f39565b60405161053491906128f4565b60405180910390f35b34801561054957600080fd5b50610552610f62565b005b34801561056057600080fd5b50610569610fc7565b6040516105769190612960565b60405180910390f35b34801561058b57600080fd5b50610594611004565b6040516105a191906128f4565b60405180910390f35b3480156105b657600080fd5b506105d160048036038101906105cc9190612608565b61102a565b6040516105de919061292a565b60405180910390f35b3480156105f357600080fd5b506105fc61103f565b60405161060991906128f4565b60405180910390f35b34801561061e57600080fd5b50610639600480360381019061063491906124db565b611065565b005b34801561064757600080fd5b50610662600480360381019061065d9190612688565b611107565b005b34801561067057600080fd5b5061068b600480360381019061068691906125c8565b6111c9565b005b34801561069957600080fd5b506106b460048036038101906106af9190612535565b61126c565b6040516106c19190612a82565b60405180910390f35b3480156106d657600080fd5b506106f160048036038101906106ec9190612648565b6112f3565b005b3480156106ff57600080fd5b5061071a600480360381019061071591906124db565b611360565b005b34801561072857600080fd5b506107316113ec565b60405161073e91906128f4565b60405180910390f35b34801561075357600080fd5b5061076e600480360381019061076991906124db565b611412565b005b34801561077c57600080fd5b5061079760048036038101906107929190612508565b6114b5565b005b3480156107a557600080fd5b506107ae6115ce565b6040516107bb9190612945565b60405180910390f35b3480156107d057600080fd5b506107eb60048036038101906107e691906124db565b6115f4565b6040516107f8919061292a565b60405180910390f35b60165481565b60606040518060400160405280600b81526020017f49742050726f746f636f6c000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109249190612a82565b60405180910390a36001905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b2c57610aab826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461164a9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b378484846116ae565b90509392505050565b6000610bbd610b70600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d0d565b610baf610b9e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d0d565b600554611b2e90919063ffffffff16565b611b2e90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000610c50827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610844565b9050919050565b610c60336115f4565b610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9690612a62565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560149054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d5f33610bc2565b610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590612a22565b60405180910390fd5b600554600781905550600554600681905550565b60075481565b610dc1336115f4565b610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df790612a62565b60405180910390fd5b6000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e6d573d6000803e3d6000fd5b5050565b60065481565b610e8033610bc2565b610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690612a22565b60405180910390fd5b6000600f5482600554610ed29190612bee565b610edc9190612bbd565b90506064600554610eed9190612bbd565b8111610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2590612a42565b60405180910390fd5b806007819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f6b33610bc2565b610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612a22565b60405180910390fd5b6001600c60006101000a81548160ff021916908315150217905550565b60606040518060400160405280600281526020017f4954000000000000000000000000000000000000000000000000000000000000815250905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006110373384846116ae565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61106e33610bc2565b6110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a490612a22565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61111033610bc2565b61114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114690612a22565b60405180910390fd5b6000600f54826005546111629190612bee565b61116c9190612bbd565b9050606460055461117d9190612bbd565b81116111be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b590612a42565b60405180910390fd5b806006819055505050565b6111d2336115f4565b611211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120890612a62565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112fc336115f4565b61133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612a62565b60405180910390fd5b81601560146101000a81548160ff021916908315150217905550806016819055505050565b611369336115f4565b6113a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139f90612a62565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61141b33610bc2565b61145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190612a22565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6114be33610bc2565b6114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490612a22565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516115c3919061290f565b60405180910390a150565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611692576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116899190612960565b60405180910390fd5b50600083856116a19190612c48565b9050809150509392505050565b6000601760009054906101000a900460ff16156116d7576116d0848484611b78565b9050611b27565b600c60009054906101000a900460ff168061173b5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61177a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611771906129c2565b60405180910390fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561180057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561185a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118b45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119185760006118c484610d0d565b905060075483826118d59190612b67565b1115611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190d90612a02565b60405180910390fd5b505b611923848385611d4b565b61192b611e3d565b1561193957611938611f14565b5b6119c2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461164a9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611a108561215e565b611a1a5782611a25565b611a2485846121b5565b5b9050611a7981600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230190919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b199190612a82565b60405180910390a360019150505b9392505050565b6000611b7083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061164a565b905092915050565b6000611c03826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461164a9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230190919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d389190612a82565b60405180910390a3600190509392505050565b60065482111580611da55750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611df95750600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f90612982565b60405180910390fd5b505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611eaa5750601760009054906101000a900460ff16155b8015611ec25750601560149054906101000a900460ff165b8015611f0f5750601654600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760006101000a81548160ff021916908315150217905550600060165490506000600267ffffffffffffffff811115611f5357611f52612dfd565b5b604051908082528060200260200182016040528015611f815781602001602082028036833780820191505090505b5090503081600081518110611f9957611f98612dce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061200a57612009612dce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016120ad959493929190612a9d565b600060405180830381600087803b1580156120c757600080fd5b505af11580156120db573d6000803e3d6000fd5b5050505060006120f48247611b2e90919063ffffffff16565b90506000819050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816175309050505050505050506000601760006101000a81548160ff021916908315150217905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60006121e0600f546121d2600e548561235f90919063ffffffff16565b6123da90919063ffffffff16565b60108190555061223a601054600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230190919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516122dc9190612a82565b60405180910390a36122f960105483611b2e90919063ffffffff16565b905092915050565b60008082846123109190612b67565b905083811015612355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234c906129a2565b60405180910390fd5b8091505092915050565b60008083141561237257600090506123d4565b600082846123809190612bee565b905082848261238f9190612bbd565b146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c6906129e2565b60405180910390fd5b809150505b92915050565b600061241c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612424565b905092915050565b6000808311829061246b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124629190612960565b60405180910390fd5b506000838561247a9190612bbd565b9050809150509392505050565b60008135905061249681612ffc565b92915050565b6000813590506124ab81613013565b92915050565b6000813590506124c08161302a565b92915050565b6000813590506124d581613041565b92915050565b6000602082840312156124f1576124f0612e2c565b5b60006124ff84828501612487565b91505092915050565b60006020828403121561251e5761251d612e2c565b5b600061252c8482850161249c565b91505092915050565b6000806040838503121561254c5761254b612e2c565b5b600061255a85828601612487565b925050602061256b85828601612487565b9150509250929050565b60008060006060848603121561258e5761258d612e2c565b5b600061259c86828701612487565b93505060206125ad86828701612487565b92505060406125be868287016124c6565b9150509250925092565b600080604083850312156125df576125de612e2c565b5b60006125ed85828601612487565b92505060206125fe858286016124b1565b9150509250929050565b6000806040838503121561261f5761261e612e2c565b5b600061262d85828601612487565b925050602061263e858286016124c6565b9150509250929050565b6000806040838503121561265f5761265e612e2c565b5b600061266d858286016124b1565b925050602061267e858286016124c6565b9150509250929050565b60006020828403121561269e5761269d612e2c565b5b60006126ac848285016124c6565b91505092915050565b60006126c183836126dc565b60208301905092915050565b6126d681612ce3565b82525050565b6126e581612c7c565b82525050565b6126f481612c7c565b82525050565b600061270582612b22565b61270f8185612b45565b935061271a83612b12565b8060005b8381101561274b57815161273288826126b5565b975061273d83612b38565b92505060018101905061271e565b5085935050505092915050565b61276181612ca0565b82525050565b61277081612cf5565b82525050565b61277f81612d07565b82525050565b600061279082612b2d565b61279a8185612b56565b93506127aa818560208601612d3d565b6127b381612e31565b840191505092915050565b60006127cb601183612b56565b91506127d682612e42565b602082019050919050565b60006127ee601b83612b56565b91506127f982612e6b565b602082019050919050565b6000612811601783612b56565b915061281c82612e94565b602082019050919050565b6000612834602183612b56565b915061283f82612ebd565b604082019050919050565b6000612857603e83612b56565b915061286282612f0c565b604082019050919050565b600061287a600683612b56565b915061288582612f5b565b602082019050919050565b600061289d602283612b56565b91506128a882612f84565b604082019050919050565b60006128c0600b83612b56565b91506128cb82612fd3565b602082019050919050565b6128df81612ccc565b82525050565b6128ee81612cd6565b82525050565b600060208201905061290960008301846126eb565b92915050565b600060208201905061292460008301846126cd565b92915050565b600060208201905061293f6000830184612758565b92915050565b600060208201905061295a6000830184612767565b92915050565b6000602082019050818103600083015261297a8184612785565b905092915050565b6000602082019050818103600083015261299b816127be565b9050919050565b600060208201905081810360008301526129bb816127e1565b9050919050565b600060208201905081810360008301526129db81612804565b9050919050565b600060208201905081810360008301526129fb81612827565b9050919050565b60006020820190508181036000830152612a1b8161284a565b9050919050565b60006020820190508181036000830152612a3b8161286d565b9050919050565b60006020820190508181036000830152612a5b81612890565b9050919050565b60006020820190508181036000830152612a7b816128b3565b9050919050565b6000602082019050612a9760008301846128d6565b92915050565b600060a082019050612ab260008301886128d6565b612abf6020830187612776565b8181036040830152612ad181866126fa565b9050612ae060608301856126eb565b612aed60808301846128d6565b9695505050505050565b6000602082019050612b0c60008301846128e5565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612b7282612ccc565b9150612b7d83612ccc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612bb257612bb1612d70565b5b828201905092915050565b6000612bc882612ccc565b9150612bd383612ccc565b925082612be357612be2612d9f565b5b828204905092915050565b6000612bf982612ccc565b9150612c0483612ccc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c3d57612c3c612d70565b5b828202905092915050565b6000612c5382612ccc565b9150612c5e83612ccc565b925082821015612c7157612c70612d70565b5b828203905092915050565b6000612c8782612cac565b9050919050565b6000612c9982612cac565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612cee82612d19565b9050919050565b6000612d0082612d19565b9050919050565b6000612d1282612ccc565b9050919050565b6000612d2482612d2b565b9050919050565b6000612d3682612cac565b9050919050565b60005b83811015612d5b578082015181840152602081019050612d40565b83811115612d6a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f596f752063616e277420736574204d61782057616c6c65742054686973204c6f60008201527f7721000000000000000000000000000000000000000000000000000000000000602082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61300581612c7c565b811461301057600080fd5b50565b61301c81612c8e565b811461302757600080fd5b50565b61303381612ca0565b811461303e57600080fd5b50565b61304a81612ccc565b811461305557600080fd5b5056fea2646970667358221220f15d63fe3276e5877f1efc13c842db88942b10513f70ac013467764b7b3d7fcb64736f6c63430008070033

Deployed Bytecode Sourcemap

5542:8775:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6715:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8051:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8473:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7781:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8991:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14170:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3431:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7875:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8697:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13531:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6678:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8221:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10046:129;;;;;;;;;;;;;:::i;:::-;;6017:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13973:185;;;;;;;;;;;;;:::i;:::-;;5955:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9449:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8137:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11387:81;;;;;;;;;;;;;:::i;:::-;;7961:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6609:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8827:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5620:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3104:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9757:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13399:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8332:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13809:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13661:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6450:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3274:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3831:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6578:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3605:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6715:56;;;;:::o;8051:80::-;8099:13;8123:5;;;;;;;;;;;;;;;;;8116:12;;8051:80;:::o;8473:216::-;8548:4;8600:6;8565:11;:23;8577:10;8565:23;;;;;;;;;;;;;;;:32;8589:7;8565:32;;;;;;;;;;;;;;;:41;;;;8643:7;8622:37;;8631:10;8622:37;;;8652:6;8622:37;;;;;;:::i;:::-;;;;;;;;8677:4;8670:11;;8473:216;;;;:::o;7781:88::-;7836:7;7854:12;;7847:19;;7781:88;:::o;8991:370::-;9091:4;9146:17;9111:11;:19;9123:6;9111:19;;;;;;;;;;;;;;;:31;9131:10;9111:31;;;;;;;;;;;;;;;;:52;9108:186;;9213:69;9249:6;9213:69;;;;;;;;;;;;;;;;;:11;:19;9225:6;9213:19;;;;;;;;;;;;;;;:31;9233:10;9213:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9179:11;:19;9191:6;9179:19;;;;;;;;;;;;;;;:31;9199:10;9179:31;;;;;;;;;;;;;;;:103;;;;9108:186;9313:40;9327:6;9335:9;9346:6;9313:13;:40::i;:::-;9306:47;;8991:370;;;;;:::o;14170:142::-;14223:7;14250:54;14288:15;14298:4;;;;;;;;;;;14288:9;:15::i;:::-;14250:33;14267:15;14277:4;;;;;;;;;;;14267:9;:15::i;:::-;14250:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;14243:61;;14170:142;:::o;3431:103::-;3486:4;3521:5;;;;;;;;;;;3510:16;;:7;:16;;;3503:23;;3431:103;;;:::o;7875:80::-;7927:5;5884:1;7936:16;;7875:80;:::o;8697:122::-;8752:4;8776:35;8784:7;8793:17;8776:7;:35::i;:::-;8769:42;;8697:122;;;:::o;13531:120::-;2989:24;3002:10;2989:12;:24::i;:::-;2981:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13637:6:::1;13615:11;:19;13627:6;13615:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13531:120:::0;;:::o;6678:30::-;;;;;;;;;;;;;:::o;8221:105::-;8287:7;8305:9;:18;8315:7;8305:18;;;;;;;;;;;;;;;;8298:25;;8221:105;;;:::o;10046:129::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10117:12:::1;;10099:15;:30;;;;10155:12;;10140;:27;;;;10046:129::o:0;6017:51::-;;;;:::o;13973:185::-;2989:24;3002:10;2989:12;:24::i;:::-;2981:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14031:26:::1;14060:21;14031:50;;14100:20;;;;;;;;;;;14092:38;;:58;14131:18;14092:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14020:138;13973:185::o:0;5955:49::-;;;;:::o;9449:300::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9528:14:::1;9573;;9561:9;9546:12;;:24;;;;:::i;:::-;:41;;;;:::i;:::-;9528:60;;9631:3;9616:12;;:18;;;;:::i;:::-;9607:6;:27;9599:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9735:6;9717:15;:24;;;;9518:231;9449:300:::0;:::o;8137:78::-;8189:7;8207:5;;;;;;;;;;;8200:12;;8137:78;:::o;11387:81::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11456:4:::1;11439:14;;:21;;;;;;;;;;;;;;;;;;11387:81::o:0;7961:84::-;8011:13;8035:7;;;;;;;;;;;;;;;;;8028:14;;7961:84;:::o;6609:19::-;;;;;;;;;;;;;:::o;8827:156::-;8907:4;8931:44;8945:10;8957:9;8968:6;8931:13;:44::i;:::-;8924:51;;8827:156;;;;:::o;5620:19::-;;;;;;;;;;;;;:::o;3104:94::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3186:4:::1;3164:14:::0;:19:::1;3179:3;3164:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3104:94:::0;:::o;9757:281::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9828:14:::1;9869;;9861:5;9846:12;;:20;;;;:::i;:::-;:37;;;;:::i;:::-;9828:56;;9927:3;9912:12;;:18;;;;:::i;:::-;9903:6;:27;9895:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10024:6;10009:12;:21;;;;9818:220;9757:281:::0;:::o;13399:124::-;2989:24;3002:10;2989:12;:24::i;:::-;2981:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13509:6:::1;13485:13;:21;13499:6;13485:21;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;13399:124:::0;;:::o;8332:133::-;8416:7;8434:11;:19;8446:6;8434:19;;;;;;;;;;;;;;;:28;8454:7;8434:28;;;;;;;;;;;;;;;;8427:35;;8332:133;;;;:::o;13809:156::-;2989:24;3002:10;2989:12;:24::i;:::-;2981:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13915:8:::1;13901:11;;:22;;;;;;;;;;;;;;;;;;13950:7;13934:13;:23;;;;13809:156:::0;;:::o;13661:140::-;2989:24;3002:10;2989:12;:24::i;:::-;2981:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13772:21:::1;13749:20;;:44;;;;;;;;;;;;;;;;;;13661:140:::0;:::o;6450:35::-;;;;;;;;;;;;;:::o;3274:97::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3358:5:::1;3336:14;:19;3351:3;3336:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3274:97:::0;:::o;3831:173::-;2820:19;2828:10;2820:7;:19::i;:::-;2812:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3915:3:::1;3907:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3951:4;3929:14:::0;:19:::1;3944:3;3929:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3971:25;3992:3;3971:25;;;;;;:::i;:::-;;;;;;;;3831:173:::0;:::o;6578:24::-;;;;;;;;;;;;;:::o;3605:107::-;3661:4;3685:14;:19;3700:3;3685:19;;;;;;;;;;;;;;;;;;;;;;;;;3678:26;;3605:107;;;:::o;490:192::-;576:7;609:1;604;:6;;612:12;596:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;636:9;652:1;648;:5;;;;:::i;:::-;636:17;;673:1;666:8;;;490:192;;;;;:::o;10183:1196::-;10275:4;10295:6;;;;;;;;;;;10292:63;;;10311:41;10326:6;10334:9;10345:6;10311:14;:41::i;:::-;10304:48;;;;10292:63;10373:14;;;;;;;;;;;:39;;;;10391:13;:21;10405:6;10391:21;;;;;;;;;;;;;;;;;;;;;;;;;10373:39;10365:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;10494:14;:22;10509:6;10494:22;;;;;;;;;;;;;;;;;;;;;;;;;10493:23;:53;;;;;10541:4;10520:26;;:9;:26;;;;10493:53;:84;;;;;10572:4;;;;;;;;;;;10551:26;;:9;:26;;;;10493:84;:105;;;;;10594:4;;;;;;;;;;;10581:17;;:9;:17;;;;10493:105;10489:307;;;10614:18;10635:20;10645:9;10635;:20::i;:::-;10614:41;;10703:15;;10692:6;10679:10;:19;;;;:::i;:::-;10678:40;;10670:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;10599:197;10489:307;10857:39;10870:6;10878;10886:9;10857:12;:39::i;:::-;10953:16;:14;:16::i;:::-;10950:58;;;10986:10;:8;:10::i;:::-;10950:58;11067:53;11089:6;11067:53;;;;;;;;;;;;;;;;;:9;:17;11077:6;11067:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11047:9;:17;11057:6;11047:17;;;;;;;;;;;;;;;:73;;;;11133:22;11158:21;11172:6;11158:13;:21::i;:::-;:56;;11208:6;11158:56;;;11182:23;11190:6;11198;11182:7;:23::i;:::-;11158:56;11133:81;;11248:40;11273:14;11248:9;:20;11258:9;11248:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11225:9;:20;11235:9;11225:20;;;;;;;;;;;;;;;:63;;;;11323:9;11306:43;;11315:6;11306:43;;;11334:14;11306:43;;;;;;:::i;:::-;;;;;;;;11367:4;11360:11;;;10183:1196;;;;;;:::o;348:136::-;406:7;433:43;437:1;440;433:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;426:50;;348:136;;;;:::o;11480:330::-;11573:4;11610:53;11632:6;11610:53;;;;;;;;;;;;;;;;;:9;:17;11620:6;11610:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11590:9;:17;11600:6;11590:17;;;;;;;;;;;;;;;:73;;;;11697:32;11722:6;11697:9;:20;11707:9;11697:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11674:9;:20;11684:9;11674:20;;;;;;;;;;;;;;;:55;;;;11762:9;11745:35;;11754:6;11745:35;;;11773:6;11745:35;;;;;;:::i;:::-;;;;;;;;11798:4;11791:11;;11480:330;;;;;:::o;11818:212::-;11934:12;;11924:6;:22;;:47;;;;11950:13;:21;11964:6;11950:21;;;;;;;;;;;;;;;;;;;;;;;;;11924:47;:75;;;;11975:13;:24;11989:9;11975:24;;;;;;;;;;;;;;;;;;;;;;;;;11924:75;11916:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;11818:212;;;:::o;12503:197::-;12552:4;12590;;;;;;;;;;;12576:18;;:10;:18;;;;:38;;;;;12608:6;;;;;;;;;;;12607:7;12576:38;:62;;;;;12627:11;;;;;;;;;;;12576:62;:116;;;;;12679:13;;12651:9;:24;12669:4;12651:24;;;;;;;;;;;;;;;;:41;;12576:116;12569:123;;12503:197;:::o;12708:683::-;6846:4;6837:6;;:13;;;;;;;;;;;;;;;;;;12759:20:::1;12782:13;;12759:36;;12808:21;12846:1;12832:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12808:40;;12877:4;12859;12864:1;12859:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12903:4;;;;;;;;;;;12893;12898:1;12893:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;12920:21;12944;12920:45;;12978:6;;;;;;;;;;;:57;;;13050:12;13077:1;13093:4;13120;13140:15;12978:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13179:17;13199:40;13225:13;13199:21;:25;;:40;;;;:::i;:::-;13179:60;;13250:26;13279:9;13250:38;;13309:20;;;;;;;;;;;13301:34;;13343:18;13367:5;13301:72;;;;12746:645;;;;;6864:5:::0;6855:6;;:14;;;;;;;;;;;;;;;;;;12708:683::o;12038:114::-;12100:4;12125:11;:19;12137:6;12125:19;;;;;;;;;;;;;;;;;;;;;;;;;12124:20;12117:27;;12038:114;;;:::o;12160:335::-;12227:7;12261:40;12286:14;;12261:20;12272:8;;12261:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;12249:9;:52;;;;12349:39;12378:9;;12349;:24;12367:4;12349:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12322:9;:24;12340:4;12322:24;;;;;;;;;;;;;;;:66;;;;12429:4;12404:42;;12413:6;12404:42;;;12436:9;;12404:42;;;;;;:::i;:::-;;;;;;;;12466:21;12477:9;;12466:6;:10;;:21;;;;:::i;:::-;12459:28;;12160:335;;;;:::o;161:181::-;219:7;239:9;255:1;251;:5;;;;:::i;:::-;239:17;;280:1;275;:6;;267:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;333:1;326:8;;;161:181;;;;:::o;688:250::-;746:7;775:1;770;:6;766:47;;;800:1;793:8;;;;766:47;825:9;841:1;837;:5;;;;:::i;:::-;825:17;;870:1;865;861;:5;;;;:::i;:::-;:10;853:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;929:1;922:8;;;688:250;;;;;:::o;944:132::-;1002:7;1029:39;1033:1;1036;1029:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1022:46;;944:132;;;;:::o;1082:345::-;1168:7;1267:1;1263;:5;1270:12;1255:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1294:9;1310:1;1306;:5;;;;:::i;:::-;1294:17;;1418:1;1411:8;;;1082:345;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;152:155;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;313:133;;;;:::o;452:139::-;498:5;536:6;523:20;514:29;;552:33;579:5;552:33;:::i;:::-;452:139;;;;:::o;597:329::-;656:6;705:2;693:9;684:7;680:23;676:32;673:119;;;711:79;;:::i;:::-;673:119;831:1;856:53;901:7;892:6;881:9;877:22;856:53;:::i;:::-;846:63;;802:117;597:329;;;;:::o;932:345::-;999:6;1048:2;1036:9;1027:7;1023:23;1019:32;1016:119;;;1054:79;;:::i;:::-;1016:119;1174:1;1199:61;1252:7;1243:6;1232:9;1228:22;1199:61;:::i;:::-;1189:71;;1145:125;932:345;;;;:::o;1283:474::-;1351:6;1359;1408:2;1396:9;1387:7;1383:23;1379:32;1376:119;;;1414:79;;:::i;:::-;1376:119;1534:1;1559:53;1604:7;1595:6;1584:9;1580:22;1559:53;:::i;:::-;1549:63;;1505:117;1661:2;1687:53;1732:7;1723:6;1712:9;1708:22;1687:53;:::i;:::-;1677:63;;1632:118;1283:474;;;;;:::o;1763:619::-;1840:6;1848;1856;1905:2;1893:9;1884:7;1880:23;1876:32;1873:119;;;1911:79;;:::i;:::-;1873:119;2031:1;2056:53;2101:7;2092:6;2081:9;2077:22;2056:53;:::i;:::-;2046:63;;2002:117;2158:2;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2129:118;2286:2;2312:53;2357:7;2348:6;2337:9;2333:22;2312:53;:::i;:::-;2302:63;;2257:118;1763:619;;;;;:::o;2388:468::-;2453:6;2461;2510:2;2498:9;2489:7;2485:23;2481:32;2478:119;;;2516:79;;:::i;:::-;2478:119;2636:1;2661:53;2706:7;2697:6;2686:9;2682:22;2661:53;:::i;:::-;2651:63;;2607:117;2763:2;2789:50;2831:7;2822:6;2811:9;2807:22;2789:50;:::i;:::-;2779:60;;2734:115;2388:468;;;;;:::o;2862:474::-;2930:6;2938;2987:2;2975:9;2966:7;2962:23;2958:32;2955:119;;;2993:79;;:::i;:::-;2955:119;3113:1;3138:53;3183:7;3174:6;3163:9;3159:22;3138:53;:::i;:::-;3128:63;;3084:117;3240:2;3266:53;3311:7;3302:6;3291:9;3287:22;3266:53;:::i;:::-;3256:63;;3211:118;2862:474;;;;;:::o;3342:468::-;3407:6;3415;3464:2;3452:9;3443:7;3439:23;3435:32;3432:119;;;3470:79;;:::i;:::-;3432:119;3590:1;3615:50;3657:7;3648:6;3637:9;3633:22;3615:50;:::i;:::-;3605:60;;3561:114;3714:2;3740:53;3785:7;3776:6;3765:9;3761:22;3740:53;:::i;:::-;3730:63;;3685:118;3342:468;;;;;:::o;3816:329::-;3875:6;3924:2;3912:9;3903:7;3899:23;3895:32;3892:119;;;3930:79;;:::i;:::-;3892:119;4050:1;4075:53;4120:7;4111:6;4100:9;4096:22;4075:53;:::i;:::-;4065:63;;4021:117;3816:329;;;;:::o;4151:179::-;4220:10;4241:46;4283:3;4275:6;4241:46;:::i;:::-;4319:4;4314:3;4310:14;4296:28;;4151:179;;;;:::o;4336:147::-;4431:45;4470:5;4431:45;:::i;:::-;4426:3;4419:58;4336:147;;:::o;4489:108::-;4566:24;4584:5;4566:24;:::i;:::-;4561:3;4554:37;4489:108;;:::o;4603:118::-;4690:24;4708:5;4690:24;:::i;:::-;4685:3;4678:37;4603:118;;:::o;4757:732::-;4876:3;4905:54;4953:5;4905:54;:::i;:::-;4975:86;5054:6;5049:3;4975:86;:::i;:::-;4968:93;;5085:56;5135:5;5085:56;:::i;:::-;5164:7;5195:1;5180:284;5205:6;5202:1;5199:13;5180:284;;;5281:6;5275:13;5308:63;5367:3;5352:13;5308:63;:::i;:::-;5301:70;;5394:60;5447:6;5394:60;:::i;:::-;5384:70;;5240:224;5227:1;5224;5220:9;5215:14;;5180:284;;;5184:14;5480:3;5473:10;;4881:608;;;4757:732;;;;:::o;5495:109::-;5576:21;5591:5;5576:21;:::i;:::-;5571:3;5564:34;5495:109;;:::o;5610:167::-;5715:55;5764:5;5715:55;:::i;:::-;5710:3;5703:68;5610:167;;:::o;5783:147::-;5878:45;5917:5;5878:45;:::i;:::-;5873:3;5866:58;5783:147;;:::o;5936:364::-;6024:3;6052:39;6085:5;6052:39;:::i;:::-;6107:71;6171:6;6166:3;6107:71;:::i;:::-;6100:78;;6187:52;6232:6;6227:3;6220:4;6213:5;6209:16;6187:52;:::i;:::-;6264:29;6286:6;6264:29;:::i;:::-;6259:3;6255:39;6248:46;;6028:272;5936:364;;;;:::o;6306:366::-;6448:3;6469:67;6533:2;6528:3;6469:67;:::i;:::-;6462:74;;6545:93;6634:3;6545:93;:::i;:::-;6663:2;6658:3;6654:12;6647:19;;6306:366;;;:::o;6678:::-;6820:3;6841:67;6905:2;6900:3;6841:67;:::i;:::-;6834:74;;6917:93;7006:3;6917:93;:::i;:::-;7035:2;7030:3;7026:12;7019:19;;6678:366;;;:::o;7050:::-;7192:3;7213:67;7277:2;7272:3;7213:67;:::i;:::-;7206:74;;7289:93;7378:3;7289:93;:::i;:::-;7407:2;7402:3;7398:12;7391:19;;7050:366;;;:::o;7422:::-;7564:3;7585:67;7649:2;7644:3;7585:67;:::i;:::-;7578:74;;7661:93;7750:3;7661:93;:::i;:::-;7779:2;7774:3;7770:12;7763:19;;7422:366;;;:::o;7794:::-;7936:3;7957:67;8021:2;8016:3;7957:67;:::i;:::-;7950:74;;8033:93;8122:3;8033:93;:::i;:::-;8151:2;8146:3;8142:12;8135:19;;7794:366;;;:::o;8166:365::-;8308:3;8329:66;8393:1;8388:3;8329:66;:::i;:::-;8322:73;;8404:93;8493:3;8404:93;:::i;:::-;8522:2;8517:3;8513:12;8506:19;;8166:365;;;:::o;8537:366::-;8679:3;8700:67;8764:2;8759:3;8700:67;:::i;:::-;8693:74;;8776:93;8865:3;8776:93;:::i;:::-;8894:2;8889:3;8885:12;8878:19;;8537:366;;;:::o;8909:::-;9051:3;9072:67;9136:2;9131:3;9072:67;:::i;:::-;9065:74;;9148:93;9237:3;9148:93;:::i;:::-;9266:2;9261:3;9257:12;9250:19;;8909:366;;;:::o;9281:118::-;9368:24;9386:5;9368:24;:::i;:::-;9363:3;9356:37;9281:118;;:::o;9405:112::-;9488:22;9504:5;9488:22;:::i;:::-;9483:3;9476:35;9405:112;;:::o;9523:222::-;9616:4;9654:2;9643:9;9639:18;9631:26;;9667:71;9735:1;9724:9;9720:17;9711:6;9667:71;:::i;:::-;9523:222;;;;:::o;9751:238::-;9852:4;9890:2;9879:9;9875:18;9867:26;;9903:79;9979:1;9968:9;9964:17;9955:6;9903:79;:::i;:::-;9751:238;;;;:::o;9995:210::-;10082:4;10120:2;10109:9;10105:18;10097:26;;10133:65;10195:1;10184:9;10180:17;10171:6;10133:65;:::i;:::-;9995:210;;;;:::o;10211:258::-;10322:4;10360:2;10349:9;10345:18;10337:26;;10373:89;10459:1;10448:9;10444:17;10435:6;10373:89;:::i;:::-;10211:258;;;;:::o;10475:313::-;10588:4;10626:2;10615:9;10611:18;10603:26;;10675:9;10669:4;10665:20;10661:1;10650:9;10646:17;10639:47;10703:78;10776:4;10767:6;10703:78;:::i;:::-;10695:86;;10475:313;;;;:::o;10794:419::-;10960:4;10998:2;10987:9;10983:18;10975:26;;11047:9;11041:4;11037:20;11033:1;11022:9;11018:17;11011:47;11075:131;11201:4;11075:131;:::i;:::-;11067:139;;10794:419;;;:::o;11219:::-;11385:4;11423:2;11412:9;11408:18;11400:26;;11472:9;11466:4;11462:20;11458:1;11447:9;11443:17;11436:47;11500:131;11626:4;11500:131;:::i;:::-;11492:139;;11219:419;;;:::o;11644:::-;11810:4;11848:2;11837:9;11833:18;11825:26;;11897:9;11891:4;11887:20;11883:1;11872:9;11868:17;11861:47;11925:131;12051:4;11925:131;:::i;:::-;11917:139;;11644:419;;;:::o;12069:::-;12235:4;12273:2;12262:9;12258:18;12250:26;;12322:9;12316:4;12312:20;12308:1;12297:9;12293:17;12286:47;12350:131;12476:4;12350:131;:::i;:::-;12342:139;;12069:419;;;:::o;12494:::-;12660:4;12698:2;12687:9;12683:18;12675:26;;12747:9;12741:4;12737:20;12733:1;12722:9;12718:17;12711:47;12775:131;12901:4;12775:131;:::i;:::-;12767:139;;12494:419;;;:::o;12919:::-;13085:4;13123:2;13112:9;13108:18;13100:26;;13172:9;13166:4;13162:20;13158:1;13147:9;13143:17;13136:47;13200:131;13326:4;13200:131;:::i;:::-;13192:139;;12919:419;;;:::o;13344:::-;13510:4;13548:2;13537:9;13533:18;13525:26;;13597:9;13591:4;13587:20;13583:1;13572:9;13568:17;13561:47;13625:131;13751:4;13625:131;:::i;:::-;13617:139;;13344:419;;;:::o;13769:::-;13935:4;13973:2;13962:9;13958:18;13950:26;;14022:9;14016:4;14012:20;14008:1;13997:9;13993:17;13986:47;14050:131;14176:4;14050:131;:::i;:::-;14042:139;;13769:419;;;:::o;14194:222::-;14287:4;14325:2;14314:9;14310:18;14302:26;;14338:71;14406:1;14395:9;14391:17;14382:6;14338:71;:::i;:::-;14194:222;;;;:::o;14422:831::-;14685:4;14723:3;14712:9;14708:19;14700:27;;14737:71;14805:1;14794:9;14790:17;14781:6;14737:71;:::i;:::-;14818:80;14894:2;14883:9;14879:18;14870:6;14818:80;:::i;:::-;14945:9;14939:4;14935:20;14930:2;14919:9;14915:18;14908:48;14973:108;15076:4;15067:6;14973:108;:::i;:::-;14965:116;;15091:72;15159:2;15148:9;15144:18;15135:6;15091:72;:::i;:::-;15173:73;15241:3;15230:9;15226:19;15217:6;15173:73;:::i;:::-;14422:831;;;;;;;;:::o;15259:214::-;15348:4;15386:2;15375:9;15371:18;15363:26;;15399:67;15463:1;15452:9;15448:17;15439:6;15399:67;:::i;:::-;15259:214;;;;:::o;15560:132::-;15627:4;15650:3;15642:11;;15680:4;15675:3;15671:14;15663:22;;15560:132;;;:::o;15698:114::-;15765:6;15799:5;15793:12;15783:22;;15698:114;;;:::o;15818:99::-;15870:6;15904:5;15898:12;15888:22;;15818:99;;;:::o;15923:113::-;15993:4;16025;16020:3;16016:14;16008:22;;15923:113;;;:::o;16042:184::-;16141:11;16175:6;16170:3;16163:19;16215:4;16210:3;16206:14;16191:29;;16042:184;;;;:::o;16232:169::-;16316:11;16350:6;16345:3;16338:19;16390:4;16385:3;16381:14;16366:29;;16232:169;;;;:::o;16407:305::-;16447:3;16466:20;16484:1;16466:20;:::i;:::-;16461:25;;16500:20;16518:1;16500:20;:::i;:::-;16495:25;;16654:1;16586:66;16582:74;16579:1;16576:81;16573:107;;;16660:18;;:::i;:::-;16573:107;16704:1;16701;16697:9;16690:16;;16407:305;;;;:::o;16718:185::-;16758:1;16775:20;16793:1;16775:20;:::i;:::-;16770:25;;16809:20;16827:1;16809:20;:::i;:::-;16804:25;;16848:1;16838:35;;16853:18;;:::i;:::-;16838:35;16895:1;16892;16888:9;16883:14;;16718:185;;;;:::o;16909:348::-;16949:7;16972:20;16990:1;16972:20;:::i;:::-;16967:25;;17006:20;17024:1;17006:20;:::i;:::-;17001:25;;17194:1;17126:66;17122:74;17119:1;17116:81;17111:1;17104:9;17097:17;17093:105;17090:131;;;17201:18;;:::i;:::-;17090:131;17249:1;17246;17242:9;17231:20;;16909:348;;;;:::o;17263:191::-;17303:4;17323:20;17341:1;17323:20;:::i;:::-;17318:25;;17357:20;17375:1;17357:20;:::i;:::-;17352:25;;17396:1;17393;17390:8;17387:34;;;17401:18;;:::i;:::-;17387:34;17446:1;17443;17439:9;17431:17;;17263:191;;;;:::o;17460:96::-;17497:7;17526:24;17544:5;17526:24;:::i;:::-;17515:35;;17460:96;;;:::o;17562:104::-;17607:7;17636:24;17654:5;17636:24;:::i;:::-;17625:35;;17562:104;;;:::o;17672:90::-;17706:7;17749:5;17742:13;17735:21;17724:32;;17672:90;;;:::o;17768:126::-;17805:7;17845:42;17838:5;17834:54;17823:65;;17768:126;;;:::o;17900:77::-;17937:7;17966:5;17955:16;;17900:77;;;:::o;17983:86::-;18018:7;18058:4;18051:5;18047:16;18036:27;;17983:86;;;:::o;18075:134::-;18133:9;18166:37;18197:5;18166:37;:::i;:::-;18153:50;;18075:134;;;:::o;18215:144::-;18283:9;18316:37;18347:5;18316:37;:::i;:::-;18303:50;;18215:144;;;:::o;18365:121::-;18423:9;18456:24;18474:5;18456:24;:::i;:::-;18443:37;;18365:121;;;:::o;18492:126::-;18542:9;18575:37;18606:5;18575:37;:::i;:::-;18562:50;;18492:126;;;:::o;18624:113::-;18674:9;18707:24;18725:5;18707:24;:::i;:::-;18694:37;;18624:113;;;:::o;18743:307::-;18811:1;18821:113;18835:6;18832:1;18829:13;18821:113;;;18920:1;18915:3;18911:11;18905:18;18901:1;18896:3;18892:11;18885:39;18857:2;18854:1;18850:10;18845:15;;18821:113;;;18952:6;18949:1;18946:13;18943:101;;;19032:1;19023:6;19018:3;19014:16;19007:27;18943:101;18792:258;18743:307;;;:::o;19056:180::-;19104:77;19101:1;19094:88;19201:4;19198:1;19191:15;19225:4;19222:1;19215:15;19242:180;19290:77;19287:1;19280:88;19387:4;19384:1;19377:15;19411:4;19408:1;19401:15;19428:180;19476:77;19473:1;19466:88;19573:4;19570:1;19563:15;19597:4;19594:1;19587:15;19614:180;19662:77;19659:1;19652:88;19759:4;19756:1;19749:15;19783:4;19780:1;19773:15;19923:117;20032:1;20029;20022:12;20046:102;20087:6;20138:2;20134:7;20129:2;20122:5;20118:14;20114:28;20104:38;;20046:102;;;:::o;20154:167::-;20294:19;20290:1;20282:6;20278:14;20271:43;20154:167;:::o;20327:177::-;20467:29;20463:1;20455:6;20451:14;20444:53;20327:177;:::o;20510:173::-;20650:25;20646:1;20638:6;20634:14;20627:49;20510:173;:::o;20689:220::-;20829:34;20825:1;20817:6;20813:14;20806:58;20898:3;20893:2;20885:6;20881:15;20874:28;20689:220;:::o;20915:249::-;21055:34;21051:1;21043:6;21039:14;21032:58;21124:32;21119:2;21111:6;21107:15;21100:57;20915:249;:::o;21170:156::-;21310:8;21306:1;21298:6;21294:14;21287:32;21170:156;:::o;21332:221::-;21472:34;21468:1;21460:6;21456:14;21449:58;21541:4;21536:2;21528:6;21524:15;21517:29;21332:221;:::o;21559:161::-;21699:13;21695:1;21687:6;21683:14;21676:37;21559:161;:::o;21726:122::-;21799:24;21817:5;21799:24;:::i;:::-;21792:5;21789:35;21779:63;;21838:1;21835;21828:12;21779:63;21726:122;:::o;21854:138::-;21935:32;21961:5;21935:32;:::i;:::-;21928:5;21925:43;21915:71;;21982:1;21979;21972:12;21915:71;21854:138;:::o;21998:116::-;22068:21;22083:5;22068:21;:::i;:::-;22061:5;22058:32;22048:60;;22104:1;22101;22094:12;22048:60;21998:116;:::o;22120:122::-;22193:24;22211:5;22193:24;:::i;:::-;22186:5;22183:35;22173:63;;22232:1;22229;22222:12;22173:63;22120:122;:::o

Swarm Source

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