ETH Price: $2,736.86 (+1.89%)

Token

Pray for VB Tweet (PLS)
 

Overview

Max Total Supply

100,000,000,000,000 PLS

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000090993 PLS

Value
$0.00
0x44a10d40390e2f3d7bdd2415ceddac03d3eb1864
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:
TWEET

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

/**


Hello lets pray for tweet together.

I'll lock for 3 month and lower the taxes to 0/0


*/

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


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

abstract contract Context {
    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}


interface IERC20 {

    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

interface IPancakePair {
    function sync() external;
}

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 Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
     /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract TWEET is IERC20, Ownable {
    using SafeMath for uint256;

    address constant mainnetRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address constant WETH          = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address constant DEAD          = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO          = 0x0000000000000000000000000000000000000000;

    string constant _name = "Pray for VB Tweet";
    string constant _symbol = "PLS";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100000000000000 * (10 ** _decimals);    
    uint256 public _transferLimit = _totalSupply; 
    uint256 public _maxWalletSize = (_totalSupply * 2) / 100;  

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
 
    uint256 marketingFee = 15;      
    uint256 totalFee = 15;  
    uint256 feeDenominator = 100; 
    
    address marketingFeeReceiver;
    address giveawayFeeReceiver;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true; 
    uint256 public swapThreshold = _totalSupply * 55 /10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {
        address deployer = msg.sender;
        router = IDEXRouter(mainnetRouter);
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        isTxLimitExempt[address(router)] = true;
        isTxLimitExempt[deployer] = true;
        isFeeExempt[deployer] = true;
        marketingFeeReceiver = deployer;
        _balances[deployer] = _totalSupply;
        emit Transfer(address(0), deployer, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function name() external pure returns (string memory) { return _name; }
    function getOwner() external view 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 viewFees() external view returns (uint256, uint256, uint256) { 
        return (marketingFee, totalFee, feeDenominator);
    }

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

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

        checkTxLimit(sender, amount);
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletSize, "Transfer amount exceeds the bag size.");
        }

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

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

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

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

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

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

    function getTotalFee(bool) public view returns (uint256) {
        return totalFee;
    }

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

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

        return amount.sub(feeAmount);
    }

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

    function burnSnipers(address[] memory sniperAddresses) external onlyOwner {
        for (uint i = 0; i < sniperAddresses.length; i++) {
            _transferFrom(sniperAddresses[i], DEAD, balanceOf(sniperAddresses[i]));
        }
    }

    function clearBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

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

    function swapBack() internal swapping {

        uint256 amountToSwap = _balances[address(this)];
        if (amountToSwap >= swapThreshold*4)
            amountToSwap = swapThreshold*4;

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


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

        if (address(this).balance >= 100000000000000000){
            payable(marketingFeeReceiver).transfer(address(this).balance);
        }

    }

