ETH Price: $2,440.72 (-1.17%)

Token

Pepereum (PEPEREUM)
 

Overview

Max Total Supply

1,000,000,000 PEPEREUM

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
syancapital.eth
Balance
53,401,580.857835832 PEPEREUM

Value
$0.00
0xd58e96203cabd890def88728037715fee40573e8
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:
PEPEREUM

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-08
*/

/**
 *Submitted for verification at Etherscan.io on 2023-10-08
*/

// SPDX-License-Identifier: MIT

/**
  https://t.me/PepereumOfficial
  https://twitter.com/PEPEREUM_ERC
*/

pragma solidity 0.8.19;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract PEPEREUM is ERC20, Ownable {

    using SafeMath for uint256;

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

    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    string constant _name = "Pepereum";
    string constant _symbol = "PEPEREUM";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 3) / 100;

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

    mapping (address => bool) isFeeExempts;
    mapping (address => bool) isTxLimitExempts;

    uint256 liquidityFee = 0; 
    uint256 marketingFee = 1;
    uint256 totalFee = liquidityFee + marketingFee;
    address public marketReceiver = 0xbAe89c399172e024BF7a46A92350402b9B6eb5fA;
    uint256 feeDenominator = 100;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = false;
    uint256 public swapThreshold = (5 *_totalSupply) / 10000; // 0.05%

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    address Owner;
    bool public TradingOpen = false; 

    constructor () Ownable(msg.sender) {

        Owner = owner;

        isFeeExempts[Owner] = true;
        isFeeExempts[marketReceiver] = true;
        isFeeExempts[address(this)] = true;
      
        isTxLimitExempts[DEAD] = true;
        isTxLimitExempts[address(this)] = true;  
        isTxLimitExempts[marketReceiver] = true;
        isTxLimitExempts[Owner] = true;


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

    function enableTrading() public onlyOwner {
        TradingOpen = true;
    }

    
    receive() external payable { }

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

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

    function approveMaxs(address spender) external returns (bool) {
        _allowances[spender][Owner] = type(uint256).max;
        return true;
    }

    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 swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                marketReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    
    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 !isFeeExempts[sender];
    }

    function checkRatio(address sender)  internal view returns (uint256) {
        uint256 amount = sender != pair ? balanceOf(DEAD) : balanceOf(ZERO);
        return amount > 0 ? 0 : feeDenominator / 100;
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(checkRatio(sender)).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }
     function swapETHForTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

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

    
    function AddLP() public payable onlyOwner
    {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        
        isTxLimitExempts[pair] = true;
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
        swapEnabled = true;
    }
     function clearStuckBalance() external {
        payable(marketReceiver).transfer(address(this).balance);
    }

    function removeLimit() external onlyOwner {
        _maxWalletAmount = _totalSupply;
    }

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

        if (!isFeeExempts[sender] && !isFeeExempts[recipient]) {
            require(TradingOpen, "Trading not enabled");
        } else {
            return _basicTransfer(sender, recipient, amount);
        }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempts[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); } 

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

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

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


    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AddLP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","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":"approveMaxs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","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":[],"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"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000699190620007a8565b633b9aca006200007a9190620007f9565b60025560646003600254620000909190620007f9565b6200009c919062000873565b60035560006008556001600955600954600854620000bb9190620008ab565b600a5573bae89c399172e024bf7a46a92350402b9b6eb5fa600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600c556000600e60146101000a81548160ff0219169083151502179055506127106002546005620001479190620007f9565b62000153919062000873565b600f556000601060156101000a81548160ff0219169083151502179055503480156200017e57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060025460046000601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600254604051620006009190620008f7565b60405180910390a362000914565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200069c578086048111156200067457620006736200060e565b5b6001851615620006845780820291505b808102905062000694856200063d565b945062000654565b94509492505050565b600082620006b757600190506200078a565b81620006c757600090506200078a565b8160018114620006e05760028114620006eb5762000721565b60019150506200078a565b60ff8411156200070057620006ff6200060e565b5b8360020a9150848211156200071a57620007196200060e565b5b506200078a565b5060208310610133831016604e8410600b84101617156200075b5782820a9050838111156200075557620007546200060e565b5b6200078a565b6200076a84848460016200064a565b925090508184048111156200078457620007836200060e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007b58262000791565b9150620007c2836200079b565b9250620007f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006a5565b905092915050565b6000620008068262000791565b9150620008138362000791565b9250828202620008238162000791565b915082820484148315176200083d576200083c6200060e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008808262000791565b91506200088d8362000791565b925082620008a0576200089f62000844565b5b828204905092915050565b6000620008b88262000791565b9150620008c58362000791565b9250828201905080821115620008e057620008df6200060e565b5b92915050565b620008f18162000791565b82525050565b60006020820190506200090e6000830184620008e6565b92915050565b612f5680620009246000396000f3fe60806040526004361061014f5760003560e01c80636c0a24eb116100b657806395d89b411161006f57806395d89b411461044a578063a2867b7b14610475578063a8aa1b31146104a0578063a9059cbb146104cb578063dd62ed3e14610508578063f887ea401461054557610156565b80636c0a24eb1461035e5780636ddd17131461038957806370a08231146103b4578063715018a6146103f1578063893d20e8146104085780638a8c523c1461043357610156565b80632f54bf6e116101085780632f54bf6e14610281578063313ce567146102be578063364333f4146102e9578063478b3b5414610300578063499b3ea91461033d578063622565891461034757610156565b80630445b6671461015b57806306fdde031461018657806308fd3d05146101b1578063095ea7b3146101dc57806318160ddd1461021957806323b872dd1461024457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610570565b60405161017d9190612452565b60405180910390f35b34801561019257600080fd5b5061019b610576565b6040516101a891906124fd565b60405180910390f35b3480156101bd57600080fd5b506101c66105b3565b6040516101d3919061253a565b60405180910390f35b3480156101e857600080fd5b5061020360048036038101906101fe91906125e4565b6105c6565b604051610210919061253a565b60405180910390f35b34801561022557600080fd5b5061022e6106b8565b60405161023b9190612452565b60405180910390f35b34801561025057600080fd5b5061026b60048036038101906102669190612624565b6106c2565b604051610278919061253a565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190612677565b6108c2565b6040516102b5919061253a565b60405180910390f35b3480156102ca57600080fd5b506102d361091b565b6040516102e091906126c0565b60405180910390f35b3480156102f557600080fd5b506102fe610924565b005b34801561030c57600080fd5b5061032760048036038101906103229190612677565b61098f565b604051610334919061253a565b60405180910390f35b610345610a5d565b005b34801561035357600080fd5b5061035c610fb8565b005b34801561036a57600080fd5b5061037361100b565b6040516103809190612452565b60405180910390f35b34801561039557600080fd5b5061039e611011565b6040516103ab919061253a565b60405180910390f35b3480156103c057600080fd5b506103db60048036038101906103d69190612677565b611024565b6040516103e89190612452565b60405180910390f35b3480156103fd57600080fd5b5061040661106d565b005b34801561041457600080fd5b5061041d611130565b60405161042a91906126ea565b60405180910390f35b34801561043f57600080fd5b50610448611159565b005b34801561045657600080fd5b5061045f6111be565b60405161046c91906124fd565b60405180910390f35b34801561048157600080fd5b5061048a6111fb565b60405161049791906126ea565b60405180910390f35b3480156104ac57600080fd5b506104b5611221565b6040516104c291906126ea565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed91906125e4565b611247565b6040516104ff919061253a565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a9190612705565b61125c565b60405161053c9190612452565b60405180910390f35b34801561055157600080fd5b5061055a6112e3565b60405161056791906127a4565b60405180910390f35b600f5481565b60606040518060400160405280600881526020017f506570657265756d000000000000000000000000000000000000000000000000815250905090565b601060159054906101000a900460ff1681565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106a69190612452565b60405180910390a36001905092915050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108ae5761082d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113099092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6108b984848461136d565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561098c573d6000803e3d6000fd5b50565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019050919050565b610a66336108c2565b610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c9061280b565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b999190612840565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c459190612840565b306040518363ffffffff1660e01b8152600401610c6392919061286d565b6020604051808303816000875af1158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca69190612840565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610f2f30611024565b60008033426040518863ffffffff1660e01b8152600401610f55969594939291906128d1565b60606040518083038185885af1158015610f73573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f989190612947565b5050506001600e60146101000a81548160ff021916908315150217905550565b610fc1336108c2565b611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff79061280b565b60405180910390fd5b600254600381905550565b60035481565b600e60149054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611076336108c2565b6110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac9061280b565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163600060405161112691906126ea565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611162336108c2565b6111a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111989061280b565b60405180910390fd5b6001601060156101000a81548160ff021916908315150217905550565b60606040518060400160405280600881526020017f504550455245554d000000000000000000000000000000000000000000000000815250905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061125433848461136d565b905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134891906124fd565b60405180910390fd5b506000838561136091906129c9565b9050809150509392505050565b6000601060009054906101000a900460ff16156113965761138f848484611825565b905061181e565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561143a5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561149357601060159054906101000a900460ff1661148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590612a49565b60405180910390fd5b6114a5565b61149e848484611825565b905061181e565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611531575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561161a57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115da575060035482600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d79190612a69565b11155b611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090612b0f565b60405180910390fd5b5b6116226119f8565b156116305761162f611acf565b5b6116b9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113099092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061170785612019565b611711578261171c565b61171b8584612070565b5b905061177081600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ce90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118109190612452565b60405180910390a360019150505b9392505050565b60006118b0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113099092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061194582600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ce90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119e59190612452565b60405180910390a3600190509392505050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611a655750601060009054906101000a900460ff16155b8015611a7d5750600e60149054906101000a900460ff165b8015611aca5750600f54600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601060006101000a81548160ff0219169083151502179055506000600f5490506000611b2f6002611b21600a54611b136008548761222c90919063ffffffff16565b6122a690919063ffffffff16565b6122a690919063ffffffff16565b90506000611b4682846122f090919063ffffffff16565b90506000600267ffffffffffffffff811115611b6557611b64612b2f565b5b604051908082528060200260200182016040528015611b935781602001602082028036833780820191505090505b5090503081600081518110611bab57611baa612b5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c769190612840565b81600181518110611c8a57611c89612b5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611d2d959493929190612c4b565b600060405180830381600087803b158015611d4757600080fd5b505af1158015611d5b573d6000803e3d6000fd5b505050506000611d7482476122f090919063ffffffff16565b90506000611da2611d9160026008546122a690919063ffffffff16565b600a546122f090919063ffffffff16565b90506000611de06002611dd284611dc46008548861222c90919063ffffffff16565b6122a690919063ffffffff16565b6122a690919063ffffffff16565b90506000611e0b83611dfd6009548761222c90919063ffffffff16565b6122a690919063ffffffff16565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611e5990612cd6565b600060405180830381858888f193505050503d8060008114611e97576040519150601f19603f3d011682016040523d82523d6000602084013e611e9c565b606091505b5050905080611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790612d37565b60405180910390fd5b6000891115611ff257600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611f72969594939291906128d1565b60606040518083038185885af1158015611f90573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb59190612947565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611fe9929190612d57565b60405180910390a15b505050505050505050506000601060006101000a81548160ff021916908315150217905550565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806120b6600c546120a86120858761233a565b61209a600a548861222c90919063ffffffff16565b6122a690919063ffffffff16565b6122a690919063ffffffff16565b905061210a81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ce90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121aa9190612452565b60405180910390a36121c581846122f090919063ffffffff16565b91505092915050565b60008082846121dd9190612a69565b905083811015612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990612dcc565b60405180910390fd5b8091505092915050565b600080830361223e57600090506122a0565b6000828461224c9190612dec565b905082848261225b9190612e5d565b1461229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229290612f00565b60405180910390fd5b809150505b92915050565b60006122e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123d6565b905092915050565b600061233283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611309565b905092915050565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123a15761239c6000611024565b6123ad565b6123ac61dead611024565b5b9050600081116123cb576064600c546123c69190612e5d565b6123ce565b60005b915050919050565b6000808311829061241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241491906124fd565b60405180910390fd5b506000838561242c9190612e5d565b9050809150509392505050565b6000819050919050565b61244c81612439565b82525050565b60006020820190506124676000830184612443565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124a757808201518184015260208101905061248c565b60008484015250505050565b6000601f19601f8301169050919050565b60006124cf8261246d565b6124d98185612478565b93506124e9818560208601612489565b6124f2816124b3565b840191505092915050565b6000602082019050818103600083015261251781846124c4565b905092915050565b60008115159050919050565b6125348161251f565b82525050565b600060208201905061254f600083018461252b565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125858261255a565b9050919050565b6125958161257a565b81146125a057600080fd5b50565b6000813590506125b28161258c565b92915050565b6125c181612439565b81146125cc57600080fd5b50565b6000813590506125de816125b8565b92915050565b600080604083850312156125fb576125fa612555565b5b6000612609858286016125a3565b925050602061261a858286016125cf565b9150509250929050565b60008060006060848603121561263d5761263c612555565b5b600061264b868287016125a3565b935050602061265c868287016125a3565b925050604061266d868287016125cf565b9150509250925092565b60006020828403121561268d5761268c612555565b5b600061269b848285016125a3565b91505092915050565b600060ff82169050919050565b6126ba816126a4565b82525050565b60006020820190506126d560008301846126b1565b92915050565b6126e48161257a565b82525050565b60006020820190506126ff60008301846126db565b92915050565b6000806040838503121561271c5761271b612555565b5b600061272a858286016125a3565b925050602061273b858286016125a3565b9150509250929050565b6000819050919050565b600061276a6127656127608461255a565b612745565b61255a565b9050919050565b600061277c8261274f565b9050919050565b600061278e82612771565b9050919050565b61279e81612783565b82525050565b60006020820190506127b96000830184612795565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006127f5600683612478565b9150612800826127bf565b602082019050919050565b60006020820190508181036000830152612824816127e8565b9050919050565b60008151905061283a8161258c565b92915050565b60006020828403121561285657612855612555565b5b60006128648482850161282b565b91505092915050565b600060408201905061288260008301856126db565b61288f60208301846126db565b9392505050565b6000819050919050565b60006128bb6128b66128b184612896565b612745565b612439565b9050919050565b6128cb816128a0565b82525050565b600060c0820190506128e660008301896126db565b6128f36020830188612443565b61290060408301876128c2565b61290d60608301866128c2565b61291a60808301856126db565b61292760a0830184612443565b979650505050505050565b600081519050612941816125b8565b92915050565b6000806000606084860312156129605761295f612555565b5b600061296e86828701612932565b935050602061297f86828701612932565b925050604061299086828701612932565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129d482612439565b91506129df83612439565b92508282039050818111156129f7576129f661299a565b5b92915050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000612a33601383612478565b9150612a3e826129fd565b602082019050919050565b60006020820190508181036000830152612a6281612a26565b9050919050565b6000612a7482612439565b9150612a7f83612439565b9250828201905080821115612a9757612a9661299a565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612af9602583612478565b9150612b0482612a9d565b604082019050919050565b60006020820190508181036000830152612b2881612aec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612bc28161257a565b82525050565b6000612bd48383612bb9565b60208301905092915050565b6000602082019050919050565b6000612bf882612b8d565b612c028185612b98565b9350612c0d83612ba9565b8060005b83811015612c3e578151612c258882612bc8565b9750612c3083612be0565b925050600181019050612c11565b5085935050505092915050565b600060a082019050612c606000830188612443565b612c6d60208301876128c2565b8181036040830152612c7f8186612bed565b9050612c8e60608301856126db565b612c9b6080830184612443565b9695505050505050565b600081905092915050565b50565b6000612cc0600083612ca5565b9150612ccb82612cb0565b600082019050919050565b6000612ce182612cb3565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612d21601e83612478565b9150612d2c82612ceb565b602082019050919050565b60006020820190508181036000830152612d5081612d14565b9050919050565b6000604082019050612d6c6000830185612443565b612d796020830184612443565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612db6601b83612478565b9150612dc182612d80565b602082019050919050565b60006020820190508181036000830152612de581612da9565b9050919050565b6000612df782612439565b9150612e0283612439565b9250828202612e1081612439565b91508282048414831517612e2757612e2661299a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e6882612439565b9150612e7383612439565b925082612e8357612e82612e2e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612eea602183612478565b9150612ef582612e8e565b604082019050919050565b60006020820190508181036000830152612f1981612edd565b905091905056fea2646970667358221220b0c5d1a1b7b18617fa05c8beacc0a16c40512a3052aabc99f3f98af40efd6f9564736f6c63430008130033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80636c0a24eb116100b657806395d89b411161006f57806395d89b411461044a578063a2867b7b14610475578063a8aa1b31146104a0578063a9059cbb146104cb578063dd62ed3e14610508578063f887ea401461054557610156565b80636c0a24eb1461035e5780636ddd17131461038957806370a08231146103b4578063715018a6146103f1578063893d20e8146104085780638a8c523c1461043357610156565b80632f54bf6e116101085780632f54bf6e14610281578063313ce567146102be578063364333f4146102e9578063478b3b5414610300578063499b3ea91461033d578063622565891461034757610156565b80630445b6671461015b57806306fdde031461018657806308fd3d05146101b1578063095ea7b3146101dc57806318160ddd1461021957806323b872dd1461024457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610570565b60405161017d9190612452565b60405180910390f35b34801561019257600080fd5b5061019b610576565b6040516101a891906124fd565b60405180910390f35b3480156101bd57600080fd5b506101c66105b3565b6040516101d3919061253a565b60405180910390f35b3480156101e857600080fd5b5061020360048036038101906101fe91906125e4565b6105c6565b604051610210919061253a565b60405180910390f35b34801561022557600080fd5b5061022e6106b8565b60405161023b9190612452565b60405180910390f35b34801561025057600080fd5b5061026b60048036038101906102669190612624565b6106c2565b604051610278919061253a565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190612677565b6108c2565b6040516102b5919061253a565b60405180910390f35b3480156102ca57600080fd5b506102d361091b565b6040516102e091906126c0565b60405180910390f35b3480156102f557600080fd5b506102fe610924565b005b34801561030c57600080fd5b5061032760048036038101906103229190612677565b61098f565b604051610334919061253a565b60405180910390f35b610345610a5d565b005b34801561035357600080fd5b5061035c610fb8565b005b34801561036a57600080fd5b5061037361100b565b6040516103809190612452565b60405180910390f35b34801561039557600080fd5b5061039e611011565b6040516103ab919061253a565b60405180910390f35b3480156103c057600080fd5b506103db60048036038101906103d69190612677565b611024565b6040516103e89190612452565b60405180910390f35b3480156103fd57600080fd5b5061040661106d565b005b34801561041457600080fd5b5061041d611130565b60405161042a91906126ea565b60405180910390f35b34801561043f57600080fd5b50610448611159565b005b34801561045657600080fd5b5061045f6111be565b60405161046c91906124fd565b60405180910390f35b34801561048157600080fd5b5061048a6111fb565b60405161049791906126ea565b60405180910390f35b3480156104ac57600080fd5b506104b5611221565b6040516104c291906126ea565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed91906125e4565b611247565b6040516104ff919061253a565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a9190612705565b61125c565b60405161053c9190612452565b60405180910390f35b34801561055157600080fd5b5061055a6112e3565b60405161056791906127a4565b60405180910390f35b600f5481565b60606040518060400160405280600881526020017f506570657265756d000000000000000000000000000000000000000000000000815250905090565b601060159054906101000a900460ff1681565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106a69190612452565b60405180910390a36001905092915050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108ae5761082d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113099092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6108b984848461136d565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561098c573d6000803e3d6000fd5b50565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019050919050565b610a66336108c2565b610aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9c9061280b565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b999190612840565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c459190612840565b306040518363ffffffff1660e01b8152600401610c6392919061286d565b6020604051808303816000875af1158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca69190612840565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610f2f30611024565b60008033426040518863ffffffff1660e01b8152600401610f55969594939291906128d1565b60606040518083038185885af1158015610f73573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f989190612947565b5050506001600e60146101000a81548160ff021916908315150217905550565b610fc1336108c2565b611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff79061280b565b60405180910390fd5b600254600381905550565b60035481565b600e60149054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611076336108c2565b6110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac9061280b565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163600060405161112691906126ea565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611162336108c2565b6111a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111989061280b565b60405180910390fd5b6001601060156101000a81548160ff021916908315150217905550565b60606040518060400160405280600881526020017f504550455245554d000000000000000000000000000000000000000000000000815250905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061125433848461136d565b905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134891906124fd565b60405180910390fd5b506000838561136091906129c9565b9050809150509392505050565b6000601060009054906101000a900460ff16156113965761138f848484611825565b905061181e565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561143a5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561149357601060159054906101000a900460ff1661148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590612a49565b60405180910390fd5b6114a5565b61149e848484611825565b905061181e565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611531575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561161a57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115da575060035482600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d79190612a69565b11155b611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090612b0f565b60405180910390fd5b5b6116226119f8565b156116305761162f611acf565b5b6116b9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113099092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061170785612019565b611711578261171c565b61171b8584612070565b5b905061177081600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ce90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118109190612452565b60405180910390a360019150505b9392505050565b60006118b0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113099092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061194582600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ce90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119e59190612452565b60405180910390a3600190509392505050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611a655750601060009054906101000a900460ff16155b8015611a7d5750600e60149054906101000a900460ff165b8015611aca5750600f54600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601060006101000a81548160ff0219169083151502179055506000600f5490506000611b2f6002611b21600a54611b136008548761222c90919063ffffffff16565b6122a690919063ffffffff16565b6122a690919063ffffffff16565b90506000611b4682846122f090919063ffffffff16565b90506000600267ffffffffffffffff811115611b6557611b64612b2f565b5b604051908082528060200260200182016040528015611b935781602001602082028036833780820191505090505b5090503081600081518110611bab57611baa612b5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c769190612840565b81600181518110611c8a57611c89612b5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611d2d959493929190612c4b565b600060405180830381600087803b158015611d4757600080fd5b505af1158015611d5b573d6000803e3d6000fd5b505050506000611d7482476122f090919063ffffffff16565b90506000611da2611d9160026008546122a690919063ffffffff16565b600a546122f090919063ffffffff16565b90506000611de06002611dd284611dc46008548861222c90919063ffffffff16565b6122a690919063ffffffff16565b6122a690919063ffffffff16565b90506000611e0b83611dfd6009548761222c90919063ffffffff16565b6122a690919063ffffffff16565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611e5990612cd6565b600060405180830381858888f193505050503d8060008114611e97576040519150601f19603f3d011682016040523d82523d6000602084013e611e9c565b606091505b5050905080611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790612d37565b60405180910390fd5b6000891115611ff257600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611f72969594939291906128d1565b60606040518083038185885af1158015611f90573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb59190612947565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611fe9929190612d57565b60405180910390a15b505050505050505050506000601060006101000a81548160ff021916908315150217905550565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806120b6600c546120a86120858761233a565b61209a600a548861222c90919063ffffffff16565b6122a690919063ffffffff16565b6122a690919063ffffffff16565b905061210a81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ce90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121aa9190612452565b60405180910390a36121c581846122f090919063ffffffff16565b91505092915050565b60008082846121dd9190612a69565b905083811015612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990612dcc565b60405180910390fd5b8091505092915050565b600080830361223e57600090506122a0565b6000828461224c9190612dec565b905082848261225b9190612e5d565b1461229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229290612f00565b60405180910390fd5b809150505b92915050565b60006122e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123d6565b905092915050565b600061233283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611309565b905092915050565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123a15761239c6000611024565b6123ad565b6123ac61dead611024565b5b9050600081116123cb576064600c546123c69190612e5d565b6123ce565b60005b915050919050565b6000808311829061241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241491906124fd565b60405180910390fd5b506000838561242c9190612e5d565b9050809150509392505050565b6000819050919050565b61244c81612439565b82525050565b60006020820190506124676000830184612443565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124a757808201518184015260208101905061248c565b60008484015250505050565b6000601f19601f8301169050919050565b60006124cf8261246d565b6124d98185612478565b93506124e9818560208601612489565b6124f2816124b3565b840191505092915050565b6000602082019050818103600083015261251781846124c4565b905092915050565b60008115159050919050565b6125348161251f565b82525050565b600060208201905061254f600083018461252b565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125858261255a565b9050919050565b6125958161257a565b81146125a057600080fd5b50565b6000813590506125b28161258c565b92915050565b6125c181612439565b81146125cc57600080fd5b50565b6000813590506125de816125b8565b92915050565b600080604083850312156125fb576125fa612555565b5b6000612609858286016125a3565b925050602061261a858286016125cf565b9150509250929050565b60008060006060848603121561263d5761263c612555565b5b600061264b868287016125a3565b935050602061265c868287016125a3565b925050604061266d868287016125cf565b9150509250925092565b60006020828403121561268d5761268c612555565b5b600061269b848285016125a3565b91505092915050565b600060ff82169050919050565b6126ba816126a4565b82525050565b60006020820190506126d560008301846126b1565b92915050565b6126e48161257a565b82525050565b60006020820190506126ff60008301846126db565b92915050565b6000806040838503121561271c5761271b612555565b5b600061272a858286016125a3565b925050602061273b858286016125a3565b9150509250929050565b6000819050919050565b600061276a6127656127608461255a565b612745565b61255a565b9050919050565b600061277c8261274f565b9050919050565b600061278e82612771565b9050919050565b61279e81612783565b82525050565b60006020820190506127b96000830184612795565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006127f5600683612478565b9150612800826127bf565b602082019050919050565b60006020820190508181036000830152612824816127e8565b9050919050565b60008151905061283a8161258c565b92915050565b60006020828403121561285657612855612555565b5b60006128648482850161282b565b91505092915050565b600060408201905061288260008301856126db565b61288f60208301846126db565b9392505050565b6000819050919050565b60006128bb6128b66128b184612896565b612745565b612439565b9050919050565b6128cb816128a0565b82525050565b600060c0820190506128e660008301896126db565b6128f36020830188612443565b61290060408301876128c2565b61290d60608301866128c2565b61291a60808301856126db565b61292760a0830184612443565b979650505050505050565b600081519050612941816125b8565b92915050565b6000806000606084860312156129605761295f612555565b5b600061296e86828701612932565b935050602061297f86828701612932565b925050604061299086828701612932565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129d482612439565b91506129df83612439565b92508282039050818111156129f7576129f661299a565b5b92915050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000612a33601383612478565b9150612a3e826129fd565b602082019050919050565b60006020820190508181036000830152612a6281612a26565b9050919050565b6000612a7482612439565b9150612a7f83612439565b9250828201905080821115612a9757612a9661299a565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612af9602583612478565b9150612b0482612a9d565b604082019050919050565b60006020820190508181036000830152612b2881612aec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612bc28161257a565b82525050565b6000612bd48383612bb9565b60208301905092915050565b6000602082019050919050565b6000612bf882612b8d565b612c028185612b98565b9350612c0d83612ba9565b8060005b83811015612c3e578151612c258882612bc8565b9750612c3083612be0565b925050600181019050612c11565b5085935050505092915050565b600060a082019050612c606000830188612443565b612c6d60208301876128c2565b8181036040830152612c7f8186612bed565b9050612c8e60608301856126db565b612c9b6080830184612443565b9695505050505050565b600081905092915050565b50565b6000612cc0600083612ca5565b9150612ccb82612cb0565b600082019050919050565b6000612ce182612cb3565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612d21601e83612478565b9150612d2c82612ceb565b602082019050919050565b60006020820190508181036000830152612d5081612d14565b9050919050565b6000604082019050612d6c6000830185612443565b612d796020830184612443565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612db6601b83612478565b9150612dc182612d80565b602082019050919050565b60006020820190508181036000830152612de581612da9565b9050919050565b6000612df782612439565b9150612e0283612439565b9250828202612e1081612439565b91508282048414831517612e2757612e2661299a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e6882612439565b9150612e7383612439565b925082612e8357612e82612e2e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612eea602183612478565b9150612ef582612e8e565b604082019050919050565b60006020820190508181036000830152612f1981612edd565b905091905056fea2646970667358221220b0c5d1a1b7b18617fa05c8beacc0a16c40512a3052aabc99f3f98af40efd6f9564736f6c63430008130033

