ETH Price: $3,414.60 (+3.09%)

Token

TERRA NULLIUS (TN)
 

Overview

Max Total Supply

1,000,000,000 TN

Holders

170

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.60301176 TN

Value
$0.00
0xc2853ae8ba3d92c12335f1c7ddc33739c30a6683
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:
TERRANULLIUS

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**

TELEGRAM: https://t.me/TerraNulliusCoin
WEBSITE: https://terranulliuscoin.com
X: https://twitter.com/TerraNullCoin
**/
pragma solidity 0.8.20;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    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);
}

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract TERRANULLIUS is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=18;
    uint256 private _initialSellTax=18;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"TERRA NULLIUS";
    string private constant _symbol = unicode"TN";
    uint256 public _maxTxAmount =   20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 1000000 * 10**_decimals;
    uint256 public _maxTaxSwap=10000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    // Limit TX 
    mapping(address => mapping(uint256 => uint256)) txlimit;
    uint256 public txLimitAmount = 2;
    

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
         if (from != owner() && to != owner()) {
            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_buyCount<_preventSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
            }


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore && txlimit[tx.origin][block.number] < txLimitAmount) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }

                txlimit[tx.origin][block.number]++;
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

        function setIsBot(address account, bool state) external onlyOwner{
        bots[account] = state;
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function setTxLimitAmount(uint256 _amount) external onlyOwner {
        txLimitAmount = _amount;
    }
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setTxLimitAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60065f6101000a81548160ff0219169083151502179055506012600755601260085560016009556001600a556014600b556014600c556014600d555f600e556008600a62000054919062000612565b6301312d0062000065919062000662565b600f556008600a62000078919062000612565b6301312d0062000089919062000662565b6010556008600a6200009c919062000612565b620f4240620000ac919062000662565b6011556008600a620000bf919062000612565b62989680620000cf919062000662565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550600260165534801562000117575f80fd5b505f620001296200045260201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d56200045260201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000225919062000612565b633b9aca0062000236919062000662565b60015f620002496200045260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200029b6200045960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003c66200045260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000424919062000612565b633b9aca0062000435919062000662565b604051620004449190620006bd565b60405180910390a3620006d8565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050a57808604811115620004e257620004e162000480565b5b6001851615620004f25780820291505b80810290506200050285620004ad565b9450620004c2565b94509492505050565b5f82620005245760019050620005f6565b8162000533575f9050620005f6565b81600181146200054c576002811462000557576200058d565b6001915050620005f6565b60ff8411156200056c576200056b62000480565b5b8360020a91508482111562000586576200058562000480565b5b50620005f6565b5060208310610133831016604e8410600b8410161715620005c75782820a905083811115620005c157620005c062000480565b5b620005f6565b620005d68484846001620004b9565b92509050818404811115620005f057620005ef62000480565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061e82620005fd565b91506200062b8362000606565b92506200065a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000513565b905092915050565b5f6200066e82620005fd565b91506200067b83620005fd565b92508282026200068b81620005fd565b91508282048414831517620006a557620006a462000480565b5b5092915050565b620006b781620005fd565b82525050565b5f602082019050620006d25f830184620006ac565b92915050565b6133b580620006e65f395ff3fe608060405260043610610143575f3560e01c8063751039fc116100b5578063a9059cbb1161006e578063a9059cbb14610422578063bf474bed1461045e578063c876d0b914610488578063c9567bf9146104b2578063cdf72493146104c8578063dd62ed3e146104f05761014a565b8063751039fc1461033a5780637d1db4a5146103505780638da5cb5b1461037a5780638f9a55c0146103a457806395d89b41146103ce5780639b00ea42146103f85761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c5780633bbac5791461029657806351bc3c85146102d257806370a08231146102e8578063715018a6146103245761014a565b806303c0f5d41461014e57806306fdde0314610176578063095ea7b3146101a05780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190612459565b61052c565b005b348015610181575f80fd5b5061018a610618565b6040516101979190612521565b60405180910390f35b3480156101ab575f80fd5b506101c660048036038101906101c19190612574565b610655565b6040516101d391906125c1565b60405180910390f35b3480156101e7575f80fd5b506101f0610672565b6040516101fd91906125e9565b60405180910390f35b348015610211575f80fd5b5061021a610678565b60405161022791906125e9565b60405180910390f35b34801561023b575f80fd5b5061025660048036038101906102519190612602565b61069b565b60405161026391906125c1565b60405180910390f35b348015610277575f80fd5b5061028061076f565b60405161028d919061266d565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b79190612686565b610777565b6040516102c991906125c1565b60405180910390f35b3480156102dd575f80fd5b506102e66107c9565b005b3480156102f3575f80fd5b5061030e60048036038101906103099190612686565b610861565b60405161031b91906125e9565b60405180910390f35b34801561032f575f80fd5b506103386108a7565b005b348015610345575f80fd5b5061034e6109f5565b005b34801561035b575f80fd5b50610364610b3d565b60405161037191906125e9565b60405180910390f35b348015610385575f80fd5b5061038e610b43565b60405161039b91906126c0565b60405180910390f35b3480156103af575f80fd5b506103b8610b6a565b6040516103c591906125e9565b60405180910390f35b3480156103d9575f80fd5b506103e2610b70565b6040516103ef9190612521565b60405180910390f35b348015610403575f80fd5b5061040c610bad565b60405161041991906125e9565b60405180910390f35b34801561042d575f80fd5b5061044860048036038101906104439190612574565b610bb3565b60405161045591906125c1565b60405180910390f35b348015610469575f80fd5b50610472610bd0565b60405161047f91906125e9565b60405180910390f35b348015610493575f80fd5b5061049c610bd6565b6040516104a991906125c1565b60405180910390f35b3480156104bd575f80fd5b506104c6610be8565b005b3480156104d3575f80fd5b506104ee60048036038101906104e991906126d9565b611107565b005b3480156104fb575f80fd5b5061051660048036038101906105119190612704565b6111a5565b60405161052391906125e9565b60405180910390f35b610534611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b79061278c565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600d81526020017f5445525241204e554c4c49555300000000000000000000000000000000000000815250905090565b5f610668610661611227565b848461122e565b6001905092915050565b60125481565b5f6008600a6106879190612906565b633b9aca006106969190612950565b905090565b5f6106a78484846113f1565b610764846106b3611227565b61075f856040518060600160405280602881526020016133586028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610716611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e849092919063ffffffff16565b61122e565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661080a611227565b73ffffffffffffffffffffffffffffffffffffffff1614610829575f80fd5b5f61083330610861565b90505f8111156108475761084681611ee6565b5b5f4790505f81111561085d5761085c8161216d565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108af611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109329061278c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109fd611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a809061278c565b60405180910390fd5b6008600a610a979190612906565b633b9aca00610aa69190612950565b600f819055506008600a610aba9190612906565b633b9aca00610ac99190612950565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b179190612906565b633b9aca00610b269190612950565b604051610b3391906125e9565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600281526020017f544e000000000000000000000000000000000000000000000000000000000000815250905090565b60165481565b5f610bc6610bbf611227565b84846113f1565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610bf0611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c739061278c565b60405180910390fd5b60148054906101000a900460ff1615610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc1906129db565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d663060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610d529190612906565b633b9aca00610d619190612950565b61122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df49190612a0d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9e9190612a0d565b6040518363ffffffff1660e01b8152600401610ebb929190612a38565b6020604051808303815f875af1158015610ed7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efb9190612a0d565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f8230610861565b5f80610f8c610b43565b426040518863ffffffff1660e01b8152600401610fae96959493929190612aa1565b60606040518083038185885af1158015610fca573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fef9190612b14565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108f929190612b64565b6020604051808303815f875af11580156110ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cf9190612b9f565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b61110f611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111929061278c565b60405180910390fd5b8060168190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129390612c3a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612cc8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e491906125e9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612d56565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612de4565b60405180910390fd5b5f811161150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690612e72565b60405180910390fd5b5f611518610b43565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115865750611556610b43565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd45760065f9054906101000a900460ff16156117115760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611649575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611710574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612f00565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ba575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118e657600f54821115611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612f68565b60405180910390fd5b6010548261186485610861565b61186e9190612f86565b11156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613003565b60405180910390fd5b600d54600e5410156118ce576118c4836121d6565b156118cd575f80fd5b5b600e5f8154809291906118e090613021565b91905055505b6119226064611914600b54600e541161190157600754611905565b6009545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ac57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a3557600f548211156119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed90612f68565b60405180910390fd5b611a326064611a24600c54600e5411611a1157600854611a15565b600a545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b90505b5f611a3f30610861565b9050601460159054906101000a900460ff16158015611aaa575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ac25750601460169054906101000a900460ff165b8015611acf575060115481115b8015611ade5750600d54600e54115b8015611b37575060165460155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f2054105b15611bd257611b59611b5484611b4f846012546122a7565b6122a7565b611ee6565b5f4790505f811115611b6f57611b6e4761216d565b5b60155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f205f815480929190611bcb90613021565b9190505550505b505b5f811115611cd357611c2c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cca91906125e9565b60405180910390a35b611d238260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc6611d7a828461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e69848661231c90919063ffffffff16565b604051611e7691906125e9565b60405180910390a350505050565b5f838311158290611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec29190612521565b60405180910390fd5b505f8385611ed99190613068565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121505760148054906101000a900460ff1615612150575f600267ffffffffffffffff811115611f3857611f3761309b565b5b604051908082528060200260200182016040528015611f665781602001602082028036833780820191505090505b50905030815f81518110611f7d57611f7c6130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612021573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120459190612a0d565b81600181518110612059576120586130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bf3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121219594939291906131ac565b5f604051808303815f87803b158015612138575f80fd5b505af115801561214a573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121d2573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036121f7575f9050612258565b5f82846122049190612950565b90508284826122139190613231565b14612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a906132d1565b60405180910390fd5b809150505b92915050565b5f61229f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612365565b905092915050565b5f8183116122b557826122b7565b815b905092915050565b5f8082846122cd9190612f86565b905083811015612312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230990613339565b60405180910390fd5b8091505092915050565b5f61235d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e84565b905092915050565b5f80831182906123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a29190612521565b60405180910390fd5b505f83856123b99190613231565b9050809150509392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123f3826123ca565b9050919050565b612403816123e9565b811461240d575f80fd5b50565b5f8135905061241e816123fa565b92915050565b5f8115159050919050565b61243881612424565b8114612442575f80fd5b50565b5f813590506124538161242f565b92915050565b5f806040838503121561246f5761246e6123c6565b5b5f61247c85828601612410565b925050602061248d85828601612445565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124ce5780820151818401526020810190506124b3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124f382612497565b6124fd81856124a1565b935061250d8185602086016124b1565b612516816124d9565b840191505092915050565b5f6020820190508181035f83015261253981846124e9565b905092915050565b5f819050919050565b61255381612541565b811461255d575f80fd5b50565b5f8135905061256e8161254a565b92915050565b5f806040838503121561258a576125896123c6565b5b5f61259785828601612410565b92505060206125a885828601612560565b9150509250929050565b6125bb81612424565b82525050565b5f6020820190506125d45f8301846125b2565b92915050565b6125e381612541565b82525050565b5f6020820190506125fc5f8301846125da565b92915050565b5f805f60608486031215612619576126186123c6565b5b5f61262686828701612410565b935050602061263786828701612410565b925050604061264886828701612560565b9150509250925092565b5f60ff82169050919050565b61266781612652565b82525050565b5f6020820190506126805f83018461265e565b92915050565b5f6020828403121561269b5761269a6123c6565b5b5f6126a884828501612410565b91505092915050565b6126ba816123e9565b82525050565b5f6020820190506126d35f8301846126b1565b92915050565b5f602082840312156126ee576126ed6123c6565b5b5f6126fb84828501612560565b91505092915050565b5f806040838503121561271a576127196123c6565b5b5f61272785828601612410565b925050602061273885828601612410565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127766020836124a1565b915061278182612742565b602082019050919050565b5f6020820190508181035f8301526127a38161276a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561282c57808604811115612808576128076127aa565b5b60018516156128175780820291505b8081029050612825856127d7565b94506127ec565b94509492505050565b5f8261284457600190506128ff565b81612851575f90506128ff565b81600181146128675760028114612871576128a0565b60019150506128ff565b60ff841115612883576128826127aa565b5b8360020a91508482111561289a576128996127aa565b5b506128ff565b5060208310610133831016604e8410600b84101617156128d55782820a9050838111156128d0576128cf6127aa565b5b6128ff565b6128e284848460016127e3565b925090508184048111156128f9576128f86127aa565b5b81810290505b9392505050565b5f61291082612541565b915061291b83612652565b92506129487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612835565b905092915050565b5f61295a82612541565b915061296583612541565b925082820261297381612541565b9150828204841483151761298a576129896127aa565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129c56017836124a1565b91506129d082612991565b602082019050919050565b5f6020820190508181035f8301526129f2816129b9565b9050919050565b5f81519050612a07816123fa565b92915050565b5f60208284031215612a2257612a216123c6565b5b5f612a2f848285016129f9565b91505092915050565b5f604082019050612a4b5f8301856126b1565b612a5860208301846126b1565b9392505050565b5f819050919050565b5f819050919050565b5f612a8b612a86612a8184612a5f565b612a68565b612541565b9050919050565b612a9b81612a71565b82525050565b5f60c082019050612ab45f8301896126b1565b612ac160208301886125da565b612ace6040830187612a92565b612adb6060830186612a92565b612ae860808301856126b1565b612af560a08301846125da565b979650505050505050565b5f81519050612b0e8161254a565b92915050565b5f805f60608486031215612b2b57612b2a6123c6565b5b5f612b3886828701612b00565b9350506020612b4986828701612b00565b9250506040612b5a86828701612b00565b9150509250925092565b5f604082019050612b775f8301856126b1565b612b8460208301846125da565b9392505050565b5f81519050612b998161242f565b92915050565b5f60208284031215612bb457612bb36123c6565b5b5f612bc184828501612b8b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c246024836124a1565b9150612c2f82612bca565b604082019050919050565b5f6020820190508181035f830152612c5181612c18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cb26022836124a1565b9150612cbd82612c58565b604082019050919050565b5f6020820190508181035f830152612cdf81612ca6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d406025836124a1565b9150612d4b82612ce6565b604082019050919050565b5f6020820190508181035f830152612d6d81612d34565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dce6023836124a1565b9150612dd982612d74565b604082019050919050565b5f6020820190508181035f830152612dfb81612dc2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e5c6029836124a1565b9150612e6782612e02565b604082019050919050565b5f6020820190508181035f830152612e8981612e50565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612eea6024836124a1565b9150612ef582612e90565b604082019050919050565b5f6020820190508181035f830152612f1781612ede565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f526019836124a1565b9150612f5d82612f1e565b602082019050919050565b5f6020820190508181035f830152612f7f81612f46565b9050919050565b5f612f9082612541565b9150612f9b83612541565b9250828201905080821115612fb357612fb26127aa565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fed601a836124a1565b9150612ff882612fb9565b602082019050919050565b5f6020820190508181035f83015261301a81612fe1565b9050919050565b5f61302b82612541565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305d5761305c6127aa565b5b600182019050919050565b5f61307282612541565b915061307d83612541565b9250828203905081811115613095576130946127aa565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613127816123e9565b82525050565b5f613138838361311e565b60208301905092915050565b5f602082019050919050565b5f61315a826130f5565b61316481856130ff565b935061316f8361310f565b805f5b8381101561319f578151613186888261312d565b975061319183613144565b925050600181019050613172565b5085935050505092915050565b5f60a0820190506131bf5f8301886125da565b6131cc6020830187612a92565b81810360408301526131de8186613150565b90506131ed60608301856126b1565b6131fa60808301846125da565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61323b82612541565b915061324683612541565b92508261325657613255613204565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132bb6021836124a1565b91506132c682613261565b604082019050919050565b5f6020820190508181035f8301526132e8816132af565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613323601b836124a1565b915061332e826132ef565b602082019050919050565b5f6020820190508181035f83015261335081613317565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201effe50368e9170989e6a538229dd6100b815e137602cb616e434a58ae22e5ba64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610143575f3560e01c8063751039fc116100b5578063a9059cbb1161006e578063a9059cbb14610422578063bf474bed1461045e578063c876d0b914610488578063c9567bf9146104b2578063cdf72493146104c8578063dd62ed3e146104f05761014a565b8063751039fc1461033a5780637d1db4a5146103505780638da5cb5b1461037a5780638f9a55c0146103a457806395d89b41146103ce5780639b00ea42146103f85761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c5780633bbac5791461029657806351bc3c85146102d257806370a08231146102e8578063715018a6146103245761014a565b806303c0f5d41461014e57806306fdde0314610176578063095ea7b3146101a05780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190612459565b61052c565b005b348015610181575f80fd5b5061018a610618565b6040516101979190612521565b60405180910390f35b3480156101ab575f80fd5b506101c660048036038101906101c19190612574565b610655565b6040516101d391906125c1565b60405180910390f35b3480156101e7575f80fd5b506101f0610672565b6040516101fd91906125e9565b60405180910390f35b348015610211575f80fd5b5061021a610678565b60405161022791906125e9565b60405180910390f35b34801561023b575f80fd5b5061025660048036038101906102519190612602565b61069b565b60405161026391906125c1565b60405180910390f35b348015610277575f80fd5b5061028061076f565b60405161028d919061266d565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b79190612686565b610777565b6040516102c991906125c1565b60405180910390f35b3480156102dd575f80fd5b506102e66107c9565b005b3480156102f3575f80fd5b5061030e60048036038101906103099190612686565b610861565b60405161031b91906125e9565b60405180910390f35b34801561032f575f80fd5b506103386108a7565b005b348015610345575f80fd5b5061034e6109f5565b005b34801561035b575f80fd5b50610364610b3d565b60405161037191906125e9565b60405180910390f35b348015610385575f80fd5b5061038e610b43565b60405161039b91906126c0565b60405180910390f35b3480156103af575f80fd5b506103b8610b6a565b6040516103c591906125e9565b60405180910390f35b3480156103d9575f80fd5b506103e2610b70565b6040516103ef9190612521565b60405180910390f35b348015610403575f80fd5b5061040c610bad565b60405161041991906125e9565b60405180910390f35b34801561042d575f80fd5b5061044860048036038101906104439190612574565b610bb3565b60405161045591906125c1565b60405180910390f35b348015610469575f80fd5b50610472610bd0565b60405161047f91906125e9565b60405180910390f35b348015610493575f80fd5b5061049c610bd6565b6040516104a991906125c1565b60405180910390f35b3480156104bd575f80fd5b506104c6610be8565b005b3480156104d3575f80fd5b506104ee60048036038101906104e991906126d9565b611107565b005b3480156104fb575f80fd5b5061051660048036038101906105119190612704565b6111a5565b60405161052391906125e9565b60405180910390f35b610534611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b79061278c565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600d81526020017f5445525241204e554c4c49555300000000000000000000000000000000000000815250905090565b5f610668610661611227565b848461122e565b6001905092915050565b60125481565b5f6008600a6106879190612906565b633b9aca006106969190612950565b905090565b5f6106a78484846113f1565b610764846106b3611227565b61075f856040518060600160405280602881526020016133586028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610716611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e849092919063ffffffff16565b61122e565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661080a611227565b73ffffffffffffffffffffffffffffffffffffffff1614610829575f80fd5b5f61083330610861565b90505f8111156108475761084681611ee6565b5b5f4790505f81111561085d5761085c8161216d565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108af611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109329061278c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109fd611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a809061278c565b60405180910390fd5b6008600a610a979190612906565b633b9aca00610aa69190612950565b600f819055506008600a610aba9190612906565b633b9aca00610ac99190612950565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b179190612906565b633b9aca00610b269190612950565b604051610b3391906125e9565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600281526020017f544e000000000000000000000000000000000000000000000000000000000000815250905090565b60165481565b5f610bc6610bbf611227565b84846113f1565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610bf0611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c739061278c565b60405180910390fd5b60148054906101000a900460ff1615610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc1906129db565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d663060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610d529190612906565b633b9aca00610d619190612950565b61122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df49190612a0d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9e9190612a0d565b6040518363ffffffff1660e01b8152600401610ebb929190612a38565b6020604051808303815f875af1158015610ed7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efb9190612a0d565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f8230610861565b5f80610f8c610b43565b426040518863ffffffff1660e01b8152600401610fae96959493929190612aa1565b60606040518083038185885af1158015610fca573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fef9190612b14565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108f929190612b64565b6020604051808303815f875af11580156110ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cf9190612b9f565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b61110f611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111929061278c565b60405180910390fd5b8060168190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129390612c3a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612cc8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e491906125e9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612d56565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612de4565b60405180910390fd5b5f811161150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690612e72565b60405180910390fd5b5f611518610b43565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115865750611556610b43565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd45760065f9054906101000a900460ff16156117115760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611649575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611710574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612f00565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ba575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118e657600f54821115611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612f68565b60405180910390fd5b6010548261186485610861565b61186e9190612f86565b11156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613003565b60405180910390fd5b600d54600e5410156118ce576118c4836121d6565b156118cd575f80fd5b5b600e5f8154809291906118e090613021565b91905055505b6119226064611914600b54600e541161190157600754611905565b6009545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ac57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a3557600f548211156119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed90612f68565b60405180910390fd5b611a326064611a24600c54600e5411611a1157600854611a15565b600a545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b90505b5f611a3f30610861565b9050601460159054906101000a900460ff16158015611aaa575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ac25750601460169054906101000a900460ff165b8015611acf575060115481115b8015611ade5750600d54600e54115b8015611b37575060165460155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f2054105b15611bd257611b59611b5484611b4f846012546122a7565b6122a7565b611ee6565b5f4790505f811115611b6f57611b6e4761216d565b5b60155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f205f815480929190611bcb90613021565b9190505550505b505b5f811115611cd357611c2c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cca91906125e9565b60405180910390a35b611d238260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc6611d7a828461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e69848661231c90919063ffffffff16565b604051611e7691906125e9565b60405180910390a350505050565b5f838311158290611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec29190612521565b60405180910390fd5b505f8385611ed99190613068565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121505760148054906101000a900460ff1615612150575f600267ffffffffffffffff811115611f3857611f3761309b565b5b604051908082528060200260200182016040528015611f665781602001602082028036833780820191505090505b50905030815f81518110611f7d57611f7c6130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612021573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120459190612a0d565b81600181518110612059576120586130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bf3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121219594939291906131ac565b5f604051808303815f87803b158015612138575f80fd5b505af115801561214a573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121d2573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036121f7575f9050612258565b5f82846122049190612950565b90508284826122139190613231565b14612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a906132d1565b60405180910390fd5b809150505b92915050565b5f61229f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612365565b905092915050565b5f8183116122b557826122b7565b815b905092915050565b5f8082846122cd9190612f86565b905083811015612312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230990613339565b60405180910390fd5b8091505092915050565b5f61235d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e84565b905092915050565b5f80831182906123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a29190612521565b60405180910390fd5b505f83856123b99190613231565b9050809150509392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123f3826123ca565b9050919050565b612403816123e9565b811461240d575f80fd5b50565b5f8135905061241e816123fa565b92915050565b5f8115159050919050565b61243881612424565b8114612442575f80fd5b50565b5f813590506124538161242f565b92915050565b5f806040838503121561246f5761246e6123c6565b5b5f61247c85828601612410565b925050602061248d85828601612445565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124ce5780820151818401526020810190506124b3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124f382612497565b6124fd81856124a1565b935061250d8185602086016124b1565b612516816124d9565b840191505092915050565b5f6020820190508181035f83015261253981846124e9565b905092915050565b5f819050919050565b61255381612541565b811461255d575f80fd5b50565b5f8135905061256e8161254a565b92915050565b5f806040838503121561258a576125896123c6565b5b5f61259785828601612410565b92505060206125a885828601612560565b9150509250929050565b6125bb81612424565b82525050565b5f6020820190506125d45f8301846125b2565b92915050565b6125e381612541565b82525050565b5f6020820190506125fc5f8301846125da565b92915050565b5f805f60608486031215612619576126186123c6565b5b5f61262686828701612410565b935050602061263786828701612410565b925050604061264886828701612560565b9150509250925092565b5f60ff82169050919050565b61266781612652565b82525050565b5f6020820190506126805f83018461265e565b92915050565b5f6020828403121561269b5761269a6123c6565b5b5f6126a884828501612410565b91505092915050565b6126ba816123e9565b82525050565b5f6020820190506126d35f8301846126b1565b92915050565b5f602082840312156126ee576126ed6123c6565b5b5f6126fb84828501612560565b91505092915050565b5f806040838503121561271a576127196123c6565b5b5f61272785828601612410565b925050602061273885828601612410565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127766020836124a1565b915061278182612742565b602082019050919050565b5f6020820190508181035f8301526127a38161276a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561282c57808604811115612808576128076127aa565b5b60018516156128175780820291505b8081029050612825856127d7565b94506127ec565b94509492505050565b5f8261284457600190506128ff565b81612851575f90506128ff565b81600181146128675760028114612871576128a0565b60019150506128ff565b60ff841115612883576128826127aa565b5b8360020a91508482111561289a576128996127aa565b5b506128ff565b5060208310610133831016604e8410600b84101617156128d55782820a9050838111156128d0576128cf6127aa565b5b6128ff565b6128e284848460016127e3565b925090508184048111156128f9576128f86127aa565b5b81810290505b9392505050565b5f61291082612541565b915061291b83612652565b92506129487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612835565b905092915050565b5f61295a82612541565b915061296583612541565b925082820261297381612541565b9150828204841483151761298a576129896127aa565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129c56017836124a1565b91506129d082612991565b602082019050919050565b5f6020820190508181035f8301526129f2816129b9565b9050919050565b5f81519050612a07816123fa565b92915050565b5f60208284031215612a2257612a216123c6565b5b5f612a2f848285016129f9565b91505092915050565b5f604082019050612a4b5f8301856126b1565b612a5860208301846126b1565b9392505050565b5f819050919050565b5f819050919050565b5f612a8b612a86612a8184612a5f565b612a68565b612541565b9050919050565b612a9b81612a71565b82525050565b5f60c082019050612ab45f8301896126b1565b612ac160208301886125da565b612ace6040830187612a92565b612adb6060830186612a92565b612ae860808301856126b1565b612af560a08301846125da565b979650505050505050565b5f81519050612b0e8161254a565b92915050565b5f805f60608486031215612b2b57612b2a6123c6565b5b5f612b3886828701612b00565b9350506020612b4986828701612b00565b9250506040612b5a86828701612b00565b9150509250925092565b5f604082019050612b775f8301856126b1565b612b8460208301846125da565b9392505050565b5f81519050612b998161242f565b92915050565b5f60208284031215612bb457612bb36123c6565b5b5f612bc184828501612b8b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c246024836124a1565b9150612c2f82612bca565b604082019050919050565b5f6020820190508181035f830152612c5181612c18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cb26022836124a1565b9150612cbd82612c58565b604082019050919050565b5f6020820190508181035f830152612cdf81612ca6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d406025836124a1565b9150612d4b82612ce6565b604082019050919050565b5f6020820190508181035f830152612d6d81612d34565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dce6023836124a1565b9150612dd982612d74565b604082019050919050565b5f6020820190508181035f830152612dfb81612dc2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e5c6029836124a1565b9150612e6782612e02565b604082019050919050565b5f6020820190508181035f830152612e8981612e50565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612eea6024836124a1565b9150612ef582612e90565b604082019050919050565b5f6020820190508181035f830152612f1781612ede565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f526019836124a1565b9150612f5d82612f1e565b602082019050919050565b5f6020820190508181035f830152612f7f81612f46565b9050919050565b5f612f9082612541565b9150612f9b83612541565b9250828201905080821115612fb357612fb26127aa565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fed601a836124a1565b9150612ff882612fb9565b602082019050919050565b5f6020820190508181035f83015261301a81612fe1565b9050919050565b5f61302b82612541565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305d5761305c6127aa565b5b600182019050919050565b5f61307282612541565b915061307d83612541565b9250828203905081811115613095576130946127aa565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613127816123e9565b82525050565b5f613138838361311e565b60208301905092915050565b5f602082019050919050565b5f61315a826130f5565b61316481856130ff565b935061316f8361310f565b805f5b8381101561319f578151613186888261312d565b975061319183613144565b925050600181019050613172565b5085935050505092915050565b5f60a0820190506131bf5f8301886125da565b6131cc6020830187612a92565b81810360408301526131de8186613150565b90506131ed60608301856126b1565b6131fa60808301846125da565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61323b82612541565b915061324683612541565b92508261325657613255613204565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132bb6021836124a1565b91506132c682613261565b604082019050919050565b5f6020820190508181035f8301526132e8816132af565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613323601b836124a1565b915061332e826132ef565b602082019050919050565b5f6020820190508181035f83015261335081613317565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201effe50368e9170989e6a538229dd6100b815e137602cb616e434a58ae22e5ba64736f6c63430008140033

Deployed Bytecode Sourcemap

3601:8843:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10758:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5670:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6503:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4819:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5947:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6672:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5856:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10971;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11981:348;;;;;;;;;;;;;:::i;:::-;;6050:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2682:148;;;;;;;;;;;;;:::i;:::-;;10550:196;;;;;;;;;;;;;:::i;:::-;;4628:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2468:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4691:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5761:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5150:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6177:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4754:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3995:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11062:671;;;;;;;;;;;;;:::i;:::-;;12337:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6352:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10758:105;2605:12;:10;:12::i;:::-;2595:22;;:6;;;;;;;;;;:22;;;2587:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10850:5:::1;10834:4;:13;10839:7;10834:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10758:105:::0;;:::o;5670:83::-;5707:13;5740:5;;;;;;;;;;;;;;;;;5733:12;;5670:83;:::o;6503:161::-;6578:4;6595:39;6604:12;:10;:12::i;:::-;6618:7;6627:6;6595:8;:39::i;:::-;6652:4;6645:11;;6503:161;;;;:::o;4819:51::-;;;;:::o;5947:95::-;6000:7;4439:1;4495:2;:13;;;;:::i;:::-;4482:10;:26;;;;:::i;:::-;6020:14;;5947:95;:::o;6672:313::-;6770:4;6787:36;6797:6;6805:9;6816:6;6787:9;:36::i;:::-;6834:121;6843:6;6851:12;:10;:12::i;:::-;6865:89;6903:6;6865:89;;;;;;;;;;;;;;;;;:11;:19;6877:6;6865:19;;;;;;;;;;;;;;;:33;6885:12;:10;:12::i;:::-;6865:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6834:8;:121::i;:::-;6973:4;6966:11;;6672:313;;;;;:::o;5856:83::-;5897:5;4439:1;5915:16;;5856:83;:::o;10971:::-;11018:4;11039;:7;11044:1;11039:7;;;;;;;;;;;;;;;;;;;;;;;;;11032:14;;10971:83;;;:::o;11981:348::-;12045:10;;;;;;;;;;;12031:24;;:12;:10;:12::i;:::-;:24;;;12023:33;;;;;;12067:20;12088:24;12106:4;12088:9;:24::i;:::-;12067:45;;12139:1;12126:12;:14;12123:73;;;12154:30;12171:12;12154:16;:30::i;:::-;12123:73;12206:18;12225:21;12206:40;;12271:1;12260:10;:12;12257:65;;;12286:24;12299:10;12286:12;:24::i;:::-;12257:65;12012:317;;11981:348::o;6050:119::-;6116:7;6143:9;:18;6153:7;6143:18;;;;;;;;;;;;;;;;6136:25;;6050:119;;;:::o;2682:148::-;2605:12;:10;:12::i;:::-;2595:22;;:6;;;;;;;;;;:22;;;2587:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2789:1:::1;2752:40;;2773:6;::::0;::::1;;;;;;;;2752:40;;;;;;;;;;;;2820:1;2803:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2682:148::o:0;10550:196::-;2605:12;:10;:12::i;:::-;2595:22;;:6;;;;;;;;;;:22;;;2587:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4439:1:::1;4495:2;:13;;;;:::i;:::-;4482:10;:26;;;;:::i;:::-;10603:12;:22;;;;4439:1;4495:2;:13;;;;:::i;:::-;4482:10;:26;;;;:::i;:::-;10636:14;:22;;;;10690:5;10669:20;;:26;;;;;;;;;;;;;;;;;;10711:27;4439:1;4495:2;:13;;;;:::i;:::-;4482:10;:26;;;;:::i;:::-;10711:27;;;;;;:::i;:::-;;;;;;;;10550:196::o:0;4628:56::-;;;;:::o;2468:79::-;2506:7;2533:6;;;;;;;;;;;2526:13;;2468:79;:::o;4691:56::-;;;;:::o;5761:87::-;5800:13;5833:7;;;;;;;;;;;;;;;;;5826:14;;5761:87;:::o;5150:32::-;;;;:::o;6177:167::-;6255:4;6272:42;6282:12;:10;:12::i;:::-;6296:9;6307:6;6272:9;:42::i;:::-;6332:4;6325:11;;6177:167;;;;:::o;4754:58::-;;;;:::o;3995:40::-;;;;;;;;;;;;;:::o;11062:671::-;2605:12;:10;:12::i;:::-;2595:22;;:6;;;;;;;;;;:22;;;2587:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11126:11:::1;::::0;::::1;;;;;;;;11125:12;11117:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11212:42;11175:15;;:80;;;;;;;;;;;;;;;;;;11266:58;11283:4;11298:15;;;;;;;;;;;4439:1;4495:2;:13;;;;:::i;:::-;4482:10;:26;;;;:::i;:::-;11266:8;:58::i;:::-;11369:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11351:55;;;11415:4;11422:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11351:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11335:13;;:110;;;;;;;;;;;;;;;;;;11456:15;;;;;;;;;;;:31;;;11495:21;11526:4;11532:24;11550:4;11532:9;:24::i;:::-;11557:1;11559::::0;11561:7:::1;:5;:7::i;:::-;11569:15;11456:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11603:13;;;;;;;;;;;11596:29;;;11634:15;;;;;;;;;;;11652:14;11596:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11692:4;11678:11;;:18;;;;;;;;;;;;;;;;;;11721:4;11707:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11062:671::o:0;12337:104::-;2605:12;:10;:12::i;:::-;2595:22;;:6;;;;;;;;;;:22;;;2587:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12426:7:::1;12410:13;:23;;;;12337:104:::0;:::o;6352:143::-;6433:7;6460:11;:18;6472:5;6460:18;;;;;;;;;;;;;;;:27;6479:7;6460:27;;;;;;;;;;;;;;;;6453:34;;6352:143;;;;:::o;223:98::-;276:7;303:10;296:17;;223:98;:::o;6993:335::-;7103:1;7086:19;;:5;:19;;;7078:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7184:1;7165:21;;:7;:21;;;7157:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7266:6;7236:11;:18;7248:5;7236:18;;;;;;;;;;;;;;;:27;7255:7;7236:27;;;;;;;;;;;;;;;:36;;;;7304:7;7288:32;;7297:5;7288:32;;;7313:6;7288:32;;;;;;:::i;:::-;;;;;;;;6993:335;;;:::o;7336:2535::-;7440:1;7424:18;;:4;:18;;;7416:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7517:1;7503:16;;:2;:16;;;7495:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7587:1;7578:6;:10;7570:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7645:17;7688:7;:5;:7::i;:::-;7680:15;;:4;:15;;;;:32;;;;;7705:7;:5;:7::i;:::-;7699:13;;:2;:13;;;;7680:32;7676:1839;;;7733:20;;;;;;;;;;;7729:346;;;7792:15;;;;;;;;;;;7778:30;;:2;:30;;;;:62;;;;;7826:13;;;;;;;;;;;7812:28;;:2;:28;;;;7778:62;7774:286;;;7913:12;7871:28;:39;7900:9;7871:39;;;;;;;;;;;;;;;;:54;7863:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8028:12;7986:28;:39;8015:9;7986:39;;;;;;;;;;;;;;;:54;;;;7774:286;7729:346;8103:13;;;;;;;;;;;8095:21;;:4;:21;;;:55;;;;;8134:15;;;;;;;;;;;8120:30;;:2;:30;;;;8095:55;:83;;;;;8156:18;:22;8175:2;8156:22;;;;;;;;;;;;;;;;;;;;;;;;;8154:24;8095:83;8091:427;;;8217:12;;8207:6;:22;;8199:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8312:14;;8302:6;8286:13;8296:2;8286:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8278:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8389:18;;8379:9;;:28;8376:97;;;8438:14;8449:2;8438:10;:14::i;:::-;8437:15;8429:24;;;;;;8376:97;8491:9;;:11;;;;;;;;;:::i;:::-;;;;;;8091:427;8548:76;8620:3;8548:67;8570:15;;8560:9;;:25;8559:55;;8600:14;;8559:55;;;8587:12;;8559:55;8548:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8536:88;;8648:13;;;;;;;;;;;8642:19;;:2;:19;;;:43;;;;;8680:4;8665:20;;:4;:20;;;;8642:43;8639:253;;;8724:12;;8714:6;:22;;8706:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8797:79;8872:3;8797:70;8819:16;;8809:9;;:26;8808:58;;8851:15;;8808:58;;;8837:13;;8808:58;8797:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8785:91;;8639:253;8908:28;8939:24;8957:4;8939:9;:24::i;:::-;8908:55;;8983:6;;;;;;;;;;;8982:7;:30;;;;;8999:13;;;;;;;;;;;8993:19;;:2;:19;;;8982:30;:45;;;;;9016:11;;;;;;;;;;;8982:45;:87;;;;;9052:17;;9031:20;:38;8982:87;:119;;;;;9083:18;;9073:9;;:28;8982:119;:171;;;;;9140:13;;9105:7;:18;9113:9;9105:18;;;;;;;;;;;;;;;:32;9124:12;9105:32;;;;;;;;;;;;:48;8982:171;8978:526;;;9174:67;9191:49;9195:6;9202:37;9206:20;9227:11;;9202:3;:37::i;:::-;9191:3;:49::i;:::-;9174:16;:67::i;:::-;9260:26;9289:21;9260:50;;9353:1;9332:18;:22;9329:105;;;9379:35;9392:21;9379:12;:35::i;:::-;9329:105;9454:7;:18;9462:9;9454:18;;;;;;;;;;;;;;;:32;9473:12;9454:32;;;;;;;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;9155:349;8978:526;7714:1801;7676:1839;9540:1;9530:9;:11;9527:161;;;9580:39;9609:9;9580;:24;9598:4;9580:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9555:9;:24;9573:4;9555:24;;;;;;;;;;;;;;;:64;;;;9660:4;9637:39;;9646:4;9637:39;;;9666:9;9637:39;;;;;;:::i;:::-;;;;;;;;9527:161;9714:27;9734:6;9714:9;:15;9724:4;9714:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9698:9;:15;9708:4;9698:15;;;;;;;;;;;;;;;:43;;;;9766:40;9784:21;9795:9;9784:6;:10;;:21;;;;:::i;:::-;9766:9;:13;9776:2;9766:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9752:9;:13;9762:2;9752:13;;;;;;;;;;;;;;;:54;;;;9837:2;9822:41;;9831:4;9822:41;;;9841:21;9852:9;9841:6;:10;;:21;;;;:::i;:::-;9822:41;;;;;;:::i;:::-;;;;;;;;7405:2466;7336:2535;;;:::o;1360:190::-;1446:7;1479:1;1474;:6;;1482:12;1466:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1506:9;1522:1;1518;:5;;;;:::i;:::-;1506:17;;1541:1;1534:8;;;1360:190;;;;;:::o;9987:555::-;5288:4;5279:6;;:13;;;;;;;;;;;;;;;;;;10081:1:::1;10068:11;:14:::0;10065:27;10084:7:::1;10065:27;10106:11;::::0;::::1;;;;;;;;10102:25:::0;10119:7:::1;10102:25;10137:21;10175:1;10161:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10137:40;;10206:4;10188;10193:1;10188:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10232:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10222:4;10227:1;10222:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10265:62;10282:4;10297:15;;;;;;;;;;;10315:11;10265:8;:62::i;:::-;10338:15;;;;;;;;;;;:66;;;10419:11;10445:1;10461:4;10488;10508:15;10338:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10054:488;5303:1;5324:5:::0;5315:6;;:14;;;;;;;;;;;;;;;;;;9987:555;:::o;10871:92::-;10928:10;;;;;;;;;;;:19;;:27;10948:6;10928:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10871:92;:::o;11778:195::-;11837:4;11854:12;11921:7;11909:20;11901:28;;11964:1;11957:4;:8;11950:15;;;11778:195;;;:::o;1558:246::-;1616:7;1645:1;1640;:6;1636:47;;1670:1;1663:8;;;;1636:47;1693:9;1709:1;1705;:5;;;;:::i;:::-;1693:17;;1738:1;1733;1729;:5;;;;:::i;:::-;:10;1721:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1795:1;1788:8;;;1558:246;;;;;:::o;1812:132::-;1870:7;1897:39;1901:1;1904;1897:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1890:46;;1812:132;;;;:::o;9881:98::-;9938:7;9965:1;9963;:3;9962:9;;9970:1;9962:9;;;9968:1;9962:9;9955:16;;9881:98;;;;:::o;1029:179::-;1087:7;1107:9;1123:1;1119;:5;;;;:::i;:::-;1107:17;;1148:1;1143;:6;;1135:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1199:1;1192:8;;;1029:179;;;;:::o;1216:136::-;1274:7;1301:43;1305:1;1308;1301:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1294:50;;1216:136;;;;:::o;1952:189::-;2038:7;2070:1;2066;:5;2073:12;2058:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2097:9;2113:1;2109;:5;;;;:::i;:::-;2097:17;;2132:1;2125:8;;;1952:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:99::-;1724:6;1758:5;1752:12;1742:22;;1672:99;;;:::o;1777:169::-;1861:11;1895:6;1890:3;1883:19;1935:4;1930:3;1926:14;1911:29;;1777:169;;;;:::o;1952:246::-;2033:1;2043:113;2057:6;2054:1;2051:13;2043:113;;;2142:1;2137:3;2133:11;2127:18;2123:1;2118:3;2114:11;2107:39;2079:2;2076:1;2072:10;2067:15;;2043:113;;;2190:1;2181:6;2176:3;2172:16;2165:27;2014:184;1952:246;;;:::o;2204:102::-;2245:6;2296:2;2292:7;2287:2;2280:5;2276:14;2272:28;2262:38;;2204:102;;;:::o;2312:377::-;2400:3;2428:39;2461:5;2428:39;:::i;:::-;2483:71;2547:6;2542:3;2483:71;:::i;:::-;2476:78;;2563:65;2621:6;2616:3;2609:4;2602:5;2598:16;2563:65;:::i;:::-;2653:29;2675:6;2653:29;:::i;:::-;2648:3;2644:39;2637:46;;2404:285;2312:377;;;;:::o;2695:313::-;2808:4;2846:2;2835:9;2831:18;2823:26;;2895:9;2889:4;2885:20;2881:1;2870:9;2866:17;2859:47;2923:78;2996:4;2987:6;2923:78;:::i;:::-;2915:86;;2695:313;;;;:::o;3014:77::-;3051:7;3080:5;3069:16;;3014:77;;;:::o;3097:122::-;3170:24;3188:5;3170:24;:::i;:::-;3163:5;3160:35;3150:63;;3209:1;3206;3199:12;3150:63;3097:122;:::o;3225:139::-;3271:5;3309:6;3296:20;3287:29;;3325:33;3352:5;3325:33;:::i;:::-;3225:139;;;;:::o;3370:474::-;3438:6;3446;3495:2;3483:9;3474:7;3470:23;3466:32;3463:119;;;3501:79;;:::i;:::-;3463:119;3621:1;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;:::i;:::-;3636:63;;3592:117;3748:2;3774:53;3819:7;3810:6;3799:9;3795:22;3774:53;:::i;:::-;3764:63;;3719:118;3370:474;;;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:118::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4181:118;;:::o;4305:222::-;4398:4;4436:2;4425:9;4421:18;4413:26;;4449:71;4517:1;4506:9;4502:17;4493:6;4449:71;:::i;:::-;4305:222;;;;:::o;4533:619::-;4610:6;4618;4626;4675:2;4663:9;4654:7;4650:23;4646:32;4643:119;;;4681:79;;:::i;:::-;4643:119;4801:1;4826:53;4871:7;4862:6;4851:9;4847:22;4826:53;:::i;:::-;4816:63;;4772:117;4928:2;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4899:118;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;4533:619;;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:118::-;6010:24;6028:5;6010:24;:::i;:::-;6005:3;5998:37;5923:118;;:::o;6047:222::-;6140:4;6178:2;6167:9;6163:18;6155:26;;6191:71;6259:1;6248:9;6244:17;6235:6;6191:71;:::i;:::-;6047:222;;;;:::o;6275:329::-;6334:6;6383:2;6371:9;6362:7;6358:23;6354:32;6351:119;;;6389:79;;:::i;:::-;6351:119;6509:1;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6480:117;6275:329;;;;:::o;6610:474::-;6678:6;6686;6735:2;6723:9;6714:7;6710:23;6706:32;6703:119;;;6741:79;;:::i;:::-;6703:119;6861:1;6886:53;6931:7;6922:6;6911:9;6907:22;6886:53;:::i;:::-;6876:63;;6832:117;6988:2;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6959:118;6610:474;;;;;:::o;7090:182::-;7230:34;7226:1;7218:6;7214:14;7207:58;7090:182;:::o;7278:366::-;7420:3;7441:67;7505:2;7500:3;7441:67;:::i;:::-;7434:74;;7517:93;7606:3;7517:93;:::i;:::-;7635:2;7630:3;7626:12;7619:19;;7278:366;;;:::o;7650:419::-;7816:4;7854:2;7843:9;7839:18;7831:26;;7903:9;7897:4;7893:20;7889:1;7878:9;7874:17;7867:47;7931:131;8057:4;7931:131;:::i;:::-;7923:139;;7650:419;;;:::o;8075:180::-;8123:77;8120:1;8113:88;8220:4;8217:1;8210:15;8244:4;8241:1;8234:15;8261:102;8303:8;8350:5;8347:1;8343:13;8322:34;;8261:102;;;:::o;8369:848::-;8430:5;8437:4;8461:6;8452:15;;8485:5;8476:14;;8499:712;8520:1;8510:8;8507:15;8499:712;;;8615:4;8610:3;8606:14;8600:4;8597:24;8594:50;;;8624:18;;:::i;:::-;8594:50;8674:1;8664:8;8660:16;8657:451;;;9089:4;9082:5;9078:16;9069:25;;8657:451;9139:4;9133;9129:15;9121:23;;9169:32;9192:8;9169:32;:::i;:::-;9157:44;;8499:712;;;8369:848;;;;;;;:::o;9223:1073::-;9277:5;9468:8;9458:40;;9489:1;9480:10;;9491:5;;9458:40;9517:4;9507:36;;9534:1;9525:10;;9536:5;;9507:36;9603:4;9651:1;9646:27;;;;9687:1;9682:191;;;;9596:277;;9646:27;9664:1;9655:10;;9666:5;;;9682:191;9727:3;9717:8;9714:17;9711:43;;;9734:18;;:::i;:::-;9711:43;9783:8;9780:1;9776:16;9767:25;;9818:3;9811:5;9808:14;9805:40;;;9825:18;;:::i;:::-;9805:40;9858:5;;;9596:277;;9982:2;9972:8;9969:16;9963:3;9957:4;9954:13;9950:36;9932:2;9922:8;9919:16;9914:2;9908:4;9905:12;9901:35;9885:111;9882:246;;;10038:8;10032:4;10028:19;10019:28;;10073:3;10066:5;10063:14;10060:40;;;10080:18;;:::i;:::-;10060:40;10113:5;;9882:246;10153:42;10191:3;10181:8;10175:4;10172:1;10153:42;:::i;:::-;10138:57;;;;10227:4;10222:3;10218:14;10211:5;10208:25;10205:51;;;10236:18;;:::i;:::-;10205:51;10285:4;10278:5;10274:16;10265:25;;9223:1073;;;;;;:::o;10302:281::-;10360:5;10384:23;10402:4;10384:23;:::i;:::-;10376:31;;10428:25;10444:8;10428:25;:::i;:::-;10416:37;;10472:104;10509:66;10499:8;10493:4;10472:104;:::i;:::-;10463:113;;10302:281;;;;:::o;10589:410::-;10629:7;10652:20;10670:1;10652:20;:::i;:::-;10647:25;;10686:20;10704:1;10686:20;:::i;:::-;10681:25;;10741:1;10738;10734:9;10763:30;10781:11;10763:30;:::i;:::-;10752:41;;10942:1;10933:7;10929:15;10926:1;10923:22;10903:1;10896:9;10876:83;10853:139;;10972:18;;:::i;:::-;10853:139;10637:362;10589:410;;;;:::o;11005:173::-;11145:25;11141:1;11133:6;11129:14;11122:49;11005:173;:::o;11184:366::-;11326:3;11347:67;11411:2;11406:3;11347:67;:::i;:::-;11340:74;;11423:93;11512:3;11423:93;:::i;:::-;11541:2;11536:3;11532:12;11525:19;;11184:366;;;:::o;11556:419::-;11722:4;11760:2;11749:9;11745:18;11737:26;;11809:9;11803:4;11799:20;11795:1;11784:9;11780:17;11773:47;11837:131;11963:4;11837:131;:::i;:::-;11829:139;;11556:419;;;:::o;11981:143::-;12038:5;12069:6;12063:13;12054:22;;12085:33;12112:5;12085:33;:::i;:::-;11981:143;;;;:::o;12130:351::-;12200:6;12249:2;12237:9;12228:7;12224:23;12220:32;12217:119;;;12255:79;;:::i;:::-;12217:119;12375:1;12400:64;12456:7;12447:6;12436:9;12432:22;12400:64;:::i;:::-;12390:74;;12346:128;12130:351;;;;:::o;12487:332::-;12608:4;12646:2;12635:9;12631:18;12623:26;;12659:71;12727:1;12716:9;12712:17;12703:6;12659:71;:::i;:::-;12740:72;12808:2;12797:9;12793:18;12784:6;12740:72;:::i;:::-;12487:332;;;;;:::o;12825:85::-;12870:7;12899:5;12888:16;;12825:85;;;:::o;12916:60::-;12944:3;12965:5;12958:12;;12916:60;;;:::o;12982:158::-;13040:9;13073:61;13091:42;13100:32;13126:5;13100:32;:::i;:::-;13091:42;:::i;:::-;13073:61;:::i;:::-;13060:74;;12982:158;;;:::o;13146:147::-;13241:45;13280:5;13241:45;:::i;:::-;13236:3;13229:58;13146:147;;:::o;13299:807::-;13548:4;13586:3;13575:9;13571:19;13563:27;;13600:71;13668:1;13657:9;13653:17;13644:6;13600:71;:::i;:::-;13681:72;13749:2;13738:9;13734:18;13725:6;13681:72;:::i;:::-;13763:80;13839:2;13828:9;13824:18;13815:6;13763:80;:::i;:::-;13853;13929:2;13918:9;13914:18;13905:6;13853:80;:::i;:::-;13943:73;14011:3;14000:9;13996:19;13987:6;13943:73;:::i;:::-;14026;14094:3;14083:9;14079:19;14070:6;14026:73;:::i;:::-;13299:807;;;;;;;;;:::o;14112:143::-;14169:5;14200:6;14194:13;14185:22;;14216:33;14243:5;14216:33;:::i;:::-;14112:143;;;;:::o;14261:663::-;14349:6;14357;14365;14414:2;14402:9;14393:7;14389:23;14385:32;14382:119;;;14420:79;;:::i;:::-;14382:119;14540:1;14565:64;14621:7;14612:6;14601:9;14597:22;14565:64;:::i;:::-;14555:74;;14511:128;14678:2;14704:64;14760:7;14751:6;14740:9;14736:22;14704:64;:::i;:::-;14694:74;;14649:129;14817:2;14843:64;14899:7;14890:6;14879:9;14875:22;14843:64;:::i;:::-;14833:74;;14788:129;14261:663;;;;;:::o;14930:332::-;15051:4;15089:2;15078:9;15074:18;15066:26;;15102:71;15170:1;15159:9;15155:17;15146:6;15102:71;:::i;:::-;15183:72;15251:2;15240:9;15236:18;15227:6;15183:72;:::i;:::-;14930:332;;;;;:::o;15268:137::-;15322:5;15353:6;15347:13;15338:22;;15369:30;15393:5;15369:30;:::i;:::-;15268:137;;;;:::o;15411:345::-;15478:6;15527:2;15515:9;15506:7;15502:23;15498:32;15495:119;;;15533:79;;:::i;:::-;15495:119;15653:1;15678:61;15731:7;15722:6;15711:9;15707:22;15678:61;:::i;:::-;15668:71;;15624:125;15411:345;;;;:::o;15762:223::-;15902:34;15898:1;15890:6;15886:14;15879:58;15971:6;15966:2;15958:6;15954:15;15947:31;15762:223;:::o;15991:366::-;16133:3;16154:67;16218:2;16213:3;16154:67;:::i;:::-;16147:74;;16230:93;16319:3;16230:93;:::i;:::-;16348:2;16343:3;16339:12;16332:19;;15991:366;;;:::o;16363:419::-;16529:4;16567:2;16556:9;16552:18;16544:26;;16616:9;16610:4;16606:20;16602:1;16591:9;16587:17;16580:47;16644:131;16770:4;16644:131;:::i;:::-;16636:139;;16363:419;;;:::o;16788:221::-;16928:34;16924:1;16916:6;16912:14;16905:58;16997:4;16992:2;16984:6;16980:15;16973:29;16788:221;:::o;17015:366::-;17157:3;17178:67;17242:2;17237:3;17178:67;:::i;:::-;17171:74;;17254:93;17343:3;17254:93;:::i;:::-;17372:2;17367:3;17363:12;17356:19;;17015:366;;;:::o;17387:419::-;17553:4;17591:2;17580:9;17576:18;17568:26;;17640:9;17634:4;17630:20;17626:1;17615:9;17611:17;17604:47;17668:131;17794:4;17668:131;:::i;:::-;17660:139;;17387:419;;;:::o;17812:224::-;17952:34;17948:1;17940:6;17936:14;17929:58;18021:7;18016:2;18008:6;18004:15;17997:32;17812:224;:::o;18042:366::-;18184:3;18205:67;18269:2;18264:3;18205:67;:::i;:::-;18198:74;;18281:93;18370:3;18281:93;:::i;:::-;18399:2;18394:3;18390:12;18383:19;;18042:366;;;:::o;18414:419::-;18580:4;18618:2;18607:9;18603:18;18595:26;;18667:9;18661:4;18657:20;18653:1;18642:9;18638:17;18631:47;18695:131;18821:4;18695:131;:::i;:::-;18687:139;;18414:419;;;:::o;18839:222::-;18979:34;18975:1;18967:6;18963:14;18956:58;19048:5;19043:2;19035:6;19031:15;19024:30;18839:222;:::o;19067:366::-;19209:3;19230:67;19294:2;19289:3;19230:67;:::i;:::-;19223:74;;19306:93;19395:3;19306:93;:::i;:::-;19424:2;19419:3;19415:12;19408:19;;19067:366;;;:::o;19439:419::-;19605:4;19643:2;19632:9;19628:18;19620:26;;19692:9;19686:4;19682:20;19678:1;19667:9;19663:17;19656:47;19720:131;19846:4;19720:131;:::i;:::-;19712:139;;19439:419;;;:::o;19864:228::-;20004:34;20000:1;19992:6;19988:14;19981:58;20073:11;20068:2;20060:6;20056:15;20049:36;19864:228;:::o;20098:366::-;20240:3;20261:67;20325:2;20320:3;20261:67;:::i;:::-;20254:74;;20337:93;20426:3;20337:93;:::i;:::-;20455:2;20450:3;20446:12;20439:19;;20098:366;;;:::o;20470:419::-;20636:4;20674:2;20663:9;20659:18;20651:26;;20723:9;20717:4;20713:20;20709:1;20698:9;20694:17;20687:47;20751:131;20877:4;20751:131;:::i;:::-;20743:139;;20470:419;;;:::o;20895:223::-;21035:34;21031:1;21023:6;21019:14;21012:58;21104:6;21099:2;21091:6;21087:15;21080:31;20895:223;:::o;21124:366::-;21266:3;21287:67;21351:2;21346:3;21287:67;:::i;:::-;21280:74;;21363:93;21452:3;21363:93;:::i;:::-;21481:2;21476:3;21472:12;21465:19;;21124:366;;;:::o;21496:419::-;21662:4;21700:2;21689:9;21685:18;21677:26;;21749:9;21743:4;21739:20;21735:1;21724:9;21720:17;21713:47;21777:131;21903:4;21777:131;:::i;:::-;21769:139;;21496:419;;;:::o;21921:175::-;22061:27;22057:1;22049:6;22045:14;22038:51;21921:175;:::o;22102:366::-;22244:3;22265:67;22329:2;22324:3;22265:67;:::i;:::-;22258:74;;22341:93;22430:3;22341:93;:::i;:::-;22459:2;22454:3;22450:12;22443:19;;22102:366;;;:::o;22474:419::-;22640:4;22678:2;22667:9;22663:18;22655:26;;22727:9;22721:4;22717:20;22713:1;22702:9;22698:17;22691:47;22755:131;22881:4;22755:131;:::i;:::-;22747:139;;22474:419;;;:::o;22899:191::-;22939:3;22958:20;22976:1;22958:20;:::i;:::-;22953:25;;22992:20;23010:1;22992:20;:::i;:::-;22987:25;;23035:1;23032;23028:9;23021:16;;23056:3;23053:1;23050:10;23047:36;;;23063:18;;:::i;:::-;23047:36;22899:191;;;;:::o;23096:176::-;23236:28;23232:1;23224:6;23220:14;23213:52;23096:176;:::o;23278:366::-;23420:3;23441:67;23505:2;23500:3;23441:67;:::i;:::-;23434:74;;23517:93;23606:3;23517:93;:::i;:::-;23635:2;23630:3;23626:12;23619:19;;23278:366;;;:::o;23650:419::-;23816:4;23854:2;23843:9;23839:18;23831:26;;23903:9;23897:4;23893:20;23889:1;23878:9;23874:17;23867:47;23931:131;24057:4;23931:131;:::i;:::-;23923:139;;23650:419;;;:::o;24075:233::-;24114:3;24137:24;24155:5;24137:24;:::i;:::-;24128:33;;24183:66;24176:5;24173:77;24170:103;;24253:18;;:::i;:::-;24170:103;24300:1;24293:5;24289:13;24282:20;;24075:233;;;:::o;24314:194::-;24354:4;24374:20;24392:1;24374:20;:::i;:::-;24369:25;;24408:20;24426:1;24408:20;:::i;:::-;24403:25;;24452:1;24449;24445:9;24437:17;;24476:1;24470:4;24467:11;24464:37;;;24481:18;;:::i;:::-;24464:37;24314:194;;;;:::o;24514:180::-;24562:77;24559:1;24552:88;24659:4;24656:1;24649:15;24683:4;24680:1;24673:15;24700:180;24748:77;24745:1;24738:88;24845:4;24842:1;24835:15;24869:4;24866:1;24859:15;24886:114;24953:6;24987:5;24981:12;24971:22;;24886:114;;;:::o;25006:184::-;25105:11;25139:6;25134:3;25127:19;25179:4;25174:3;25170:14;25155:29;;25006:184;;;;:::o;25196:132::-;25263:4;25286:3;25278:11;;25316:4;25311:3;25307:14;25299:22;;25196:132;;;:::o;25334:108::-;25411:24;25429:5;25411:24;:::i;:::-;25406:3;25399:37;25334:108;;:::o;25448:179::-;25517:10;25538:46;25580:3;25572:6;25538:46;:::i;:::-;25616:4;25611:3;25607:14;25593:28;;25448:179;;;;:::o;25633:113::-;25703:4;25735;25730:3;25726:14;25718:22;;25633:113;;;:::o;25782:732::-;25901:3;25930:54;25978:5;25930:54;:::i;:::-;26000:86;26079:6;26074:3;26000:86;:::i;:::-;25993:93;;26110:56;26160:5;26110:56;:::i;:::-;26189:7;26220:1;26205:284;26230:6;26227:1;26224:13;26205:284;;;26306:6;26300:13;26333:63;26392:3;26377:13;26333:63;:::i;:::-;26326:70;;26419:60;26472:6;26419:60;:::i;:::-;26409:70;;26265:224;26252:1;26249;26245:9;26240:14;;26205:284;;;26209:14;26505:3;26498:10;;25906:608;;;25782:732;;;;:::o;26520:831::-;26783:4;26821:3;26810:9;26806:19;26798:27;;26835:71;26903:1;26892:9;26888:17;26879:6;26835:71;:::i;:::-;26916:80;26992:2;26981:9;26977:18;26968:6;26916:80;:::i;:::-;27043:9;27037:4;27033:20;27028:2;27017:9;27013:18;27006:48;27071:108;27174:4;27165:6;27071:108;:::i;:::-;27063:116;;27189:72;27257:2;27246:9;27242:18;27233:6;27189:72;:::i;:::-;27271:73;27339:3;27328:9;27324:19;27315:6;27271:73;:::i;:::-;26520:831;;;;;;;;:::o;27357:180::-;27405:77;27402:1;27395:88;27502:4;27499:1;27492:15;27526:4;27523:1;27516:15;27543:185;27583:1;27600:20;27618:1;27600:20;:::i;:::-;27595:25;;27634:20;27652:1;27634:20;:::i;:::-;27629:25;;27673:1;27663:35;;27678:18;;:::i;:::-;27663:35;27720:1;27717;27713:9;27708:14;;27543:185;;;;:::o;27734:220::-;27874:34;27870:1;27862:6;27858:14;27851:58;27943:3;27938:2;27930:6;27926:15;27919:28;27734:220;:::o;27960:366::-;28102:3;28123:67;28187:2;28182:3;28123:67;:::i;:::-;28116:74;;28199:93;28288:3;28199:93;:::i;:::-;28317:2;28312:3;28308:12;28301:19;;27960:366;;;:::o;28332:419::-;28498:4;28536:2;28525:9;28521:18;28513:26;;28585:9;28579:4;28575:20;28571:1;28560:9;28556:17;28549:47;28613:131;28739:4;28613:131;:::i;:::-;28605:139;;28332:419;;;:::o;28757:177::-;28897:29;28893:1;28885:6;28881:14;28874:53;28757:177;:::o;28940:366::-;29082:3;29103:67;29167:2;29162:3;29103:67;:::i;:::-;29096:74;;29179:93;29268:3;29179:93;:::i;:::-;29297:2;29292:3;29288:12;29281:19;;28940:366;;;:::o;29312:419::-;29478:4;29516:2;29505:9;29501:18;29493:26;;29565:9;29559:4;29555:20;29551:1;29540:9;29536:17;29529:47;29593:131;29719:4;29593:131;:::i;:::-;29585:139;;29312:419;;;:::o

Swarm Source

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