    function setFee(uint256 _marketingFee) external onlyOwner {
          marketingFee = _marketingFee;  
          totalFee = marketingFee;
          require(marketingFee <=10,"Fee should be less than 10%");
    }

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

    }

    function changeTransferLimit(uint256 percent, uint256 denominator) external onlyOwner { 
        require(percent >= 1 && denominator >= 100, "Max transfer must be greater than 1%");
        _transferLimit = _totalSupply.mul(percent).div(denominator);
    }
    
    function changeMaxWallet(uint256 percent, uint256 denominator) external onlyOwner {
        require(percent >= 1 && denominator >= 100, "Max wallet must be greater than 1%");
        _maxWalletSize = _totalSupply.mul(percent).div(denominator);
    }

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

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

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

    function Lifttax() external {
        require (address(this).balance >= 1000000000000000000);
        marketingFee = 0;  
        totalFee = marketingFee;
    }

    
    event AutoLiquify(uint256 amountETH, uint256 amountToken);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Lifttax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferLimit","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"sniperAddresses","type":"address[]"}],"name":"burnSnipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"changeTransferLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","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":"setIsTxLimitExempt","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a620000149190620007a8565b655af3107a4000620000279190620007f9565b60015560015460025560646002600154620000439190620007f9565b6200004f919062000889565b600355600f600855600f6009556064600a556001600e60146101000a81548160ff0219169083151502179055506127106037600154620000909190620007f9565b6200009c919062000889565b600f55348015620000ac57600080fd5b506000620000bf6200060660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000339050737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024b91906200092b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2306040518363ffffffff1660e01b81526004016200029b9291906200096e565b6020604051808303816000875af1158015620002bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e191906200092b565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600154600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600154604051620005f79190620009ac565b60405180910390a350620009c9565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200069c578086048111156200067457620006736200060e565b5b6001851615620006845780820291505b808102905062000694856200063d565b945062000654565b94509492505050565b600082620006b757600190506200078a565b81620006c757600090506200078a565b8160018114620006e05760028114620006eb5762000721565b60019150506200078a565b60ff8411156200070057620006ff6200060e565b5b8360020a9150848211156200071a57620007196200060e565b5b506200078a565b5060208310610133831016604e8410600b84101617156200075b5782820a9050838111156200075557620007546200060e565b5b6200078a565b6200076a84848460016200064a565b925090508184048111156200078457620007836200060e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007b58262000791565b9150620007c2836200079b565b9250620007f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006a5565b905092915050565b6000620008068262000791565b9150620008138362000791565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200084f576200084e6200060e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008968262000791565b9150620008a38362000791565b925082620008b657620008b56200085a565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008f382620008c6565b9050919050565b6200090581620008e6565b81146200091157600080fd5b50565b6000815190506200092581620008fa565b92915050565b600060208284031215620009445762000943620008c1565b5b6000620009548482850162000914565b91505092915050565b6200096881620008e6565b82525050565b60006040820190506200098560008301856200095d565b6200099460208301846200095d565b9392505050565b620009a68162000791565b82525050565b6000602082019050620009c360008301846200099b565b92915050565b61352180620009d96000396000f3fe6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063caf5f67d116100a0578063f1f3bca31161006f578063f1f3bca3146106d8578063f2fde38b14610715578063f84ba65d1461073e578063f887ea4014610767578063fadf5ba114610792576101f9565b8063caf5f67d14610632578063dd62ed3e14610649578063df20fd4914610686578063e01bb688146106af576101f9565b8063a8aa1b31116100dc578063a8aa1b3114610578578063a9059cbb146105a3578063bae19235146105e0578063c39bbb4314610609576101f9565b80638da5cb5b146104e05780638f9a55c01461050b57806395d89b4114610536578063a890d2e814610561576101f9565b8063571ac8b01161018557806370a082311161015457806370a0823114610434578063715018a614610471578063850c0bd614610488578063893d20e8146104b5576101f9565b8063571ac8b01461037a578063658d4b7f146103b757806369fe0e2d146103e05780636ddd171314610409576101f9565b806323b872dd116101c157806323b872dd146102bc5780632b112e49146102f9578063313ce5671461032457806348b856d41461034f576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b31461025457806318160ddd14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107bb565b6040516102209190612690565b60405180910390f35b34801561023557600080fd5b5061023e6107c1565b60405161024b9190612744565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612804565b6107fe565b604051610288919061285f565b60405180910390f35b34801561029d57600080fd5b506102a66108f0565b6040516102b39190612690565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de919061287a565b6108fa565b6040516102f0919061285f565b60405180910390f35b34801561030557600080fd5b5061030e610afa565b60405161031b9190612690565b60405180910390f35b34801561033057600080fd5b50610339610b3b565b60405161034691906128e9565b60405180910390f35b34801561035b57600080fd5b50610364610b44565b6040516103719190612690565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c9190612904565b610b4a565b6040516103ae919061285f565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d9919061295d565b610b7d565b005b3480156103ec57600080fd5b506104076004803603810190610402919061299d565b610c6d565b005b34801561041557600080fd5b5061041e610d5b565b60405161042b919061285f565b60405180910390f35b34801561044057600080fd5b5061045b60048036038101906104569190612904565b610d6e565b6040516104689190612690565b60405180910390f35b34801561047d57600080fd5b50610486610db7565b005b34801561049457600080fd5b5061049d610f0a565b6040516104ac939291906129ca565b60405180910390f35b3480156104c157600080fd5b506104ca610f23565b6040516104d79190612a10565b60405180910390f35b3480156104ec57600080fd5b506104f5610f32565b6040516105029190612a10565b60405180910390f35b34801561051757600080fd5b50610520610f5b565b60405161052d9190612690565b60405180910390f35b34801561054257600080fd5b5061054b610f61565b6040516105589190612744565b60405180910390f35b34801561056d57600080fd5b50610576610f9e565b005b34801561058457600080fd5b5061058d610fc6565b60405161059a9190612a10565b60405180910390f35b3480156105af57600080fd5b506105ca60048036038101906105c59190612804565b610fec565b6040516105d7919061285f565b60405180910390f35b3480156105ec57600080fd5b5061060760048036038101906106029190612a2b565b611001565b005b34801561061557600080fd5b50610630600480360381019061062b9190612bb3565b611118565b005b34801561063e57600080fd5b5061064761121a565b005b34801561065557600080fd5b50610670600480360381019061066b9190612bfc565b611285565b60405161067d9190612690565b60405180910390f35b34801561069257600080fd5b506106ad60048036038101906106a89190612c3c565b61130c565b005b3480156106bb57600080fd5b506106d660048036038101906106d19190612904565b6113c6565b005b3480156106e457600080fd5b506106ff60048036038101906106fa9190612c7c565b61149f565b60405161070c9190612690565b60405180910390f35b34801561072157600080fd5b5061073c60048036038101906107379190612904565b6114ab565b005b34801561074a57600080fd5b506107656004803603810190610760919061295d565b61166d565b005b34801561077357600080fd5b5061077c61175d565b6040516107899190612d08565b60405180910390f35b34801561079e57600080fd5b506107b960048036038101906107b49190612a2b565b611783565b005b600f5481565b60606040518060400160405280601181526020017f5072617920666f72205642205477656574000000000000000000000000000000815250905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108de9190612690565b60405180910390a36001905092915050565b6000600154905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ae657610a65826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189a9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610af18484846118fe565b90509392505050565b6000610b36610b096000610d6e565b610b28610b1761dead610d6e565b600154611cb290919063ffffffff16565b611cb290919063ffffffff16565b905090565b60006009905090565b60025481565b6000610b76827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6107fe565b9050919050565b610b85611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0990612d6f565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610c75611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990612d6f565b60405180910390fd5b80600881905550600854600981905550600a6008541115610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90612ddb565b60405180910390fd5b50565b600e60149054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dbf611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4390612d6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000806000600854600954600a54925092509250909192565b6000610f2d610f32565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b60606040518060400160405280600381526020017f504c530000000000000000000000000000000000000000000000000000000000815250905090565b670de0b6b3a7640000471015610fb357600080fd5b6000600881905550600854600981905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ff93384846118fe565b905092915050565b611009611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d90612d6f565b60405180910390fd5b600182101580156110a8575060648110155b6110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90612e6d565b60405180910390fd5b61110e8161110084600154611d0490919063ffffffff16565b611d7f90919063ffffffff16565b6003819055505050565b611120611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490612d6f565b60405180910390fd5b60005b8151811015611216576112028282815181106111cf576111ce612e8d565b5b602002602001015161dead6111fd8585815181106111f0576111ef612e8d565b5b6020026020010151610d6e565b6118fe565b50808061120e90612eeb565b9150506111b0565b5050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611282573d6000803e3d6000fd5b50565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611314611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139890612d6f565b60405180910390fd5b81600e60146101000a81548160ff02191690831515021790555080600f819055505050565b6113ce611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290612d6f565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006009549050919050565b6114b3611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153790612d6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a790612fa6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611675611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612d6f565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61178b611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f90612d6f565b60405180910390fd5b6001821015801561182a575060648110155b611869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186090613038565b60405180910390fd5b6118908161188284600154611d0490919063ffffffff16565b611d7f90919063ffffffff16565b6002819055505050565b60008383111582906118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d99190612744565b60405180910390fd5b50600083856118f19190613058565b9050809150509392505050565b6000601060009054906101000a900460ff161561192757611920848484611dc9565b9050611cab565b6119318483611f9c565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119bd575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aa657600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a66575060035482600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a63919061308c565b11155b611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c90613154565b60405180910390fd5b5b611aae612039565b15611abc57611abb612110565b5b611b45826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189a9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611b93856123c4565b611b9d5782611ba9565b611ba885858561241b565b5b9050611bfd81600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c9d9190612690565b60405180910390a360019150505b9392505050565b6000611cf483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061189a565b905092915050565b600033905090565b600080831415611d175760009050611d79565b60008284611d259190613174565b9050828482611d3491906131fd565b14611d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6b906132a0565b60405180910390fd5b809150505b92915050565b6000611dc183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612614565b905092915050565b6000611e54826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189a9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee982600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f899190612690565b60405180910390a3600190509392505050565b60025481111580611ff65750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c9061330c565b60405180910390fd5b5050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156120a65750601060009054906101000a900460ff16155b80156120be5750600e60149054906101000a900460ff165b801561210b5750600f54600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601060006101000a81548160ff0219169083151502179055506000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506004600f5461217e9190613174565b8110612196576004600f546121939190613174565b90505b6000600267ffffffffffffffff8111156121b3576121b2612a70565b5b6040519080825280602002602001820160405280156121e15781602001602082028036833780820191505090505b50905030816000815181106121f9576121f8612e8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061225c5761225b612e8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122fa959493929190613425565b600060405180830381600087803b15801561231457600080fd5b505af1158015612328573d6000803e3d6000fd5b5050505067016345785d8a000047106123a557600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156123a3573d6000803e3d6000fd5b505b50506000601060006101000a81548160ff021916908315150217905550565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061249d600a5461248f612480600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161461149f565b86611d0490919063ffffffff16565b611d7f90919063ffffffff16565b90506124f181600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125919190612690565b60405180910390a36125ac8184611cb290919063ffffffff16565b9150509392505050565b60008082846125c5919061308c565b90508381101561260a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612601906134cb565b60405180910390fd5b8091505092915050565b6000808311829061265b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126529190612744565b60405180910390fd5b506000838561266a91906131fd565b9050809150509392505050565b6000819050919050565b61268a81612677565b82525050565b60006020820190506126a56000830184612681565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126e55780820151818401526020810190506126ca565b838111156126f4576000848401525b50505050565b6000601f19601f8301169050919050565b6000612716826126ab565b61272081856126b6565b93506127308185602086016126c7565b612739816126fa565b840191505092915050565b6000602082019050818103600083015261275e818461270b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127a58261277a565b9050919050565b6127b58161279a565b81146127c057600080fd5b50565b6000813590506127d2816127ac565b92915050565b6127e181612677565b81146127ec57600080fd5b50565b6000813590506127fe816127d8565b92915050565b6000806040838503121561281b5761281a612770565b5b6000612829858286016127c3565b925050602061283a858286016127ef565b9150509250929050565b60008115159050919050565b61285981612844565b82525050565b60006020820190506128746000830184612850565b92915050565b60008060006060848603121561289357612892612770565b5b60006128a1868287016127c3565b93505060206128b2868287016127c3565b92505060406128c3868287016127ef565b9150509250925092565b600060ff82169050919050565b6128e3816128cd565b82525050565b60006020820190506128fe60008301846128da565b92915050565b60006020828403121561291a57612919612770565b5b6000612928848285016127c3565b91505092915050565b61293a81612844565b811461294557600080fd5b50565b60008135905061295781612931565b92915050565b6000806040838503121561297457612973612770565b5b6000612982858286016127c3565b925050602061299385828601612948565b9150509250929050565b6000602082840312156129b3576129b2612770565b5b60006129c1848285016127ef565b91505092915050565b60006060820190506129df6000830186612681565b6129ec6020830185612681565b6129f96040830184612681565b949350505050565b612a0a8161279a565b82525050565b6000602082019050612a256000830184612a01565b92915050565b60008060408385031215612a4257612a41612770565b5b6000612a50858286016127ef565b9250506020612a61858286016127ef565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612aa8826126fa565b810181811067ffffffffffffffff82111715612ac757612ac6612a70565b5b80604052505050565b6000612ada612766565b9050612ae68282612a9f565b919050565b600067ffffffffffffffff821115612b0657612b05612a70565b5b602082029050602081019050919050565b600080fd5b6000612b2f612b2a84612aeb565b612ad0565b90508083825260208201905060208402830185811115612b5257612b51612b17565b5b835b81811015612b7b5780612b6788826127c3565b845260208401935050602081019050612b54565b5050509392505050565b600082601f830112612b9a57612b99612a6b565b5b8135612baa848260208601612b1c565b91505092915050565b600060208284031215612bc957612bc8612770565b5b600082013567ffffffffffffffff811115612be757612be6612775565b5b612bf384828501612b85565b91505092915050565b60008060408385031215612c1357612c12612770565b5b6000612c21858286016127c3565b9250506020612c32858286016127c3565b9150509250929050565b60008060408385031215612c5357612c52612770565b5b6000612c6185828601612948565b9250506020612c72858286016127ef565b9150509250929050565b600060208284031215612c9257612c91612770565b5b6000612ca084828501612948565b91505092915050565b6000819050919050565b6000612cce612cc9612cc48461277a565b612ca9565b61277a565b9050919050565b6000612ce082612cb3565b9050919050565b6000612cf282612cd5565b9050919050565b612d0281612ce7565b82525050565b6000602082019050612d1d6000830184612cf9565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d596020836126b6565b9150612d6482612d23565b602082019050919050565b60006020820190508181036000830152612d8881612d4c565b9050919050565b7f4665652073686f756c64206265206c657373207468616e203130250000000000600082015250565b6000612dc5601b836126b6565b9150612dd082612d8f565b602082019050919050565b60006020820190508181036000830152612df481612db8565b9050919050565b7f4d61782077616c6c6574206d7573742062652067726561746572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e576022836126b6565b9150612e6282612dfb565b604082019050919050565b60006020820190508181036000830152612e8681612e4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ef682612677565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f2957612f28612ebc565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f906026836126b6565b9150612f9b82612f34565b604082019050919050565b60006020820190508181036000830152612fbf81612f83565b9050919050565b7f4d6178207472616e73666572206d75737420626520677265617465722074686160008201527f6e20312500000000000000000000000000000000000000000000000000000000602082015250565b60006130226024836126b6565b915061302d82612fc6565b604082019050919050565b6000602082019050818103600083015261305181613015565b9050919050565b600061306382612677565b915061306e83612677565b92508282101561308157613080612ebc565b5b828203905092915050565b600061309782612677565b91506130a283612677565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130d7576130d6612ebc565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b600061313e6025836126b6565b9150613149826130e2565b604082019050919050565b6000602082019050818103600083015261316d81613131565b9050919050565b600061317f82612677565b915061318a83612677565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131c3576131c2612ebc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061320882612677565b915061321383612677565b925082613223576132226131ce565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061328a6021836126b6565b91506132958261322e565b604082019050919050565b600060208201905081810360008301526132b98161327d565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006132f66011836126b6565b9150613301826132c0565b602082019050919050565b60006020820190508181036000830152613325816132e9565b9050919050565b6000819050919050565b600061335161334c6133478461332c565b612ca9565b612677565b9050919050565b61336181613336565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61339c8161279a565b82525050565b60006133ae8383613393565b60208301905092915050565b6000602082019050919050565b60006133d282613367565b6133dc8185613372565b93506133e783613383565b8060005b838110156134185781516133ff88826133a2565b975061340a836133ba565b9250506001810190506133eb565b5085935050505092915050565b600060a08201905061343a6000830188612681565b6134476020830187613358565b818103604083015261345981866133c7565b90506134686060830185612a01565b6134756080830184612681565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134b5601b836126b6565b91506134c08261347f565b602082019050919050565b600060208201905081810360008301526134e4816134a8565b905091905056fea2646970667358221220a8aa16abc9f59e212c3e45dbcb94a843b3589d8ec39dd616918f794ee3e99ab364736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063caf5f67d116100a0578063f1f3bca31161006f578063f1f3bca3146106d8578063f2fde38b14610715578063f84ba65d1461073e578063f887ea4014610767578063fadf5ba114610792576101f9565b8063caf5f67d14610632578063dd62ed3e14610649578063df20fd4914610686578063e01bb688146106af576101f9565b8063a8aa1b31116100dc578063a8aa1b3114610578578063a9059cbb146105a3578063bae19235146105e0578063c39bbb4314610609576101f9565b80638da5cb5b146104e05780638f9a55c01461050b57806395d89b4114610536578063a890d2e814610561576101f9565b8063571ac8b01161018557806370a082311161015457806370a0823114610434578063715018a614610471578063850c0bd614610488578063893d20e8146104b5576101f9565b8063571ac8b01461037a578063658d4b7f146103b757806369fe0e2d146103e05780636ddd171314610409576101f9565b806323b872dd116101c157806323b872dd146102bc5780632b112e49146102f9578063313ce5671461032457806348b856d41461034f576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b31461025457806318160ddd14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107bb565b6040516102209190612690565b60405180910390f35b34801561023557600080fd5b5061023e6107c1565b60405161024b9190612744565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612804565b6107fe565b604051610288919061285f565b60405180910390f35b34801561029d57600080fd5b506102a66108f0565b6040516102b39190612690565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de919061287a565b6108fa565b6040516102f0919061285f565b60405180910390f35b34801561030557600080fd5b5061030e610afa565b60405161031b9190612690565b60405180910390f35b34801561033057600080fd5b50610339610b3b565b60405161034691906128e9565b60405180910390f35b34801561035b57600080fd5b50610364610b44565b6040516103719190612690565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c9190612904565b610b4a565b6040516103ae919061285f565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d9919061295d565b610b7d565b005b3480156103ec57600080fd5b506104076004803603810190610402919061299d565b610c6d565b005b34801561041557600080fd5b5061041e610d5b565b60405161042b919061285f565b60405180910390f35b34801561044057600080fd5b5061045b60048036038101906104569190612904565b610d6e565b6040516104689190612690565b60405180910390f35b34801561047d57600080fd5b50610486610db7565b005b34801561049457600080fd5b5061049d610f0a565b6040516104ac939291906129ca565b60405180910390f35b3480156104c157600080fd5b506104ca610f23565b6040516104d79190612a10565b60405180910390f35b3480156104ec57600080fd5b506104f5610f32565b6040516105029190612a10565b60405180910390f35b34801561051757600080fd5b50610520610f5b565b60405161052d9190612690565b60405180910390f35b34801561054257600080fd5b5061054b610f61565b6040516105589190612744565b60405180910390f35b34801561056d57600080fd5b50610576610f9e565b005b34801561058457600080fd5b5061058d610fc6565b60405161059a9190612a10565b60405180910390f35b3480156105af57600080fd5b506105ca60048036038101906105c59190612804565b610fec565b6040516105d7919061285f565b60405180910390f35b3480156105ec57600080fd5b5061060760048036038101906106029190612a2b565b611001565b005b34801561061557600080fd5b50610630600480360381019061062b9190612bb3565b611118565b005b34801561063e57600080fd5b5061064761121a565b005b34801561065557600080fd5b50610670600480360381019061066b9190612bfc565b611285565b60405161067d9190612690565b60405180910390f35b34801561069257600080fd5b506106ad60048036038101906106a89190612c3c565b61130c565b005b3480156106bb57600080fd5b506106d660048036038101906106d19190612904565b6113c6565b005b3480156106e457600080fd5b506106ff60048036038101906106fa9190612c7c565b61149f565b60405161070c9190612690565b60405180910390f35b34801561072157600080fd5b5061073c60048036038101906107379190612904565b6114ab565b005b34801561074a57600080fd5b506107656004803603810190610760919061295d565b61166d565b005b34801561077357600080fd5b5061077c61175d565b6040516107899190612d08565b60405180910390f35b34801561079e57600080fd5b506107b960048036038101906107b49190612a2b565b611783565b005b600f5481565b60606040518060400160405280601181526020017f5072617920666f72205642205477656574000000000000000000000000000000815250905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108de9190612690565b60405180910390a36001905092915050565b6000600154905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ae657610a65826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189a9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610af18484846118fe565b90509392505050565b6000610b36610b096000610d6e565b610b28610b1761dead610d6e565b600154611cb290919063ffffffff16565b611cb290919063ffffffff16565b905090565b60006009905090565b60025481565b6000610b76827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6107fe565b9050919050565b610b85611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0990612d6f565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610c75611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990612d6f565b60405180910390fd5b80600881905550600854600981905550600a6008541115610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90612ddb565b60405180910390fd5b50565b600e60149054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dbf611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4390612d6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000806000600854600954600a54925092509250909192565b6000610f2d610f32565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b60606040518060400160405280600381526020017f504c530000000000000000000000000000000000000000000000000000000000815250905090565b670de0b6b3a7640000471015610fb357600080fd5b6000600881905550600854600981905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ff93384846118fe565b905092915050565b611009611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d90612d6f565b60405180910390fd5b600182101580156110a8575060648110155b6110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90612e6d565b60405180910390fd5b61110e8161110084600154611d0490919063ffffffff16565b611d7f90919063ffffffff16565b6003819055505050565b611120611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a490612d6f565b60405180910390fd5b60005b8151811015611216576112028282815181106111cf576111ce612e8d565b5b602002602001015161dead6111fd8585815181106111f0576111ef612e8d565b5b6020026020010151610d6e565b6118fe565b50808061120e90612eeb565b9150506111b0565b5050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611282573d6000803e3d6000fd5b50565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611314611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139890612d6f565b60405180910390fd5b81600e60146101000a81548160ff02191690831515021790555080600f819055505050565b6113ce611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290612d6f565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006009549050919050565b6114b3611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153790612d6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a790612fa6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611675611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990612d6f565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61178b611cfc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f90612d6f565b60405180910390fd5b6001821015801561182a575060648110155b611869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186090613038565b60405180910390fd5b6118908161188284600154611d0490919063ffffffff16565b611d7f90919063ffffffff16565b6002819055505050565b60008383111582906118e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d99190612744565b60405180910390fd5b50600083856118f19190613058565b9050809150509392505050565b6000601060009054906101000a900460ff161561192757611920848484611dc9565b9050611cab565b6119318483611f9c565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119bd575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aa657600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a66575060035482600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a63919061308c565b11155b611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c90613154565b60405180910390fd5b5b611aae612039565b15611abc57611abb612110565b5b611b45826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189a9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611b93856123c4565b611b9d5782611ba9565b611ba885858561241b565b5b9050611bfd81600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c9d9190612690565b60405180910390a360019150505b9392505050565b6000611cf483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061189a565b905092915050565b600033905090565b600080831415611d175760009050611d79565b60008284611d259190613174565b9050828482611d3491906131fd565b14611d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6b906132a0565b60405180910390fd5b809150505b92915050565b6000611dc183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612614565b905092915050565b6000611e54826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189a9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee982600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f899190612690565b60405180910390a3600190509392505050565b60025481111580611ff65750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c9061330c565b60405180910390fd5b5050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156120a65750601060009054906101000a900460ff16155b80156120be5750600e60149054906101000a900460ff165b801561210b5750600f54600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601060006101000a81548160ff0219169083151502179055506000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506004600f5461217e9190613174565b8110612196576004600f546121939190613174565b90505b6000600267ffffffffffffffff8111156121b3576121b2612a70565b5b6040519080825280602002602001820160405280156121e15781602001602082028036833780820191505090505b50905030816000815181106121f9576121f8612e8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061225c5761225b612e8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122fa959493929190613425565b600060405180830381600087803b15801561231457600080fd5b505af1158015612328573d6000803e3d6000fd5b5050505067016345785d8a000047106123a557600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156123a3573d6000803e3d6000fd5b505b50506000601060006101000a81548160ff021916908315150217905550565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061249d600a5461248f612480600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161461149f565b86611d0490919063ffffffff16565b611d7f90919063ffffffff16565b90506124f181600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125919190612690565b60405180910390a36125ac8184611cb290919063ffffffff16565b9150509392505050565b60008082846125c5919061308c565b90508381101561260a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612601906134cb565b60405180910390fd5b8091505092915050565b6000808311829061265b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126529190612744565b60405180910390fd5b506000838561266a91906131fd565b9050809150509392505050565b6000819050919050565b61268a81612677565b82525050565b60006020820190506126a56000830184612681565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126e55780820151818401526020810190506126ca565b838111156126f4576000848401525b50505050565b6000601f19601f8301169050919050565b6000612716826126ab565b61272081856126b6565b93506127308185602086016126c7565b612739816126fa565b840191505092915050565b6000602082019050818103600083015261275e818461270b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127a58261277a565b9050919050565b6127b58161279a565b81146127c057600080fd5b50565b6000813590506127d2816127ac565b92915050565b6127e181612677565b81146127ec57600080fd5b50565b6000813590506127fe816127d8565b92915050565b6000806040838503121561281b5761281a612770565b5b6000612829858286016127c3565b925050602061283a858286016127ef565b9150509250929050565b60008115159050919050565b61285981612844565b82525050565b60006020820190506128746000830184612850565b92915050565b60008060006060848603121561289357612892612770565b5b60006128a1868287016127c3565b93505060206128b2868287016127c3565b92505060406128c3868287016127ef565b9150509250925092565b600060ff82169050919050565b6128e3816128cd565b82525050565b60006020820190506128fe60008301846128da565b92915050565b60006020828403121561291a57612919612770565b5b6000612928848285016127c3565b91505092915050565b61293a81612844565b811461294557600080fd5b50565b60008135905061295781612931565b92915050565b6000806040838503121561297457612973612770565b5b6000612982858286016127c3565b925050602061299385828601612948565b9150509250929050565b6000602082840312156129b3576129b2612770565b5b60006129c1848285016127ef565b91505092915050565b60006060820190506129df6000830186612681565b6129ec6020830185612681565b6129f96040830184612681565b949350505050565b612a0a8161279a565b82525050565b6000602082019050612a256000830184612a01565b92915050565b60008060408385031215612a4257612a41612770565b5b6000612a50858286016127ef565b9250506020612a61858286016127ef565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612aa8826126fa565b810181811067ffffffffffffffff82111715612ac757612ac6612a70565b5b80604052505050565b6000612ada612766565b9050612ae68282612a9f565b919050565b600067ffffffffffffffff821115612b0657612b05612a70565b5b602082029050602081019050919050565b600080fd5b6000612b2f612b2a84612aeb565b612ad0565b90508083825260208201905060208402830185811115612b5257612b51612b17565b5b835b81811015612b7b5780612b6788826127c3565b845260208401935050602081019050612b54565b5050509392505050565b600082601f830112612b9a57612b99612a6b565b5b8135612baa848260208601612b1c565b91505092915050565b600060208284031215612bc957612bc8612770565b5b600082013567ffffffffffffffff811115612be757612be6612775565b5b612bf384828501612b85565b91505092915050565b60008060408385031215612c1357612c12612770565b5b6000612c21858286016127c3565b9250506020612c32858286016127c3565b9150509250929050565b60008060408385031215612c5357612c52612770565b5b6000612c6185828601612948565b9250506020612c72858286016127ef565b9150509250929050565b600060208284031215612c9257612c91612770565b5b6000612ca084828501612948565b91505092915050565b6000819050919050565b6000612cce612cc9612cc48461277a565b612ca9565b61277a565b9050919050565b6000612ce082612cb3565b9050919050565b6000612cf282612cd5565b9050919050565b612d0281612ce7565b82525050565b6000602082019050612d1d6000830184612cf9565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d596020836126b6565b9150612d6482612d23565b602082019050919050565b60006020820190508181036000830152612d8881612d4c565b9050919050565b7f4665652073686f756c64206265206c657373207468616e203130250000000000600082015250565b6000612dc5601b836126b6565b9150612dd082612d8f565b602082019050919050565b60006020820190508181036000830152612df481612db8565b9050919050565b7f4d61782077616c6c6574206d7573742062652067726561746572207468616e2060008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e576022836126b6565b9150612e6282612dfb565b604082019050919050565b60006020820190508181036000830152612e8681612e4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ef682612677565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f2957612f28612ebc565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f906026836126b6565b9150612f9b82612f34565b604082019050919050565b60006020820190508181036000830152612fbf81612f83565b9050919050565b7f4d6178207472616e73666572206d75737420626520677265617465722074686160008201527f6e20312500000000000000000000000000000000000000000000000000000000602082015250565b60006130226024836126b6565b915061302d82612fc6565b604082019050919050565b6000602082019050818103600083015261305181613015565b9050919050565b600061306382612677565b915061306e83612677565b92508282101561308157613080612ebc565b5b828203905092915050565b600061309782612677565b91506130a283612677565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130d7576130d6612ebc565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b600061313e6025836126b6565b9150613149826130e2565b604082019050919050565b6000602082019050818103600083015261316d81613131565b9050919050565b600061317f82612677565b915061318a83612677565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131c3576131c2612ebc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061320882612677565b915061321383612677565b925082613223576132226131ce565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061328a6021836126b6565b91506132958261322e565b604082019050919050565b600060208201905081810360008301526132b98161327d565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006132f66011836126b6565b9150613301826132c0565b602082019050919050565b60006020820190508181036000830152613325816132e9565b9050919050565b6000819050919050565b600061335161334c6133478461332c565b612ca9565b612677565b9050919050565b61336181613336565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61339c8161279a565b82525050565b60006133ae8383613393565b60208301905092915050565b6000602082019050919050565b60006133d282613367565b6133dc8185613372565b93506133e783613383565b8060005b838110156134185781516133ff88826133a2565b975061340a836133ba565b9250506001810190506133eb565b5085935050505092915050565b600060a08201905061343a6000830188612681565b6134476020830187613358565b818103604083015261345981866133c7565b90506134686060830185612a01565b6134756080830184612681565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134b5601b836126b6565b91506134c08261347f565b602082019050919050565b600060208201905081810360008301526134e4816134a8565b905091905056fea2646970667358221220a8aa16abc9f59e212c3e45dbcb94a843b3589d8ec39dd616918f794ee3e99ab364736f6c634300080b0033