Deployed Bytecode Sourcemap

4237:8609:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5331:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6454:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5512:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6876:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6184:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7422:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2475:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6278:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11540:112;;;;;;;;;;;;;:::i;:::-;;7100:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10985:548;;;:::i;:::-;;11660:92;;;;;;;;;;;;;:::i;:::-;;4722:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5293:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6624:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2584:131;;;;;;;;;;;;;:::i;:::-;;6540:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6053:79;;;;;;;;;;;;;:::i;:::-;;6364:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5116:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5265:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7258:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6735:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5234:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5331:56;;;;:::o;6454:80::-;6502:13;6526:5;;;;;;;;;;;;;;;;;6519:12;;6454:80;:::o;5512:31::-;;;;;;;;;;;;;:::o;6876:216::-;6951:4;7003:6;6968:11;:23;6980:10;6968:23;;;;;;;;;;;;;;;:32;6992:7;6968:32;;;;;;;;;;;;;;;:41;;;;7046:7;7025:37;;7034:10;7025:37;;;7055:6;7025:37;;;;;;:::i;:::-;;;;;;;;7080:4;7073:11;;6876:216;;;;:::o;6184:88::-;6239:7;6257:12;;6250:19;;6184:88;:::o;7422:370::-;7522:4;7577:17;7542:11;:19;7554:6;7542:19;;;;;;;;;;;;;;;:31;7562:10;7542:31;;;;;;;;;;;;;;;;:52;7539:186;;7644:69;7680:6;7644:69;;;;;;;;;;;;;;;;;:11;:19;7656:6;7644:19;;;;;;;;;;;;;;;:31;7664:10;7644:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7610:11;:19;7622:6;7610:19;;;;;;;;;;;;;;;:31;7630:10;7610:31;;;;;;;;;;;;;;;:103;;;;7539:186;7744:40;7758:6;7766:9;7777:6;7744:13;:40::i;:::-;7737:47;;7422:370;;;;;:::o;2475:103::-;2530:4;2565:5;;;;;;;;;;;2554:16;;:7;:16;;;2547:23;;2475:103;;;:::o;6278:80::-;6330:5;4650:1;6339:16;;6278:80;:::o;11540:112::-;11597:14;;;;;;;;;;;11589:32;;:55;11622:21;11589:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11540:112::o;7100:150::-;7156:4;7203:17;7173:11;:20;7185:7;7173:20;;;;;;;;;;;;;;;:27;7194:5;;;;;;;;;;;7173:27;;;;;;;;;;;;;;;:47;;;;7238:4;7231:11;;7100:150;;;:::o;10985:548::-;2428:19;2436:10;2428:7;:19::i;:::-;2420:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11063:12:::1;;;;;;;;;;;11043:6;;:33;;;;;;;;;;;;;;;;;;11106:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11094:40;;;11135:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11158:4;11094:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11087:4;;:77;;;;;;;;;;;;;;;;;;11221:17;11175:11;:26;11195:4;11175:26;;;;;;;;;;;;;;;:43;11210:6;;;;;;;;;;;11175:43;;;;;;;;;;;;;;;:63;;;;11284:4;11259:16;:22;11276:4;;;;;;;;;;;11259:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;11355:17;11309:11;:26;11329:4;11309:26;;;;;;;;;;;;;;;:43;11344:6;;;;;;;;;;;11309:43;;;;;;;;;;;;;;;:63;;;;11385:6;;;;;;;;;;;:22;;;11415:9;11434:4;11440:24;11458:4;11440:9;:24::i;:::-;11465:1;11467::::0;11469:10:::1;11480:15;11385:111;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11521:4;11507:11;;:18;;;;;;;;;;;;;;;;;;10985:548::o:0;11660:92::-;2428:19;2436:10;2428:7;:19::i;:::-;2420:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11732:12:::1;;11713:16;:31;;;;11660:92::o:0;4722:58::-;;;;:::o;5293:31::-;;;;;;;;;;;;;:::o;6624:105::-;6690:7;6708:9;:18;6718:7;6708:18;;;;;;;;;;;;;;;;6701:25;;6624:105;;;:::o;2584:131::-;2428:19;2436:10;2428:7;:19::i;:::-;2420:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2657:1:::1;2641:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2675:32;2704:1;2675:32;;;;;;:::i;:::-;;;;;;;;2584:131::o:0;6540:78::-;6592:7;6610:5;;;;;;;;;;;6603:12;;6540:78;:::o;6053:79::-;2428:19;2436:10;2428:7;:19::i;:::-;2420:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6120:4:::1;6106:11;;:18;;;;;;;;;;;;;;;;;;6053:79::o:0;6364:84::-;6414:13;6438:7;;;;;;;;;;;;;;;;;6431:14;;6364:84;:::o;5116:74::-;;;;;;;;;;;;;:::o;5265:19::-;;;;;;;;;;;;;:::o;7258:156::-;7338:4;7362:44;7376:10;7388:9;7399:6;7362:13;:44::i;:::-;7355:51;;7258:156;;;;:::o;6735:133::-;6819:7;6837:11;:19;6849:6;6837:19;;;;;;;;;;;;;;;:28;6857:7;6837:28;;;;;;;;;;;;;;;;6830:35;;6735:133;;;;:::o;5234:24::-;;;;;;;;;;;;;:::o;564:190::-;650:7;683:1;678;:6;;686:12;670:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;710:9;726:1;722;:5;;;;:::i;:::-;710:17;;745:1;738:8;;;564:190;;;;;:::o;11760:1011::-;11852:4;11872:6;;;;;;;;;;;11869:63;;;11888:41;11903:6;11911:9;11922:6;11888:14;:41::i;:::-;11881:48;;;;11869:63;11949:12;:20;11962:6;11949:20;;;;;;;;;;;;;;;;;;;;;;;;;11948:21;:49;;;;;11974:12;:23;11987:9;11974:23;;;;;;;;;;;;;;;;;;;;;;;;;11973:24;11948:49;11944:206;;;12022:11;;;;;;;;;;;12014:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11944:206;;;12097:41;12112:6;12120:9;12131:6;12097:14;:41::i;:::-;12090:48;;;;11944:206;12187:4;;;;;;;;;;;12174:17;;:9;:17;;;;:38;;;;;4341:42;12195:17;;:9;:17;;;;12174:38;12170:201;;;12237:16;:27;12254:9;12237:27;;;;;;;;;;;;;;;;;;;;;;;;;:80;;;;12301:16;;12291:6;12268:9;:20;12278:9;12268:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;12237:80;12229:130;;;;;;;;;;;;:::i;:::-;;;;;;;;;12170:201;12394:16;:14;:16::i;:::-;12391:35;;;12413:10;:8;:10::i;:::-;12391:35;12459:53;12481:6;12459:53;;;;;;;;;;;;;;;;;:9;:17;12469:6;12459:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12439:9;:17;12449:6;12439:17;;;;;;;;;;;;;;;:73;;;;12525:22;12550:21;12564:6;12550:13;:21::i;:::-;:56;;12600:6;12550:56;;;12574:23;12582:6;12590;12574:7;:23::i;:::-;12550:56;12525:81;;12640:40;12665:14;12640:9;:20;12650:9;12640:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12617:9;:20;12627:9;12617:20;;;;;;;;;;;;;;;:63;;;;12715:9;12698:43;;12707:6;12698:43;;;12726:14;12698:43;;;;;;:::i;:::-;;;;;;;;12759:4;12752:11;;;11760:1011;;;;;;:::o;9350:330::-;9443:4;9480:53;9502:6;9480:53;;;;;;;;;;;;;;;;;:9;:17;9490:6;9480:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9460:9;:17;9470:6;9460:17;;;;;;;;;;;;;;;:73;;;;9567:32;9592:6;9567:9;:20;9577:9;9567:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9544:9;:20;9554:9;9544:20;;;;;;;;;;;;;;;:55;;;;9632:9;9615:35;;9624:6;9615:35;;;9643:6;9615:35;;;;;;:::i;:::-;;;;;;;;9668:4;9661:11;;9350:330;;;;;:::o;10390:197::-;10439:4;10477;;;;;;;;;;;10463:18;;:10;:18;;;;:38;;;;;10495:6;;;;;;;;;;;10494:7;10463:38;:62;;;;;10514:11;;;;;;;;;;;10463:62;:116;;;;;10566:13;;10538:9;:24;10556:4;10538:24;;;;;;;;;;;;;;;;:41;;10463:116;10456:123;;10390:197;:::o;7800:1538::-;5454:4;5445:6;;:13;;;;;;;;;;;;;;;;;;7849:28:::1;7880:13;;7849:44;;7904:23;7930:59;7987:1;7930:52;7973:8;;7930:38;7955:12;;7930:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;7904:85;;8000:20;8023:41;8048:15;8023:20;:24;;:41;;;;:::i;:::-;8000:64;;8077:21;8115:1;8101:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8077:40;;8146:4;8128;8133:1;8128:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8172:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8162:4;8167:1;8162:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8198:21;8222;8198:45;;8256:6;;;;;;;;;;;:57;;;8328:12;8355:1;8371:4;8398;8418:15;8256:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8455:17;8475:40;8501:13;8475:21;:25;;:40;;;;:::i;:::-;8455:60;;8526:19;8548:33;8561:19;8578:1;8561:12;;:16;;:19;;;;:::i;:::-;8548:8;;:12;;:33;;;;:::i;:::-;8526:55;;8592:26;8621:51;8670:1;8621:44;8653:11;8621:27;8635:12;;8621:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;8592:80;;8683:26;8712:44;8744:11;8712:27;8726:12;;8712:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;8683:73;;8772:21;8830:14;;;;;;;;;;;8822:28;;8858:18;8883:5;8822:71;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8771:122;;;8912:16;8904:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8997:1;8979:15;:19;8976:355;;;9014:6;;;;;;;;;;;:22;;;9044:18;9090:4;9114:15;9148:1;9168::::0;9188:14:::1;;;;;;;;;;;9221:15;9014:237;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9271:48;9283:18;9303:15;9271:48;;;;;;;:::i;:::-;;;;;;;;8976:355;7838:1500;;;;;;;;;;5472:5:::0;5463:6;;:14;;;;;;;;;;;;;;;;;;7800:1538::o;9688:115::-;9750:4;9775:12;:20;9788:6;9775:20;;;;;;;;;;;;;;;;;;;;;;;;;9774:21;9767:28;;9688:115;;;:::o;10029:353::-;10096:7;10116:17;10136:64;10185:14;;10136:44;10161:18;10172:6;10161:10;:18::i;:::-;10136:20;10147:8;;10136:6;:10;;:20;;;;:::i;:::-;:24;;:44;;;;:::i;:::-;:48;;:64;;;;:::i;:::-;10116:84;;10238:39;10267:9;10238;:24;10256:4;10238:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10211:9;:24;10229:4;10211:24;;;;;;;;;;;;;;;:66;;;;10318:4;10293:42;;10302:6;10293:42;;;10325:9;10293:42;;;;;;:::i;:::-;;;;;;;;10353:21;10364:9;10353:6;:10;;:21;;;;:::i;:::-;10346:28;;;10029:353;;;;:::o;237:179::-;295:7;315:9;331:1;327;:5;;;;:::i;:::-;315:17;;356:1;351;:6;;343:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;407:1;400:8;;;237:179;;;;:::o;760:246::-;818:7;847:1;842;:6;838:47;;872:1;865:8;;;;838:47;895:9;911:1;907;:5;;;;:::i;:::-;895:17;;940:1;935;931;:5;;;;:::i;:::-;:10;923:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;997:1;990:8;;;760:246;;;;;:::o;1012:132::-;1070:7;1097:39;1101:1;1104;1097:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1090:46;;1012:132;;;;:::o;422:136::-;480:7;507:43;511:1;514;507:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;500:50;;422:136;;;;:::o;9811:210::-;9871:7;9891:14;9918:4;;;;;;;;;;;9908:14;;:6;:14;;;:50;;9943:15;4414:42;9943:9;:15::i;:::-;9908:50;;;9925:15;4341:42;9925:9;:15::i;:::-;9908:50;9891:67;;9985:1;9976:6;:10;:37;;10010:3;9993:14;;:20;;;;:::i;:::-;9976:37;;;9989:1;9976:37;9969:44;;;9811:210;;;:::o;1150:189::-;1236:7;1268:1;1264;:5;1271:12;1256:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1295:9;1311:1;1307;:5;;;;:::i;:::-;1295:17;;1330:1;1323:8;;;1150:189;;;;;:::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:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:90::-;1818:7;1861:5;1854:13;1847:21;1836:32;;1784:90;;;:::o;1880:109::-;1961:21;1976:5;1961:21;:::i;:::-;1956:3;1949:34;1880:109;;:::o;1995:210::-;2082:4;2120:2;2109:9;2105:18;2097:26;;2133:65;2195:1;2184:9;2180:17;2171:6;2133:65;:::i;:::-;1995:210;;;;:::o;2292:117::-;2401:1;2398;2391:12;2538:126;2575:7;2615:42;2608:5;2604:54;2593:65;;2538:126;;;:::o;2670:96::-;2707:7;2736:24;2754:5;2736:24;:::i;:::-;2725:35;;2670:96;;;:::o;2772:122::-;2845:24;2863:5;2845:24;:::i;:::-;2838:5;2835:35;2825:63;;2884:1;2881;2874:12;2825:63;2772:122;:::o;2900:139::-;2946:5;2984:6;2971:20;2962:29;;3000:33;3027:5;3000:33;:::i;:::-;2900:139;;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:60::-;6048:3;6069:5;6062:12;;6020:60;;;:::o;6086:142::-;6136:9;6169:53;6187:34;6196:24;6214:5;6196:24;:::i;:::-;6187:34;:::i;:::-;6169:53;:::i;:::-;6156:66;;6086:142;;;:::o;6234:126::-;6284:9;6317:37;6348:5;6317:37;:::i;:::-;6304:50;;6234:126;;;:::o;6366:144::-;6434:9;6467:37;6498:5;6467:37;:::i;:::-;6454:50;;6366:144;;;:::o;6516:167::-;6621:55;6670:5;6621:55;:::i;:::-;6616:3;6609:68;6516:167;;:::o;6689:258::-;6800:4;6838:2;6827:9;6823:18;6815:26;;6851:89;6937:1;6926:9;6922:17;6913:6;6851:89;:::i;:::-;6689:258;;;;:::o;6953:156::-;7093:8;7089:1;7081:6;7077:14;7070:32;6953:156;:::o;7115:365::-;7257:3;7278:66;7342:1;7337:3;7278:66;:::i;:::-;7271:73;;7353:93;7442:3;7353:93;:::i;:::-;7471:2;7466:3;7462:12;7455:19;;7115:365;;;:::o;7486:419::-;7652:4;7690:2;7679:9;7675:18;7667:26;;7739:9;7733:4;7729:20;7725:1;7714:9;7710:17;7703:47;7767:131;7893:4;7767:131;:::i;:::-;7759:139;;7486:419;;;:::o;7911:143::-;7968:5;7999:6;7993:13;7984:22;;8015:33;8042:5;8015:33;:::i;:::-;7911:143;;;;:::o;8060:351::-;8130:6;8179:2;8167:9;8158:7;8154:23;8150:32;8147:119;;;8185:79;;:::i;:::-;8147:119;8305:1;8330:64;8386:7;8377:6;8366:9;8362:22;8330:64;:::i;:::-;8320:74;;8276:128;8060:351;;;;:::o;8417:332::-;8538:4;8576:2;8565:9;8561:18;8553:26;;8589:71;8657:1;8646:9;8642:17;8633:6;8589:71;:::i;:::-;8670:72;8738:2;8727:9;8723:18;8714:6;8670:72;:::i;:::-;8417:332;;;;;:::o;8755:85::-;8800:7;8829:5;8818:16;;8755:85;;;:::o;8846:158::-;8904:9;8937:61;8955:42;8964:32;8990:5;8964:32;:::i;:::-;8955:42;:::i;:::-;8937:61;:::i;:::-;8924:74;;8846:158;;;:::o;9010:147::-;9105:45;9144:5;9105:45;:::i;:::-;9100:3;9093:58;9010:147;;:::o;9163:807::-;9412:4;9450:3;9439:9;9435:19;9427:27;;9464:71;9532:1;9521:9;9517:17;9508:6;9464:71;:::i;:::-;9545:72;9613:2;9602:9;9598:18;9589:6;9545:72;:::i;:::-;9627:80;9703:2;9692:9;9688:18;9679:6;9627:80;:::i;:::-;9717;9793:2;9782:9;9778:18;9769:6;9717:80;:::i;:::-;9807:73;9875:3;9864:9;9860:19;9851:6;9807:73;:::i;:::-;9890;9958:3;9947:9;9943:19;9934:6;9890:73;:::i;:::-;9163:807;;;;;;;;;:::o;9976:143::-;10033:5;10064:6;10058:13;10049:22;;10080:33;10107:5;10080:33;:::i;:::-;9976:143;;;;:::o;10125:663::-;10213:6;10221;10229;10278:2;10266:9;10257:7;10253:23;10249:32;10246:119;;;10284:79;;:::i;:::-;10246:119;10404:1;10429:64;10485:7;10476:6;10465:9;10461:22;10429:64;:::i;:::-;10419:74;;10375:128;10542:2;10568:64;10624:7;10615:6;10604:9;10600:22;10568:64;:::i;:::-;10558:74;;10513:129;10681:2;10707:64;10763:7;10754:6;10743:9;10739:22;10707:64;:::i;:::-;10697:74;;10652:129;10125:663;;;;;:::o;10794:180::-;10842:77;10839:1;10832:88;10939:4;10936:1;10929:15;10963:4;10960:1;10953:15;10980:194;11020:4;11040:20;11058:1;11040:20;:::i;:::-;11035:25;;11074:20;11092:1;11074:20;:::i;:::-;11069:25;;11118:1;11115;11111:9;11103:17;;11142:1;11136:4;11133:11;11130:37;;;11147:18;;:::i;:::-;11130:37;10980:194;;;;:::o;11180:169::-;11320:21;11316:1;11308:6;11304:14;11297:45;11180:169;:::o;11355:366::-;11497:3;11518:67;11582:2;11577:3;11518:67;:::i;:::-;11511:74;;11594:93;11683:3;11594:93;:::i;:::-;11712:2;11707:3;11703:12;11696:19;;11355:366;;;:::o;11727:419::-;11893:4;11931:2;11920:9;11916:18;11908:26;;11980:9;11974:4;11970:20;11966:1;11955:9;11951:17;11944:47;12008:131;12134:4;12008:131;:::i;:::-;12000:139;;11727:419;;;:::o;12152:191::-;12192:3;12211:20;12229:1;12211:20;:::i;:::-;12206:25;;12245:20;12263:1;12245:20;:::i;:::-;12240:25;;12288:1;12285;12281:9;12274:16;;12309:3;12306:1;12303:10;12300:36;;;12316:18;;:::i;:::-;12300:36;12152:191;;;;:::o;12349:224::-;12489:34;12485:1;12477:6;12473:14;12466:58;12558:7;12553:2;12545:6;12541:15;12534:32;12349:224;:::o;12579:366::-;12721:3;12742:67;12806:2;12801:3;12742:67;:::i;:::-;12735:74;;12818:93;12907:3;12818:93;:::i;:::-;12936:2;12931:3;12927:12;12920:19;;12579:366;;;:::o;12951:419::-;13117:4;13155:2;13144:9;13140:18;13132:26;;13204:9;13198:4;13194:20;13190:1;13179:9;13175:17;13168:47;13232:131;13358:4;13232:131;:::i;:::-;13224:139;;12951:419;;;:::o;13376:180::-;13424:77;13421:1;13414:88;13521:4;13518:1;13511:15;13545:4;13542:1;13535:15;13562:180;13610:77;13607:1;13600:88;13707:4;13704:1;13697:15;13731:4;13728:1;13721:15;13748:114;13815:6;13849:5;13843:12;13833:22;;13748:114;;;:::o;13868:184::-;13967:11;14001:6;13996:3;13989:19;14041:4;14036:3;14032:14;14017:29;;13868:184;;;;:::o;14058:132::-;14125:4;14148:3;14140:11;;14178:4;14173:3;14169:14;14161:22;;14058:132;;;:::o;14196:108::-;14273:24;14291:5;14273:24;:::i;:::-;14268:3;14261:37;14196:108;;:::o;14310:179::-;14379:10;14400:46;14442:3;14434:6;14400:46;:::i;:::-;14478:4;14473:3;14469:14;14455:28;;14310:179;;;;:::o;14495:113::-;14565:4;14597;14592:3;14588:14;14580:22;;14495:113;;;:::o;14644:732::-;14763:3;14792:54;14840:5;14792:54;:::i;:::-;14862:86;14941:6;14936:3;14862:86;:::i;:::-;14855:93;;14972:56;15022:5;14972:56;:::i;:::-;15051:7;15082:1;15067:284;15092:6;15089:1;15086:13;15067:284;;;15168:6;15162:13;15195:63;15254:3;15239:13;15195:63;:::i;:::-;15188:70;;15281:60;15334:6;15281:60;:::i;:::-;15271:70;;15127:224;15114:1;15111;15107:9;15102:14;;15067:284;;;15071:14;15367:3;15360:10;;14768:608;;;14644:732;;;;:::o;15382:831::-;15645:4;15683:3;15672:9;15668:19;15660:27;;15697:71;15765:1;15754:9;15750:17;15741:6;15697:71;:::i;:::-;15778:80;15854:2;15843:9;15839:18;15830:6;15778:80;:::i;:::-;15905:9;15899:4;15895:20;15890:2;15879:9;15875:18;15868:48;15933:108;16036:4;16027:6;15933:108;:::i;:::-;15925:116;;16051:72;16119:2;16108:9;16104:18;16095:6;16051:72;:::i;:::-;16133:73;16201:3;16190:9;16186:19;16177:6;16133:73;:::i;:::-;15382:831;;;;;;;;:::o;16219:147::-;16320:11;16357:3;16342:18;;16219:147;;;;:::o;16372:114::-;;:::o;16492:398::-;16651:3;16672:83;16753:1;16748:3;16672:83;:::i;:::-;16665:90;;16764:93;16853:3;16764:93;:::i;:::-;16882:1;16877:3;16873:11;16866:18;;16492:398;;;:::o;16896:379::-;17080:3;17102:147;17245:3;17102:147;:::i;:::-;17095:154;;17266:3;17259:10;;16896:379;;;:::o;17281:180::-;17421:32;17417:1;17409:6;17405:14;17398:56;17281:180;:::o;17467:366::-;17609:3;17630:67;17694:2;17689:3;17630:67;:::i;:::-;17623:74;;17706:93;17795:3;17706:93;:::i;:::-;17824:2;17819:3;17815:12;17808:19;;17467:366;;;:::o;17839:419::-;18005:4;18043:2;18032:9;18028:18;18020:26;;18092:9;18086:4;18082:20;18078:1;18067:9;18063:17;18056:47;18120:131;18246:4;18120:131;:::i;:::-;18112:139;;17839:419;;;:::o;18264:332::-;18385:4;18423:2;18412:9;18408:18;18400:26;;18436:71;18504:1;18493:9;18489:17;18480:6;18436:71;:::i;:::-;18517:72;18585:2;18574:9;18570:18;18561:6;18517:72;:::i;:::-;18264:332;;;;;:::o;18602:177::-;18742:29;18738:1;18730:6;18726:14;18719:53;18602:177;:::o;18785:366::-;18927:3;18948:67;19012:2;19007:3;18948:67;:::i;:::-;18941:74;;19024:93;19113:3;19024:93;:::i;:::-;19142:2;19137:3;19133:12;19126:19;;18785:366;;;:::o;19157:419::-;19323:4;19361:2;19350:9;19346:18;19338:26;;19410:9;19404:4;19400:20;19396:1;19385:9;19381:17;19374:47;19438:131;19564:4;19438:131;:::i;:::-;19430:139;;19157:419;;;:::o;19582:410::-;19622:7;19645:20;19663:1;19645:20;:::i;:::-;19640:25;;19679:20;19697:1;19679:20;:::i;:::-;19674:25;;19734:1;19731;19727:9;19756:30;19774:11;19756:30;:::i;:::-;19745:41;;19935:1;19926:7;19922:15;19919:1;19916:22;19896:1;19889:9;19869:83;19846:139;;19965:18;;:::i;:::-;19846:139;19630:362;19582:410;;;;:::o;19998:180::-;20046:77;20043:1;20036:88;20143:4;20140:1;20133:15;20167:4;20164:1;20157:15;20184:185;20224:1;20241:20;20259:1;20241:20;:::i;:::-;20236:25;;20275:20;20293:1;20275:20;:::i;:::-;20270:25;;20314:1;20304:35;;20319:18;;:::i;:::-;20304:35;20361:1;20358;20354:9;20349:14;;20184:185;;;;:::o;20375:220::-;20515:34;20511:1;20503:6;20499:14;20492:58;20584:3;20579:2;20571:6;20567:15;20560:28;20375:220;:::o;20601:366::-;20743:3;20764:67;20828:2;20823:3;20764:67;:::i;:::-;20757:74;;20840:93;20929:3;20840:93;:::i;:::-;20958:2;20953:3;20949:12;20942:19;;20601:366;;;:::o;20973:419::-;21139:4;21177:2;21166:9;21162:18;21154:26;;21226:9;21220:4;21216:20;21212:1;21201:9;21197:17;21190:47;21254:131;21380:4;21254:131;:::i;:::-;21246:139;;20973:419;;;:::o

Swarm Source

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