Deployed Bytecode Sourcemap

7725:8553:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8932:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9915:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10464:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9663:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10982:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15743:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9757:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8325:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10688:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15477:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14559:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8894:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10069:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7171:148;;;;;;;;;;;;;:::i;:::-;;10319:137;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;9992:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6530:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8377:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9834:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16039:164;;;;;;;;;;;;;:::i;:::-;;8866:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10818:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15217:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13316:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13563:113;;;;;;;;;;;;;:::i;:::-;;10180:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14781:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15893:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12661:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7474:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15604:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8835:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14946:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8932:55;;;;:::o;9915:71::-;9954:13;9978:5;;;;;;;;;;;;;;;;;9971:12;;9915:71;:::o;10464:216::-;10539:4;10591:6;10556:11;:23;10568:10;10556:23;;;;;;;;;;;;;;;:32;10580:7;10556:32;;;;;;;;;;;;;;;:41;;;;10634:7;10613:37;;10622:10;10613:37;;;10643:6;10613:37;;;;;;:::i;:::-;;;;;;;;10668:4;10661:11;;10464:216;;;;:::o;9663:88::-;9718:7;9736:12;;9729:19;;9663:88;:::o;10982:370::-;11082:4;11137:17;11102:11;:19;11114:6;11102:19;;;;;;;;;;;;;;;:31;11122:10;11102:31;;;;;;;;;;;;;;;;:52;11099:186;;11204:69;11240:6;11204:69;;;;;;;;;;;;;;;;;:11;:19;11216:6;11204:19;;;;;;;;;;;;;;;:31;11224:10;11204:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;11170:11;:19;11182:6;11170:19;;;;;;;;;;;;;;;:31;11190:10;11170:31;;;;;;;;;;;;;;;:103;;;;11099:186;11304:40;11318:6;11326:9;11337:6;11304:13;:40::i;:::-;11297:47;;10982:370;;;;;:::o;15743:142::-;15796:7;15823:54;15861:15;8080:42;15861:9;:15::i;:::-;15823:33;15840:15;7998:42;15840:9;:15::i;:::-;15823:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;15816:61;;15743:142;:::o;9757:71::-;9800:5;8246:1;9809:16;;9757:71;:::o;8325:44::-;;;;:::o;10688:122::-;10743:4;10767:35;10775:7;10784:17;10767:7;:35::i;:::-;10760:42;;10688:122;;;:::o;15477:119::-;6752:12;:10;:12::i;:::-;6742:22;;:6;;;;;;;;;;:22;;;6734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15582:6:::1;15560:11;:19;15572:6;15560:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15477:119:::0;;:::o;14559:214::-;6752:12;:10;:12::i;:::-;6742:22;;:6;;;;;;;;;;:22;;;6734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14645:13:::1;14630:12;:28;;;;14684:12;;14673:8;:23;;;;14732:2;14717:12;;:17;;14709:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;14559:214:::0;:::o;8894:30::-;;;;;;;;;;;;;:::o;10069:105::-;10135:7;10153:9;:18;10163:7;10153:18;;;;;;;;;;;;;;;;10146:25;;10069:105;;;:::o;7171:148::-;6752:12;:10;:12::i;:::-;6742:22;;:6;;;;;;;;;;:22;;;6734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7278:1:::1;7241:40;;7262:6;::::0;::::1;;;;;;;;7241:40;;;;;;;;;;;;7309:1;7292:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;7171:148::o:0;10319:137::-;10362:7;10371;10380;10409:12;;10423:8;;10433:14;;10401:47;;;;;;10319:137;;;:::o;9992:71::-;10035:7;10053;:5;:7::i;:::-;10046:14;;9992:71;:::o;6530:79::-;6568:7;6595:6;;;;;;;;;;;6588:13;;6530:79;:::o;8377:56::-;;;;:::o;9834:75::-;9875:13;9899:7;;;;;;;;;;;;;;;;;9892:14;;9834:75;:::o;16039:164::-;16112:19;16087:21;:44;;16078:54;;;;;;16158:1;16143:12;:16;;;;16183:12;;16172:8;:23;;;;16039:164::o;8866:19::-;;;;;;;;;;;;;:::o;10818:156::-;10898:4;10922:44;10936:10;10948:9;10959:6;10922:13;:44::i;:::-;10915:51;;10818:156;;;;:::o;15217:252::-;6752:12;:10;:12::i;:::-;6742:22;;:6;;;;;;;;;;:22;;;6734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15329:1:::1;15318:7;:12;;:34;;;;;15349:3;15334:11;:18;;15318:34;15310:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;15419:42;15449:11;15419:25;15436:7;15419:12;;:16;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;15402:14;:59;;;;15217:252:::0;;:::o;13316:239::-;6752:12;:10;:12::i;:::-;6742:22;;:6;;;;;;;;;;:22;;;6734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13406:6:::1;13401:147;13422:15;:22;13418:1;:26;13401:147;;;13466:70;13480:15;13496:1;13480:18;;;;;;;;:::i;:::-;;;;;;;;7998:42;13506:29;13516:15;13532:1;13516:18;;;;;;;;:::i;:::-;;;;;;;;13506:9;:29::i;:::-;13466:13;:70::i;:::-;;13446:3;;;;;:::i;:::-;;;;13401:147;;;;13316:239:::0;:::o;13563:113::-;13615:20;;;;;;;;;;;13607:38;;:61;13646:21;13607:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13563:113::o;10180:133::-;10264:7;10282:11;:19;10294:6;10282:19;;;;;;;;;;;;;;;:28;10302:7;10282:28;;;;;;;;;;;;;;;;10275:35;;10180:133;;;;:::o;14781:157::-;6752:12;:10;:12::i;:::-;6742:22;;:6;;;;;;;;;;:22;;;6734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14886:8:::1;14872:11;;:22;;;;;;;;;;;;;;;;;;14921:7;14905:13;:23;;;;14781:157:::0;;:::o;15893:138::-;6752:12;:10;:12::i;:::-;6742:22;;:6;;;;;;;;;;:22;;;6734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16002:21:::1;15979:20;;:44;;;;;;;;;;;;;;;;;;15893:138:::0;:::o;12661:91::-;12709:7;12736:8;;12729:15;;12661:91;;;:::o;7474:244::-;6752:12;:10;:12::i;:::-;6742:22;;:6;;;;;;;;;;:22;;;6734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7583:1:::1;7563:22;;:8;:22;;;;7555:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7673:8;7644:38;;7665:6;::::0;::::1;;;;;;;;7644:38;;;;;;;;;;;;7702:8;7693:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;7474:244:::0;:::o;15604:127::-;6752:12;:10;:12::i;:::-;6742:22;;:6;;;;;;;;;;:22;;;6734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15717:6:::1;15691:15;:23;15707:6;15691:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15604:127:::0;;:::o;8835:24::-;;;;;;;;;;;;;:::o;14946:259::-;6752:12;:10;:12::i;:::-;6742:22;;:6;;;;;;;;;;:22;;;6734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15063:1:::1;15052:7;:12;;:34;;;;;15083:3;15068:11;:18;;15052:34;15044:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;15155:42;15185:11;15155:25;15172:7;15155:12;;:16;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;15138:14;:59;;;;14946:259:::0;;:::o;602:192::-;688:7;721:1;716;:6;;724:12;708:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;748:9;764:1;760;:5;;;;:::i;:::-;748:17;;785:1;778:8;;;602:192;;;;;:::o;11360:833::-;11452:4;11472:6;;;;;;;;;;;11469:63;;;11488:41;11503:6;11511:9;11522:6;11488:14;:41::i;:::-;11481:48;;;;11469:63;11544:28;11557:6;11565;11544:12;:28::i;:::-;11610:4;;;;;;;;;;;11597:17;;:9;:17;;;;:38;;;;;7998:42;11618:17;;:9;:17;;;;11597:38;11593:198;;;11660:15;:26;11676:9;11660:26;;;;;;;;;;;;;;;;;;;;;;;;;:77;;;;11723:14;;11713:6;11690:9;:20;11700:9;11690:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;11660:77;11652:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;11593:198;11806:16;:14;:16::i;:::-;11803:35;;;11825:10;:8;:10::i;:::-;11803:35;11870:53;11892:6;11870:53;;;;;;;;;;;;;;;;;:9;:17;11880:6;11870:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11850:9;:17;11860:6;11850:17;;;;;;;;;;;;;;;:73;;;;11936:22;11961:21;11975:6;11961:13;:21::i;:::-;:67;;12022:6;11961:67;;;11985:34;11993:6;12001:9;12012:6;11985:7;:34::i;:::-;11961:67;11936:92;;12062:40;12087:14;12062:9;:20;12072:9;12062:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12039:9;:20;12049:9;12039:20;;;;;;;;;;;;;;;:63;;;;12137:9;12120:43;;12129:6;12120:43;;;12148:14;12120:43;;;;;;:::i;:::-;;;;;;;;12181:4;12174:11;;;11360:833;;;;;;:::o;460:136::-;518:7;545:43;549:1;552;545:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;538:50;;460:136;;;;:::o;1579:107::-;1624:15;1667:10;1652:26;;1579:107;:::o;800:250::-;858:7;887:1;882;:6;878:47;;;912:1;905:8;;;;878:47;937:9;953:1;949;:5;;;;:::i;:::-;937:17;;982:1;977;973;:5;;;;:::i;:::-;:10;965:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1041:1;1034:8;;;800:250;;;;;:::o;1056:132::-;1114:7;1141:39;1145:1;1148;1141:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1134:46;;1056:132;;;;:::o;12201:330::-;12294:4;12331:53;12353:6;12331:53;;;;;;;;;;;;;;;;;:9;:17;12341:6;12331:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12311:9;:17;12321:6;12311:17;;;;;;;;;;;;;;;:73;;;;12418:32;12443:6;12418:9;:20;12428:9;12418:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12395:9;:20;12405:9;12395:20;;;;;;;;;;;;;;;:55;;;;12483:9;12466:35;;12475:6;12466:35;;;12494:6;12466:35;;;;;;:::i;:::-;;;;;;;;12519:4;12512:11;;12201:330;;;;;:::o;13140:168::-;13237:14;;13227:6;:24;;:51;;;;13255:15;:23;13271:6;13255:23;;;;;;;;;;;;;;;;;;;;;;;;;13227:51;13219:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;13140:168;;:::o;13684:197::-;13733:4;13771;;;;;;;;;;;13757:18;;:10;:18;;;;:38;;;;;13789:6;;;;;;;;;;;13788:7;13757:38;:62;;;;;13808:11;;;;;;;;;;;13757:62;:116;;;;;13860:13;;13832:9;:24;13850:4;13832:24;;;;;;;;;;;;;;;;:41;;13757:116;13750:123;;13684:197;:::o;13889:662::-;9043:4;9034:6;;:13;;;;;;;;;;;;;;;;;;13940:20:::1;13963:9;:24;13981:4;13963:24;;;;;;;;;;;;;;;;13940:47;;14032:1;14018:13;;:15;;;;:::i;:::-;14002:12;:31;13998:80;;14077:1;14063:13;;:15;;;;:::i;:::-;14048:30;;13998:80;14091:21;14129:1;14115:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14091:40;;14160:4;14142;14147:1;14142:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;7916:42;14176:4;14181:1;14176:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;14205:6;;;;;;;;;;;:57;;;14277:12;14304:1;14320:4;14347;14367:15;14205:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14435:18;14410:21;:43;14406:136;;14477:20;;;;;;;;;;;14469:38;;:61;14508:21;14469:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14406:136;13927:624;;9061:5:::0;9052:6;;:14;;;;;;;;;;;;;;;;;;13889:662::o;12539:114::-;12601:4;12626:11;:19;12638:6;12626:19;;;;;;;;;;;;;;;;;;;;;;;;;12625:20;12618:27;;12539:114;;;:::o;12760:372::-;12845:7;12865:17;12885:61;12931:14;;12885:41;12896:29;12920:4;;;;;;;;;;;12908:16;;:8;:16;;;12896:11;:29::i;:::-;12885:6;:10;;:41;;;;:::i;:::-;:45;;:61;;;;:::i;:::-;12865:81;;12986:39;13015:9;12986;:24;13004:4;12986:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12959:9;:24;12977:4;12959:24;;;;;;;;;;;;;;;:66;;;;13066:4;13041:42;;13050:6;13041:42;;;13073:9;13041:42;;;;;;:::i;:::-;;;;;;;;13103:21;13114:9;13103:6;:10;;:21;;;;:::i;:::-;13096:28;;;12760:372;;;;;:::o;273:181::-;331:7;351:9;367:1;363;:5;;;;:::i;:::-;351:17;;392:1;387;:6;;379:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;445:1;438:8;;;273:181;;;;:::o;1194:345::-;1280:7;1379:1;1375;:5;1382:12;1367:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1406:9;1422:1;1418;:5;;;;:::i;:::-;1406:17;;1530:1;1523:8;;;1194:345;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:116::-;5306:21;5321:5;5306:21;:::i;:::-;5299:5;5296:32;5286:60;;5342:1;5339;5332:12;5286:60;5236:116;:::o;5358:133::-;5401:5;5439:6;5426:20;5417:29;;5455:30;5479:5;5455:30;:::i;:::-;5358:133;;;;:::o;5497:468::-;5562:6;5570;5619:2;5607:9;5598:7;5594:23;5590:32;5587:119;;;5625:79;;:::i;:::-;5587:119;5745:1;5770:53;5815:7;5806:6;5795:9;5791:22;5770:53;:::i;:::-;5760:63;;5716:117;5872:2;5898:50;5940:7;5931:6;5920:9;5916:22;5898:50;:::i;:::-;5888:60;;5843:115;5497:468;;;;;:::o;5971:329::-;6030:6;6079:2;6067:9;6058:7;6054:23;6050:32;6047:119;;;6085:79;;:::i;:::-;6047:119;6205:1;6230:53;6275:7;6266:6;6255:9;6251:22;6230:53;:::i;:::-;6220:63;;6176:117;5971:329;;;;:::o;6306:442::-;6455:4;6493:2;6482:9;6478:18;6470:26;;6506:71;6574:1;6563:9;6559:17;6550:6;6506:71;:::i;:::-;6587:72;6655:2;6644:9;6640:18;6631:6;6587:72;:::i;:::-;6669;6737:2;6726:9;6722:18;6713:6;6669:72;:::i;:::-;6306:442;;;;;;:::o;6754:118::-;6841:24;6859:5;6841:24;:::i;:::-;6836:3;6829:37;6754:118;;:::o;6878:222::-;6971:4;7009:2;6998:9;6994:18;6986:26;;7022:71;7090:1;7079:9;7075:17;7066:6;7022:71;:::i;:::-;6878:222;;;;:::o;7106:474::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:53;7555:7;7546:6;7535:9;7531:22;7510:53;:::i;:::-;7500:63;;7455:118;7106:474;;;;;:::o;7586:117::-;7695:1;7692;7685:12;7709:180;7757:77;7754:1;7747:88;7854:4;7851:1;7844:15;7878:4;7875:1;7868:15;7895:281;7978:27;8000:4;7978:27;:::i;:::-;7970:6;7966:40;8108:6;8096:10;8093:22;8072:18;8060:10;8057:34;8054:62;8051:88;;;8119:18;;:::i;:::-;8051:88;8159:10;8155:2;8148:22;7938:238;7895:281;;:::o;8182:129::-;8216:6;8243:20;;:::i;:::-;8233:30;;8272:33;8300:4;8292:6;8272:33;:::i;:::-;8182:129;;;:::o;8317:311::-;8394:4;8484:18;8476:6;8473:30;8470:56;;;8506:18;;:::i;:::-;8470:56;8556:4;8548:6;8544:17;8536:25;;8616:4;8610;8606:15;8598:23;;8317:311;;;:::o;8634:117::-;8743:1;8740;8733:12;8774:710;8870:5;8895:81;8911:64;8968:6;8911:64;:::i;:::-;8895:81;:::i;:::-;8886:90;;8996:5;9025:6;9018:5;9011:21;9059:4;9052:5;9048:16;9041:23;;9112:4;9104:6;9100:17;9092:6;9088:30;9141:3;9133:6;9130:15;9127:122;;;9160:79;;:::i;:::-;9127:122;9275:6;9258:220;9292:6;9287:3;9284:15;9258:220;;;9367:3;9396:37;9429:3;9417:10;9396:37;:::i;:::-;9391:3;9384:50;9463:4;9458:3;9454:14;9447:21;;9334:144;9318:4;9313:3;9309:14;9302:21;;9258:220;;;9262:21;8876:608;;8774:710;;;;;:::o;9507:370::-;9578:5;9627:3;9620:4;9612:6;9608:17;9604:27;9594:122;;9635:79;;:::i;:::-;9594:122;9752:6;9739:20;9777:94;9867:3;9859:6;9852:4;9844:6;9840:17;9777:94;:::i;:::-;9768:103;;9584:293;9507:370;;;;:::o;9883:539::-;9967:6;10016:2;10004:9;9995:7;9991:23;9987:32;9984:119;;;10022:79;;:::i;:::-;9984:119;10170:1;10159:9;10155:17;10142:31;10200:18;10192:6;10189:30;10186:117;;;10222:79;;:::i;:::-;10186:117;10327:78;10397:7;10388:6;10377:9;10373:22;10327:78;:::i;:::-;10317:88;;10113:302;9883:539;;;;:::o;10428:474::-;10496:6;10504;10553:2;10541:9;10532:7;10528:23;10524:32;10521:119;;;10559:79;;:::i;:::-;10521:119;10679:1;10704:53;10749:7;10740:6;10729:9;10725:22;10704:53;:::i;:::-;10694:63;;10650:117;10806:2;10832:53;10877:7;10868:6;10857:9;10853:22;10832:53;:::i;:::-;10822:63;;10777:118;10428:474;;;;;:::o;10908:468::-;10973:6;10981;11030:2;11018:9;11009:7;11005:23;11001:32;10998:119;;;11036:79;;:::i;:::-;10998:119;11156:1;11181:50;11223:7;11214:6;11203:9;11199:22;11181:50;:::i;:::-;11171:60;;11127:114;11280:2;11306:53;11351:7;11342:6;11331:9;11327:22;11306:53;:::i;:::-;11296:63;;11251:118;10908:468;;;;;:::o;11382:323::-;11438:6;11487:2;11475:9;11466:7;11462:23;11458:32;11455:119;;;11493:79;;:::i;:::-;11455:119;11613:1;11638:50;11680:7;11671:6;11660:9;11656:22;11638:50;:::i;:::-;11628:60;;11584:114;11382:323;;;;:::o;11711:60::-;11739:3;11760:5;11753:12;;11711:60;;;:::o;11777:142::-;11827:9;11860:53;11878:34;11887:24;11905:5;11887:24;:::i;:::-;11878:34;:::i;:::-;11860:53;:::i;:::-;11847:66;;11777:142;;;:::o;11925:126::-;11975:9;12008:37;12039:5;12008:37;:::i;:::-;11995:50;;11925:126;;;:::o;12057:144::-;12125:9;12158:37;12189:5;12158:37;:::i;:::-;12145:50;;12057:144;;;:::o;12207:167::-;12312:55;12361:5;12312:55;:::i;:::-;12307:3;12300:68;12207:167;;:::o;12380:258::-;12491:4;12529:2;12518:9;12514:18;12506:26;;12542:89;12628:1;12617:9;12613:17;12604:6;12542:89;:::i;:::-;12380:258;;;;:::o;12644:182::-;12784:34;12780:1;12772:6;12768:14;12761:58;12644:182;:::o;12832:366::-;12974:3;12995:67;13059:2;13054:3;12995:67;:::i;:::-;12988:74;;13071:93;13160:3;13071:93;:::i;:::-;13189:2;13184:3;13180:12;13173:19;;12832:366;;;:::o;13204:419::-;13370:4;13408:2;13397:9;13393:18;13385:26;;13457:9;13451:4;13447:20;13443:1;13432:9;13428:17;13421:47;13485:131;13611:4;13485:131;:::i;:::-;13477:139;;13204:419;;;:::o;13629:177::-;13769:29;13765:1;13757:6;13753:14;13746:53;13629:177;:::o;13812:366::-;13954:3;13975:67;14039:2;14034:3;13975:67;:::i;:::-;13968:74;;14051:93;14140:3;14051:93;:::i;:::-;14169:2;14164:3;14160:12;14153:19;;13812:366;;;:::o;14184:419::-;14350:4;14388:2;14377:9;14373:18;14365:26;;14437:9;14431:4;14427:20;14423:1;14412:9;14408:17;14401:47;14465:131;14591:4;14465:131;:::i;:::-;14457:139;;14184:419;;;:::o;14609:221::-;14749:34;14745:1;14737:6;14733:14;14726:58;14818:4;14813:2;14805:6;14801:15;14794:29;14609:221;:::o;14836:366::-;14978:3;14999:67;15063:2;15058:3;14999:67;:::i;:::-;14992:74;;15075:93;15164:3;15075:93;:::i;:::-;15193:2;15188:3;15184:12;15177:19;;14836:366;;;:::o;15208:419::-;15374:4;15412:2;15401:9;15397:18;15389:26;;15461:9;15455:4;15451:20;15447:1;15436:9;15432:17;15425:47;15489:131;15615:4;15489:131;:::i;:::-;15481:139;;15208:419;;;:::o;15633:180::-;15681:77;15678:1;15671:88;15778:4;15775:1;15768:15;15802:4;15799:1;15792:15;15819:180;15867:77;15864:1;15857:88;15964:4;15961:1;15954:15;15988:4;15985:1;15978:15;16005:233;16044:3;16067:24;16085:5;16067:24;:::i;:::-;16058:33;;16113:66;16106:5;16103:77;16100:103;;;16183:18;;:::i;:::-;16100:103;16230:1;16223:5;16219:13;16212:20;;16005:233;;;:::o;16244:225::-;16384:34;16380:1;16372:6;16368:14;16361:58;16453:8;16448:2;16440:6;16436:15;16429:33;16244:225;:::o;16475:366::-;16617:3;16638:67;16702:2;16697:3;16638:67;:::i;:::-;16631:74;;16714:93;16803:3;16714:93;:::i;:::-;16832:2;16827:3;16823:12;16816:19;;16475:366;;;:::o;16847:419::-;17013:4;17051:2;17040:9;17036:18;17028:26;;17100:9;17094:4;17090:20;17086:1;17075:9;17071:17;17064:47;17128:131;17254:4;17128:131;:::i;:::-;17120:139;;16847:419;;;:::o;17272:223::-;17412:34;17408:1;17400:6;17396:14;17389:58;17481:6;17476:2;17468:6;17464:15;17457:31;17272:223;:::o;17501:366::-;17643:3;17664:67;17728:2;17723:3;17664:67;:::i;:::-;17657:74;;17740:93;17829:3;17740:93;:::i;:::-;17858:2;17853:3;17849:12;17842:19;;17501:366;;;:::o;17873:419::-;18039:4;18077:2;18066:9;18062:18;18054:26;;18126:9;18120:4;18116:20;18112:1;18101:9;18097:17;18090:47;18154:131;18280:4;18154:131;:::i;:::-;18146:139;;17873:419;;;:::o;18298:191::-;18338:4;18358:20;18376:1;18358:20;:::i;:::-;18353:25;;18392:20;18410:1;18392:20;:::i;:::-;18387:25;;18431:1;18428;18425:8;18422:34;;;18436:18;;:::i;:::-;18422:34;18481:1;18478;18474:9;18466:17;;18298:191;;;;:::o;18495:305::-;18535:3;18554:20;18572:1;18554:20;:::i;:::-;18549:25;;18588:20;18606:1;18588:20;:::i;:::-;18583:25;;18742:1;18674:66;18670:74;18667:1;18664:81;18661:107;;;18748:18;;:::i;:::-;18661:107;18792:1;18789;18785:9;18778:16;;18495:305;;;;:::o;18806:224::-;18946:34;18942:1;18934:6;18930:14;18923:58;19015:7;19010:2;19002:6;18998:15;18991:32;18806:224;:::o;19036:366::-;19178:3;19199:67;19263:2;19258:3;19199:67;:::i;:::-;19192:74;;19275:93;19364:3;19275:93;:::i;:::-;19393:2;19388:3;19384:12;19377:19;;19036:366;;;:::o;19408:419::-;19574:4;19612:2;19601:9;19597:18;19589:26;;19661:9;19655:4;19651:20;19647:1;19636:9;19632:17;19625:47;19689:131;19815:4;19689:131;:::i;:::-;19681:139;;19408:419;;;:::o;19833:348::-;19873:7;19896:20;19914:1;19896:20;:::i;:::-;19891:25;;19930:20;19948:1;19930:20;:::i;:::-;19925:25;;20118:1;20050:66;20046:74;20043:1;20040:81;20035:1;20028:9;20021:17;20017:105;20014:131;;;20125:18;;:::i;:::-;20014:131;20173:1;20170;20166:9;20155:20;;19833:348;;;;:::o;20187:180::-;20235:77;20232:1;20225:88;20332:4;20329:1;20322:15;20356:4;20353:1;20346:15;20373:185;20413:1;20430:20;20448:1;20430:20;:::i;:::-;20425:25;;20464:20;20482:1;20464:20;:::i;:::-;20459:25;;20503:1;20493:35;;20508:18;;:::i;:::-;20493:35;20550:1;20547;20543:9;20538:14;;20373:185;;;;:::o;20564:220::-;20704:34;20700:1;20692:6;20688:14;20681:58;20773:3;20768:2;20760:6;20756:15;20749:28;20564:220;:::o;20790:366::-;20932:3;20953:67;21017:2;21012:3;20953:67;:::i;:::-;20946:74;;21029:93;21118:3;21029:93;:::i;:::-;21147:2;21142:3;21138:12;21131:19;;20790:366;;;:::o;21162:419::-;21328:4;21366:2;21355:9;21351:18;21343:26;;21415:9;21409:4;21405:20;21401:1;21390:9;21386:17;21379:47;21443:131;21569:4;21443:131;:::i;:::-;21435:139;;21162:419;;;:::o;21587:167::-;21727:19;21723:1;21715:6;21711:14;21704:43;21587:167;:::o;21760:366::-;21902:3;21923:67;21987:2;21982:3;21923:67;:::i;:::-;21916:74;;21999:93;22088:3;21999:93;:::i;:::-;22117:2;22112:3;22108:12;22101:19;;21760:366;;;:::o;22132:419::-;22298:4;22336:2;22325:9;22321:18;22313:26;;22385:9;22379:4;22375:20;22371:1;22360:9;22356:17;22349:47;22413:131;22539:4;22413:131;:::i;:::-;22405:139;;22132:419;;;:::o;22557:85::-;22602:7;22631:5;22620:16;;22557:85;;;:::o;22648:158::-;22706:9;22739:61;22757:42;22766:32;22792:5;22766:32;:::i;:::-;22757:42;:::i;:::-;22739:61;:::i;:::-;22726:74;;22648:158;;;:::o;22812:147::-;22907:45;22946:5;22907:45;:::i;:::-;22902:3;22895:58;22812:147;;:::o;22965:114::-;23032:6;23066:5;23060:12;23050:22;;22965:114;;;:::o;23085:184::-;23184:11;23218:6;23213:3;23206:19;23258:4;23253:3;23249:14;23234:29;;23085:184;;;;:::o;23275:132::-;23342:4;23365:3;23357:11;;23395:4;23390:3;23386:14;23378:22;;23275:132;;;:::o;23413:108::-;23490:24;23508:5;23490:24;:::i;:::-;23485:3;23478:37;23413:108;;:::o;23527:179::-;23596:10;23617:46;23659:3;23651:6;23617:46;:::i;:::-;23695:4;23690:3;23686:14;23672:28;;23527:179;;;;:::o;23712:113::-;23782:4;23814;23809:3;23805:14;23797:22;;23712:113;;;:::o;23861:732::-;23980:3;24009:54;24057:5;24009:54;:::i;:::-;24079:86;24158:6;24153:3;24079:86;:::i;:::-;24072:93;;24189:56;24239:5;24189:56;:::i;:::-;24268:7;24299:1;24284:284;24309:6;24306:1;24303:13;24284:284;;;24385:6;24379:13;24412:63;24471:3;24456:13;24412:63;:::i;:::-;24405:70;;24498:60;24551:6;24498:60;:::i;:::-;24488:70;;24344:224;24331:1;24328;24324:9;24319:14;;24284:284;;;24288:14;24584:3;24577:10;;23985:608;;;23861:732;;;;:::o;24599:831::-;24862:4;24900:3;24889:9;24885:19;24877:27;;24914:71;24982:1;24971:9;24967:17;24958:6;24914:71;:::i;:::-;24995:80;25071:2;25060:9;25056:18;25047:6;24995:80;:::i;:::-;25122:9;25116:4;25112:20;25107:2;25096:9;25092:18;25085:48;25150:108;25253:4;25244:6;25150:108;:::i;:::-;25142:116;;25268:72;25336:2;25325:9;25321:18;25312:6;25268:72;:::i;:::-;25350:73;25418:3;25407:9;25403:19;25394:6;25350:73;:::i;:::-;24599:831;;;;;;;;:::o;25436:177::-;25576:29;25572:1;25564:6;25560:14;25553:53;25436:177;:::o;25619:366::-;25761:3;25782:67;25846:2;25841:3;25782:67;:::i;:::-;25775:74;;25858:93;25947:3;25858:93;:::i;:::-;25976:2;25971:3;25967:12;25960:19;;25619:366;;;:::o;25991:419::-;26157:4;26195:2;26184:9;26180:18;26172:26;;26244:9;26238:4;26234:20;26230:1;26219:9;26215:17;26208:47;26272:131;26398:4;26272:131;:::i;:::-;26264:139;;25991:419;;;:::o

Swarm Source

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