ETH Price: $3,432.16 (+2.40%)
Gas: 4 Gwei

Token

SHINARIUM (SHINARIUM)
 

Overview

Max Total Supply

20,000,000,000,000 SHINARIUM

Holders

179

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.94599437102982166 SHINARIUM

Value
$0.00
0x97f1cfaa2782ed296c741b096fa0925823857a7f
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Shinarium, Shina Inu companion & powerful layer 2 protocol, is a new cryptocurrency solution that runs on top of the Ethereum blockchain providing the benefits of scalability, faster transaction times, lower fees, and an expanded development framework.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
shinarium

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-11
*/

//https://shinarium.org

// SPDX-License-Identifier: None

pragma solidity = 0.8.19;

//--- Context ---//
abstract contract Context {
    constructor() {
    }

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

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

//--- Ownable ---//
abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    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);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}



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

//--- Contract v2 ---//
contract shinarium is Context, Ownable, IERC20 {

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


    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFee;
    mapping (address => bool) private liquidityAdd;
    mapping (address => bool) private isLpPair;
    mapping (address => uint256) private balance;


    uint256 constant public _totalSupply = 20_000_000_000_000 * 10**18;
    uint256 constant public swapThreshold = _totalSupply / 5_000;
    uint256 constant public buyfee = 1;
    uint256 constant public sellfee = 1;
    uint256 constant public transferfee = 0;
    uint256 constant public fee_denominator = 1_00;
    bool private canSwapFees = true;
    address payable private marketingAddress = payable(0xe66F20b40d67c36379d8d10A9bf2c8c94bcA2b13);


    IRouter02 public swapRouter;
    string constant private _name = "SHINARIUM";
    string constant private _symbol = "SHINARIUM";
    uint8 constant private _decimals = 18;
    address public lpPair;
    bool public isTradingEnabled = false;
    bool private inSwap;

        modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }


    event _enableTrading();


    constructor () {
        _noFee[msg.sender] = true;

        if (block.chainid == 1 || block.chainid == 5) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        }
        liquidityAdd[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        lpPair = IFactoryV2(swapRouter.factory()).createPair(swapRouter.WETH(), address(this));
        isLpPair[lpPair] = true;
        _approve(msg.sender, address(swapRouter), type(uint256).max);
        _approve(address(this), address(swapRouter), type(uint256).max);
    }
    
    receive() external payable {}

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

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

        function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
    }

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

        return _transfer(sender, recipient, amount);
    }
    function isExemptWallet(address account) external view returns(bool) {
        return _noFee[account];
    }

    function setExemptWallet(address account, bool enabled) public onlyOwner {
        _noFee[account] = enabled;
    }

    function isLimitedAddress(address ins, address out) internal view returns (bool) {

        bool isLimited = ins != owner()
            && out != owner() && msg.sender != owner()
            && !liquidityAdd[ins]  && !liquidityAdd[out] && out != address(0) && out != address(this);
            return isLimited;
    }

    function is_buy(address ins, address out) internal view returns (bool) {
        bool _is_buy = !isLpPair[out] && isLpPair[ins];
        return _is_buy;
    }

    function is_sell(address ins, address out) internal view returns (bool) { 
        bool _is_sell = isLpPair[out] && !isLpPair[ins];
        return _is_sell;
    } 

    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (isLimitedAddress(from,to)) {
            require(isTradingEnabled,"Trading is not enabled");
        }


        if(is_sell(from, to) &&  !inSwap) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance >= swapThreshold) { internalSwap(contractTokenBalance); }
        }

        if (_noFee[from] || _noFee[to]){
            takeFee = false;
        }

        balance[from] -= amount; uint256 amountAfterFee = (takeFee) ? takeTaxes(from, is_buy(from, to), is_sell(from, to), amount) : amount;
        balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee);

        return true;

    }


    function takeTaxes(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) {
        uint256 fee;
        if (isbuy)  fee = buyfee;  else if (issell)  fee = sellfee;  else  fee = transferfee; 
        if (fee == 0)  return amount;
        uint256 feeAmount = amount * fee / fee_denominator;
        if (feeAmount > 0) {

            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
            
        }
        return amount - feeAmount;
    }

    function internalSwap(uint256 contractTokenBalance) internal inSwapFlag {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }
        bool success;

        if(address(this).balance > 0) {(success,) = marketingAddress.call{value: address(this).balance, gas: 35000}("");}

    }
        function enableTrading() external onlyOwner {
            require(!isTradingEnabled, "Trading already enabled");
            isTradingEnabled = true;
            emit _enableTrading();
        }
    
}

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":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"},{"anonymous":false,"inputs":[],"name":"_enableTrading","type":"event"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee_denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExemptWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExemptWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600660006101000a81548160ff02191690831515021790555073e66f20b40d67c36379d8d10a9bf2c8c94bca2b13600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860146101000a81548160ff0219169083151502179055503480156200009c57600080fd5b50620000bd620000b1620005b260201b60201c565b620005ba60201b60201c565b6001600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001461480620001255750600546145b156200018157737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506cfc6f7c40458122964d00000000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6cfc6f7c40458122964d0000000060405162000297919062000803565b60405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033391906200088a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e291906200088a565b306040518363ffffffff1660e01b815260040162000402929190620008cd565b6020604051808303816000875af115801562000422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044891906200088a565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200055733600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200067e60201b60201c565b620005ac30600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200067e60201b60201c565b6200097d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620006f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006e7906200095b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000759906200095b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000819050919050565b620007fd81620007e8565b82525050565b60006020820190506200081a6000830184620007f2565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008528262000825565b9050919050565b620008648162000845565b81146200087057600080fd5b50565b600081519050620008848162000859565b92915050565b600060208284031215620008a357620008a262000820565b5b6000620008b38482850162000873565b91505092915050565b620008c78162000845565b82525050565b6000604082019050620008e46000830185620008bc565b620008f36020830184620008bc565b9392505050565b600082825260208201905092915050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b600062000943601383620008fa565b915062000950826200090b565b602082019050919050565b60006020820190508181036000830152620009768162000934565b9050919050565b61282b806200098d6000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063bf078f601161008a578063dc9d75b011610064578063dc9d75b01461052d578063dd62ed3e14610558578063e9451f5f14610595578063f2fde38b146105c057610171565b8063bf078f601461049c578063c31c9c07146104d9578063ca6c42811461050457610171565b8063715018a6146103b0578063893d20e8146103c75780638a8c523c146103f25780638da5cb5b1461040957806395d89b4114610434578063a9059cbb1461045f57610171565b806323b872dd1161012357806323b872dd1461028a578063313ce567146102c75780633eaaf86b146102f2578063452ed4f11461031d57806354de7bee1461034857806370a082311461037357610171565b80630445b66714610176578063064a59d0146101a157806306fdde03146101cc578063095ea7b3146101f757806318160ddd146102345780631dc369451461025f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105e9565b6040516101989190611cb2565b60405180910390f35b3480156101ad57600080fd5b506101b6610607565b6040516101c39190611ce8565b60405180910390f35b3480156101d857600080fd5b506101e161061a565b6040516101ee9190611d93565b60405180910390f35b34801561020357600080fd5b5061021e60048036038101906102199190611e44565b610657565b60405161022b9190611ce8565b60405180910390f35b34801561024057600080fd5b5061024961066e565b6040516102569190611cb2565b60405180910390f35b34801561026b57600080fd5b5061027461069c565b6040516102819190611cb2565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190611e84565b6106a1565b6040516102be9190611ce8565b60405180910390f35b3480156102d357600080fd5b506102dc6107ee565b6040516102e99190611ef3565b60405180910390f35b3480156102fe57600080fd5b50610307610810565b6040516103149190611cb2565b60405180910390f35b34801561032957600080fd5b50610332610821565b60405161033f9190611f1d565b60405180910390f35b34801561035457600080fd5b5061035d610847565b60405161036a9190611cb2565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190611f38565b61084c565b6040516103a79190611cb2565b60405180910390f35b3480156103bc57600080fd5b506103c5610895565b005b3480156103d357600080fd5b506103dc61091d565b6040516103e99190611f1d565b60405180910390f35b3480156103fe57600080fd5b5061040761092c565b005b34801561041557600080fd5b5061041e610a41565b60405161042b9190611f1d565b60405180910390f35b34801561044057600080fd5b50610449610a6a565b6040516104569190611d93565b60405180910390f35b34801561046b57600080fd5b5061048660048036038101906104819190611e44565b610aa7565b6040516104939190611ce8565b60405180910390f35b3480156104a857600080fd5b506104c360048036038101906104be9190611f38565b610abf565b6040516104d09190611ce8565b60405180910390f35b3480156104e557600080fd5b506104ee610b15565b6040516104fb9190611fc4565b60405180910390f35b34801561051057600080fd5b5061052b6004803603810190610526919061200b565b610b3b565b005b34801561053957600080fd5b50610542610c12565b60405161054f9190611cb2565b60405180910390f35b34801561056457600080fd5b5061057f600480360381019061057a919061204b565b610c17565b60405161058c9190611cb2565b60405180910390f35b3480156105a157600080fd5b506105aa610c9e565b6040516105b79190611cb2565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190611f38565b610ca3565b005b6113886cfc6f7c40458122964d0000000061060491906120e9565b81565b600860149054906101000a900460ff1681565b60606040518060400160405280600981526020017f5348494e415249554d0000000000000000000000000000000000000000000000815250905090565b6000610664338484610d9a565b6001905092915050565b6000806cfc6f7c40458122964d000000000361068957600080fd5b6cfc6f7c40458122964d00000000905090565b600181565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107da5781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107d2919061211a565b925050819055505b6107e5848484610efe565b90509392505050565b6000806cfc6f7c40458122964d000000000361080957600080fd5b6012905090565b6cfc6f7c40458122964d0000000081565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61089d6112de565b73ffffffffffffffffffffffffffffffffffffffff166108bb610a41565b73ffffffffffffffffffffffffffffffffffffffff1614610911576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109089061219a565b60405180910390fd5b61091b60006112e6565b565b6000610927610a41565b905090565b6109346112de565b73ffffffffffffffffffffffffffffffffffffffff16610952610a41565b73ffffffffffffffffffffffffffffffffffffffff16146109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099f9061219a565b60405180910390fd5b600860149054906101000a900460ff16156109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90612206565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055507fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686860405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f5348494e415249554d0000000000000000000000000000000000000000000000815250905090565b6000610ab4338484610efe565b506001905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b436112de565b73ffffffffffffffffffffffffffffffffffffffff16610b61610a41565b73ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae9061219a565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600181565b610cab6112de565b73ffffffffffffffffffffffffffffffffffffffff16610cc9610a41565b73ffffffffffffffffffffffffffffffffffffffff1614610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d169061219a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590612298565b60405180910390fd5b610d97816112e6565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0090612304565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f90612304565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60008060019050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6b90612396565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda90612428565b60405180910390fd5b60008311611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d906124ba565b60405180910390fd5b61103085856113aa565b1561108557600860149054906101000a900460ff16611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612526565b60405180910390fd5b5b61108f858561158b565b80156110a85750600860159054906101000a900460ff16155b156110e75760006110b83061084c565b90506113886cfc6f7c40458122964d000000006110d591906120e9565b81106110e5576110e48161163d565b5b505b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111885750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561119257600090505b82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111e1919061211a565b925050819055506000816111f55783611214565b611213866112038888611ab5565b61120d898961158b565b87611b67565b5b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112659190612546565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112c99190611cb2565b60405180910390a36001925050509392505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000806113b5610a41565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561142357506113f3610a41565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114625750611432610a41565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b85750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561150e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115475750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561157f57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156116315750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b6001600860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156116755761167461257a565b5b6040519080825280602002602001820160405280156116a35781602001602082028036833780820191505090505b50905030816000815181106116bb576116ba6125a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178691906125ed565b8160018151811061179a576117996125a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461195d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016119c1959493929190612713565b600060405180830381600087803b1580156119db57600080fd5b505af19250505080156119ec575060015b6119f65750611a97565b600080471115611a9457600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476188b890604051611a4a9061279e565b600060405180830381858888f193505050503d8060008114611a88576040519150601f19603f3d011682016040523d82523d6000602084013e611a8d565b606091505b5050809150505b50505b6000600860156101000a81548160ff02191690831515021790555050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b5b5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508091505092915050565b6000808415611b795760019050611b8e565b8315611b885760019050611b8d565b600090505b5b60008103611b9f5782915050611c91565b600060648285611baf91906127b3565b611bb991906120e9565b90506000811115611c805780600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c139190612546565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c779190611cb2565b60405180910390a35b8084611c8c919061211a565b925050505b949350505050565b6000819050919050565b611cac81611c99565b82525050565b6000602082019050611cc76000830184611ca3565b92915050565b60008115159050919050565b611ce281611ccd565b82525050565b6000602082019050611cfd6000830184611cd9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d3d578082015181840152602081019050611d22565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d6582611d03565b611d6f8185611d0e565b9350611d7f818560208601611d1f565b611d8881611d49565b840191505092915050565b60006020820190508181036000830152611dad8184611d5a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611de582611dba565b9050919050565b611df581611dda565b8114611e0057600080fd5b50565b600081359050611e1281611dec565b92915050565b611e2181611c99565b8114611e2c57600080fd5b50565b600081359050611e3e81611e18565b92915050565b60008060408385031215611e5b57611e5a611db5565b5b6000611e6985828601611e03565b9250506020611e7a85828601611e2f565b9150509250929050565b600080600060608486031215611e9d57611e9c611db5565b5b6000611eab86828701611e03565b9350506020611ebc86828701611e03565b9250506040611ecd86828701611e2f565b9150509250925092565b600060ff82169050919050565b611eed81611ed7565b82525050565b6000602082019050611f086000830184611ee4565b92915050565b611f1781611dda565b82525050565b6000602082019050611f326000830184611f0e565b92915050565b600060208284031215611f4e57611f4d611db5565b5b6000611f5c84828501611e03565b91505092915050565b6000819050919050565b6000611f8a611f85611f8084611dba565b611f65565b611dba565b9050919050565b6000611f9c82611f6f565b9050919050565b6000611fae82611f91565b9050919050565b611fbe81611fa3565b82525050565b6000602082019050611fd96000830184611fb5565b92915050565b611fe881611ccd565b8114611ff357600080fd5b50565b60008135905061200581611fdf565b92915050565b6000806040838503121561202257612021611db5565b5b600061203085828601611e03565b925050602061204185828601611ff6565b9150509250929050565b6000806040838503121561206257612061611db5565b5b600061207085828601611e03565b925050602061208185828601611e03565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120f482611c99565b91506120ff83611c99565b92508261210f5761210e61208b565b5b828204905092915050565b600061212582611c99565b915061213083611c99565b9250828203905081811115612148576121476120ba565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612184602083611d0e565b915061218f8261214e565b602082019050919050565b600060208201905081810360008301526121b381612177565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b60006121f0601783611d0e565b91506121fb826121ba565b602082019050919050565b6000602082019050818103600083015261221f816121e3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612282602683611d0e565b915061228d82612226565b604082019050919050565b600060208201905081810360008301526122b181612275565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b60006122ee601383611d0e565b91506122f9826122b8565b602082019050919050565b6000602082019050818103600083015261231d816122e1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612380602383611d0e565b915061238b82612324565b604082019050919050565b600060208201905081810360008301526123af81612373565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612412602583611d0e565b915061241d826123b6565b604082019050919050565b6000602082019050818103600083015261244181612405565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006124a4602983611d0e565b91506124af82612448565b604082019050919050565b600060208201905081810360008301526124d381612497565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b6000612510601683611d0e565b915061251b826124da565b602082019050919050565b6000602082019050818103600083015261253f81612503565b9050919050565b600061255182611c99565b915061255c83611c99565b9250828201905080821115612574576125736120ba565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506125e781611dec565b92915050565b60006020828403121561260357612602611db5565b5b6000612611848285016125d8565b91505092915050565b6000819050919050565b600061263f61263a6126358461261a565b611f65565b611c99565b9050919050565b61264f81612624565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61268a81611dda565b82525050565b600061269c8383612681565b60208301905092915050565b6000602082019050919050565b60006126c082612655565b6126ca8185612660565b93506126d583612671565b8060005b838110156127065781516126ed8882612690565b97506126f8836126a8565b9250506001810190506126d9565b5085935050505092915050565b600060a0820190506127286000830188611ca3565b6127356020830187612646565b818103604083015261274781866126b5565b90506127566060830185611f0e565b6127636080830184611ca3565b9695505050505050565b600081905092915050565b50565b600061278860008361276d565b915061279382612778565b600082019050919050565b60006127a98261277b565b9150819050919050565b60006127be82611c99565b91506127c983611c99565b92508282026127d781611c99565b915082820484148315176127ee576127ed6120ba565b5b509291505056fea2646970667358221220a41463b5709693f8c2ddb1c017379b27210eb5ea81aa55f1a51f6c3588496a3064736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063bf078f601161008a578063dc9d75b011610064578063dc9d75b01461052d578063dd62ed3e14610558578063e9451f5f14610595578063f2fde38b146105c057610171565b8063bf078f601461049c578063c31c9c07146104d9578063ca6c42811461050457610171565b8063715018a6146103b0578063893d20e8146103c75780638a8c523c146103f25780638da5cb5b1461040957806395d89b4114610434578063a9059cbb1461045f57610171565b806323b872dd1161012357806323b872dd1461028a578063313ce567146102c75780633eaaf86b146102f2578063452ed4f11461031d57806354de7bee1461034857806370a082311461037357610171565b80630445b66714610176578063064a59d0146101a157806306fdde03146101cc578063095ea7b3146101f757806318160ddd146102345780631dc369451461025f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105e9565b6040516101989190611cb2565b60405180910390f35b3480156101ad57600080fd5b506101b6610607565b6040516101c39190611ce8565b60405180910390f35b3480156101d857600080fd5b506101e161061a565b6040516101ee9190611d93565b60405180910390f35b34801561020357600080fd5b5061021e60048036038101906102199190611e44565b610657565b60405161022b9190611ce8565b60405180910390f35b34801561024057600080fd5b5061024961066e565b6040516102569190611cb2565b60405180910390f35b34801561026b57600080fd5b5061027461069c565b6040516102819190611cb2565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190611e84565b6106a1565b6040516102be9190611ce8565b60405180910390f35b3480156102d357600080fd5b506102dc6107ee565b6040516102e99190611ef3565b60405180910390f35b3480156102fe57600080fd5b50610307610810565b6040516103149190611cb2565b60405180910390f35b34801561032957600080fd5b50610332610821565b60405161033f9190611f1d565b60405180910390f35b34801561035457600080fd5b5061035d610847565b60405161036a9190611cb2565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190611f38565b61084c565b6040516103a79190611cb2565b60405180910390f35b3480156103bc57600080fd5b506103c5610895565b005b3480156103d357600080fd5b506103dc61091d565b6040516103e99190611f1d565b60405180910390f35b3480156103fe57600080fd5b5061040761092c565b005b34801561041557600080fd5b5061041e610a41565b60405161042b9190611f1d565b60405180910390f35b34801561044057600080fd5b50610449610a6a565b6040516104569190611d93565b60405180910390f35b34801561046b57600080fd5b5061048660048036038101906104819190611e44565b610aa7565b6040516104939190611ce8565b60405180910390f35b3480156104a857600080fd5b506104c360048036038101906104be9190611f38565b610abf565b6040516104d09190611ce8565b60405180910390f35b3480156104e557600080fd5b506104ee610b15565b6040516104fb9190611fc4565b60405180910390f35b34801561051057600080fd5b5061052b6004803603810190610526919061200b565b610b3b565b005b34801561053957600080fd5b50610542610c12565b60405161054f9190611cb2565b60405180910390f35b34801561056457600080fd5b5061057f600480360381019061057a919061204b565b610c17565b60405161058c9190611cb2565b60405180910390f35b3480156105a157600080fd5b506105aa610c9e565b6040516105b79190611cb2565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190611f38565b610ca3565b005b6113886cfc6f7c40458122964d0000000061060491906120e9565b81565b600860149054906101000a900460ff1681565b60606040518060400160405280600981526020017f5348494e415249554d0000000000000000000000000000000000000000000000815250905090565b6000610664338484610d9a565b6001905092915050565b6000806cfc6f7c40458122964d000000000361068957600080fd5b6cfc6f7c40458122964d00000000905090565b600181565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107da5781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107d2919061211a565b925050819055505b6107e5848484610efe565b90509392505050565b6000806cfc6f7c40458122964d000000000361080957600080fd5b6012905090565b6cfc6f7c40458122964d0000000081565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61089d6112de565b73ffffffffffffffffffffffffffffffffffffffff166108bb610a41565b73ffffffffffffffffffffffffffffffffffffffff1614610911576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109089061219a565b60405180910390fd5b61091b60006112e6565b565b6000610927610a41565b905090565b6109346112de565b73ffffffffffffffffffffffffffffffffffffffff16610952610a41565b73ffffffffffffffffffffffffffffffffffffffff16146109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099f9061219a565b60405180910390fd5b600860149054906101000a900460ff16156109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90612206565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055507fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686860405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f5348494e415249554d0000000000000000000000000000000000000000000000815250905090565b6000610ab4338484610efe565b506001905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b436112de565b73ffffffffffffffffffffffffffffffffffffffff16610b61610a41565b73ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae9061219a565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600181565b610cab6112de565b73ffffffffffffffffffffffffffffffffffffffff16610cc9610a41565b73ffffffffffffffffffffffffffffffffffffffff1614610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d169061219a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590612298565b60405180910390fd5b610d97816112e6565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0090612304565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f90612304565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60008060019050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6b90612396565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda90612428565b60405180910390fd5b60008311611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d906124ba565b60405180910390fd5b61103085856113aa565b1561108557600860149054906101000a900460ff16611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612526565b60405180910390fd5b5b61108f858561158b565b80156110a85750600860159054906101000a900460ff16155b156110e75760006110b83061084c565b90506113886cfc6f7c40458122964d000000006110d591906120e9565b81106110e5576110e48161163d565b5b505b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111885750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561119257600090505b82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111e1919061211a565b925050819055506000816111f55783611214565b611213866112038888611ab5565b61120d898961158b565b87611b67565b5b905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112659190612546565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112c99190611cb2565b60405180910390a36001925050509392505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000806113b5610a41565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561142357506113f3610a41565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114625750611432610a41565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b85750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561150e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115475750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561157f57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156116315750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b6001600860156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156116755761167461257a565b5b6040519080825280602002602001820160405280156116a35781602001602082028036833780820191505090505b50905030816000815181106116bb576116ba6125a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611762573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178691906125ed565b8160018151811061179a576117996125a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461195d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016119c1959493929190612713565b600060405180830381600087803b1580156119db57600080fd5b505af19250505080156119ec575060015b6119f65750611a97565b600080471115611a9457600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476188b890604051611a4a9061279e565b600060405180830381858888f193505050503d8060008114611a88576040519150601f19603f3d011682016040523d82523d6000602084013e611a8d565b606091505b5050809150505b50505b6000600860156101000a81548160ff02191690831515021790555050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b5b5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508091505092915050565b6000808415611b795760019050611b8e565b8315611b885760019050611b8d565b600090505b5b60008103611b9f5782915050611c91565b600060648285611baf91906127b3565b611bb991906120e9565b90506000811115611c805780600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c139190612546565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c779190611cb2565b60405180910390a35b8084611c8c919061211a565b925050505b949350505050565b6000819050919050565b611cac81611c99565b82525050565b6000602082019050611cc76000830184611ca3565b92915050565b60008115159050919050565b611ce281611ccd565b82525050565b6000602082019050611cfd6000830184611cd9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d3d578082015181840152602081019050611d22565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d6582611d03565b611d6f8185611d0e565b9350611d7f818560208601611d1f565b611d8881611d49565b840191505092915050565b60006020820190508181036000830152611dad8184611d5a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611de582611dba565b9050919050565b611df581611dda565b8114611e0057600080fd5b50565b600081359050611e1281611dec565b92915050565b611e2181611c99565b8114611e2c57600080fd5b50565b600081359050611e3e81611e18565b92915050565b60008060408385031215611e5b57611e5a611db5565b5b6000611e6985828601611e03565b9250506020611e7a85828601611e2f565b9150509250929050565b600080600060608486031215611e9d57611e9c611db5565b5b6000611eab86828701611e03565b9350506020611ebc86828701611e03565b9250506040611ecd86828701611e2f565b9150509250925092565b600060ff82169050919050565b611eed81611ed7565b82525050565b6000602082019050611f086000830184611ee4565b92915050565b611f1781611dda565b82525050565b6000602082019050611f326000830184611f0e565b92915050565b600060208284031215611f4e57611f4d611db5565b5b6000611f5c84828501611e03565b91505092915050565b6000819050919050565b6000611f8a611f85611f8084611dba565b611f65565b611dba565b9050919050565b6000611f9c82611f6f565b9050919050565b6000611fae82611f91565b9050919050565b611fbe81611fa3565b82525050565b6000602082019050611fd96000830184611fb5565b92915050565b611fe881611ccd565b8114611ff357600080fd5b50565b60008135905061200581611fdf565b92915050565b6000806040838503121561202257612021611db5565b5b600061203085828601611e03565b925050602061204185828601611ff6565b9150509250929050565b6000806040838503121561206257612061611db5565b5b600061207085828601611e03565b925050602061208185828601611e03565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120f482611c99565b91506120ff83611c99565b92508261210f5761210e61208b565b5b828204905092915050565b600061212582611c99565b915061213083611c99565b9250828203905081811115612148576121476120ba565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612184602083611d0e565b915061218f8261214e565b602082019050919050565b600060208201905081810360008301526121b381612177565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b60006121f0601783611d0e565b91506121fb826121ba565b602082019050919050565b6000602082019050818103600083015261221f816121e3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612282602683611d0e565b915061228d82612226565b604082019050919050565b600060208201905081810360008301526122b181612275565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b60006122ee601383611d0e565b91506122f9826122b8565b602082019050919050565b6000602082019050818103600083015261231d816122e1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612380602383611d0e565b915061238b82612324565b604082019050919050565b600060208201905081810360008301526123af81612373565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612412602583611d0e565b915061241d826123b6565b604082019050919050565b6000602082019050818103600083015261244181612405565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006124a4602983611d0e565b91506124af82612448565b604082019050919050565b600060208201905081810360008301526124d381612497565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b6000612510601683611d0e565b915061251b826124da565b602082019050919050565b6000602082019050818103600083015261253f81612503565b9050919050565b600061255182611c99565b915061255c83611c99565b9250828201905080821115612574576125736120ba565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506125e781611dec565b92915050565b60006020828403121561260357612602611db5565b5b6000612611848285016125d8565b91505092915050565b6000819050919050565b600061263f61263a6126358461261a565b611f65565b611c99565b9050919050565b61264f81612624565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61268a81611dda565b82525050565b600061269c8383612681565b60208301905092915050565b6000602082019050919050565b60006126c082612655565b6126ca8185612660565b93506126d583612671565b8060005b838110156127065781516126ed8882612690565b97506126f8836126a8565b9250506001810190506126d9565b5085935050505092915050565b600060a0820190506127286000830188611ca3565b6127356020830187612646565b818103604083015261274781866126b5565b90506127566060830185611f0e565b6127636080830184611ca3565b9695505050505050565b600081905092915050565b50565b600061278860008361276d565b915061279382612778565b600082019050919050565b60006127a98261277b565b9150819050919050565b60006127be82611c99565b91506127c983611c99565b92508282026127d781611c99565b915082820484148315176127ee576127ed6120ba565b5b509291505056fea2646970667358221220a41463b5709693f8c2ddb1c017379b27210eb5ea81aa55f1a51f6c3588496a3064736f6c63430008130033

Deployed Bytecode Sourcemap

4902:7141:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6693:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5302:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7767:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4958:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6160:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8213:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5089:117;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6020:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6665:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6243:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5613:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;879:94;;;;;;;;;;;;;:::i;:::-;;5388:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11836:198;;;;;;;;;;;;;:::i;:::-;;656:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5212:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7590:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8525:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6485:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8643:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6289:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5474:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6201:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;981:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6093:60;6148:5;6059:27;6133:20;;;;:::i;:::-;6093:60;:::o;6693:36::-;;;;;;;;;;;;;:::o;5302:80::-;5350:13;5374:5;;;;;;;;;;;;;;;;;5367:12;;5302:80;:::o;7767:161::-;7844:4;7861:37;7870:10;7882:7;7891:6;7861:8;:37::i;:::-;7916:4;7909:11;;7767:161;;;;:::o;4958:125::-;5013:7;5044:1;6059:27;5028:17;5024:36;;5049:8;;;5024:36;6059:27;5061:19;;4958:125;:::o;6160:34::-;6193:1;6160:34;:::o;8213:306::-;8313:4;8369:17;8334:11;:19;8346:6;8334:19;;;;;;;;;;;;;;;:31;8354:10;8334:31;;;;;;;;;;;;;;;;:52;8330:126;;8438:6;8403:11;:19;8415:6;8403:19;;;;;;;;;;;;;;;:31;8423:10;8403:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;8330:126;8475:36;8485:6;8493:9;8504:6;8475:9;:36::i;:::-;8468:43;;8213:306;;;;;:::o;5089:117::-;5141:5;5170:1;6059:27;5154:17;5150:36;;5175:8;;;5150:36;6656:2;5187:16;;5089:117;:::o;6020:66::-;6059:27;6020:66;:::o;6665:21::-;;;;;;;;;;;;;:::o;6243:39::-;6281:1;6243:39;:::o;5613:117::-;5679:7;5706;:16;5714:7;5706:16;;;;;;;;;;;;;;;;5699:23;;5613:117;;;:::o;879:94::-;802:12;:10;:12::i;:::-;791:23;;:7;:5;:7::i;:::-;:23;;;783:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;944:21:::1;962:1;944:9;:21::i;:::-;879:94::o:0;5388:80::-;5440:7;5458;:5;:7::i;:::-;5451:14;;5388:80;:::o;11836:198::-;802:12;:10;:12::i;:::-;791:23;;:7;:5;:7::i;:::-;:23;;;783:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11904:16:::1;;;;;;;;;;;11903:17;11895:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;11982:4;11963:16;;:23;;;;;;;;;;;;;;;;;;12006:16;;;;;;;;;;11836:198::o:0;656:87::-;702:7;729:6;;;;;;;;;;;722:13;;656:87;:::o;5212:84::-;5262:13;5286:7;;;;;;;;;;;;;;;;;5279:14;;5212:84;:::o;7590:165::-;7668:4;7685:40;7695:10;7707:9;7718:6;7685:9;:40::i;:::-;;7743:4;7736:11;;7590:165;;;;:::o;8525:110::-;8588:4;8612:6;:15;8619:7;8612:15;;;;;;;;;;;;;;;;;;;;;;;;;8605:22;;8525:110;;;:::o;6485:27::-;;;;;;;;;;;;;:::o;8643:117::-;802:12;:10;:12::i;:::-;791:23;;:7;:5;:7::i;:::-;:23;;;783:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8745:7:::1;8727:6;:15;8734:7;8727:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;8643:117:::0;;:::o;6289:46::-;6331:4;6289:46;:::o;5474:133::-;5558:7;5576:11;:19;5588:6;5576:19;;;;;;;;;;;;;;;:28;5596:7;5576:28;;;;;;;;;;;;;;;;5569:35;;5474:133;;;;:::o;6201:35::-;6235:1;6201:35;:::o;981:192::-;802:12;:10;:12::i;:::-;791:23;;:7;:5;:7::i;:::-;:23;;;783:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1090:1:::1;1070:22;;:8;:22;;::::0;1062:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1146:19;1156:8;1146:9;:19::i;:::-;981:192:::0;:::o;7940:261::-;8053:1;8035:20;;:6;:20;;;8027:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;8117:1;8098:21;;:7;:21;;;8090:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;8187:6;8156:11;:19;8168:6;8156:19;;;;;;;;;;;;;;;:28;8176:7;8156:28;;;;;;;;;;;;;;;:37;;;;7940:261;;;:::o;9442:1034::-;9522:4;9539:12;9554:4;9539:19;;9591:1;9577:16;;:2;:16;;;9569:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9668:1;9652:18;;:4;:18;;;9644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9740:1;9731:6;:10;9723:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9804:25;9821:4;9826:2;9804:16;:25::i;:::-;9800:108;;;9854:16;;;;;;;;;;;9846:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9800:108;9925:17;9933:4;9939:2;9925:7;:17::i;:::-;:29;;;;;9948:6;;;;;;;;;;;9947:7;9925:29;9922:211;;;9971:28;10002:24;10020:4;10002:9;:24::i;:::-;9971:55;;6148:5;6059:27;6133:20;;;;:::i;:::-;10044;:37;10041:81;;10085:34;10098:20;10085:12;:34::i;:::-;10041:81;9956:177;9922:211;10149:6;:12;10156:4;10149:12;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;10165:6;:10;10172:2;10165:10;;;;;;;;;;;;;;;;;;;;;;;;;10149:26;10145:73;;;10201:5;10191:15;;10145:73;10247:6;10230:7;:13;10238:4;10230:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;10255:22;10281:7;10280:81;;10355:6;10280:81;;;10292:60;10302:4;10308:16;10315:4;10321:2;10308:6;:16::i;:::-;10326:17;10334:4;10340:2;10326:7;:17::i;:::-;10345:6;10292:9;:60::i;:::-;10280:81;10255:106;;10387:14;10372:7;:11;10380:2;10372:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;10423:2;10408:34;;10417:4;10408:34;;;10427:14;10408:34;;;;;;:::i;:::-;;;;;;;;10462:4;10455:11;;;;9442:1034;;;;;:::o;176:107::-;221:15;264:10;249:26;;176:107;:::o;1181:173::-;1237:16;1256:6;;;;;;;;;;;1237:25;;1282:8;1273:6;;:17;;;;;;;;;;;;;;;;;;1337:8;1306:40;;1327:8;1306:40;;;;;;;;;;;;1226:128;1181:173;:::o;8768:323::-;8843:4;8862:14;8886:7;:5;:7::i;:::-;8879:14;;:3;:14;;;;:45;;;;;8917:7;:5;:7::i;:::-;8910:14;;:3;:14;;;;8879:45;:70;;;;;8942:7;:5;:7::i;:::-;8928:21;;:10;:21;;;;8879:70;:105;;;;;8967:12;:17;8980:3;8967:17;;;;;;;;;;;;;;;;;;;;;;;;;8966:18;8879:105;:128;;;;;8990:12;:17;9003:3;8990:17;;;;;;;;;;;;;;;;;;;;;;;;;8989:18;8879:128;:149;;;;;9026:1;9011:17;;:3;:17;;;;8879:149;:173;;;;;9047:4;9032:20;;:3;:20;;;;8879:173;8862:190;;9074:9;9067:16;;;8768:323;;;;:::o;9268:165::-;9334:4;9352:13;9368:8;:13;9377:3;9368:13;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;9386:8;:13;9395:3;9386:13;;;;;;;;;;;;;;;;;;;;;;;;;9385:14;9368:31;9352:47;;9417:8;9410:15;;;9268:165;;;;:::o;11024:802::-;6808:4;6799:6;;:13;;;;;;;;;;;;;;;;;;11117:21:::1;11155:1;11141:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11117:40;;11186:4;11168;11173:1;11168:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11212:10;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11202:4;11207:1;11202:7;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;11297:17;11246:11;:26;11266:4;11246:26;;;;;;;;;;;;;;;:47;11281:10;;;;;;;;;;;11246:47;;;;;;;;;;;;;;;;:68;11242:168;;11381:17;11331:11;:26;11351:4;11331:26;;;;;;;;;;;;;;;:47;11366:10;;;;;;;;;;;11331:47;;;;;;;;;;;;;;;:67;;;;11242:168;11426:10;;;;;;;;;;;:61;;;11502:20;11537:1;11553:4;11580;11600:15;11426:200;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;11422:247;;11651:7;;;11422:247;11679:12;11731:1:::0;11707:21:::1;:25;11704:113;;;11748:16;;;;;;;;;;;:21;;11777;11805:5;11748:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11735:80;;;;;11704:113;11096:730;;6823:1;6844:5:::0;6835:6;;:14;;;;;;;;;;;;;;;;;;11024:802;:::o;9099:161::-;9164:4;9181:12;9197:8;:13;9206:3;9197:13;;;;;;;;;;;;;;;;;;;;;;;;;9196:14;:31;;;;;9214:8;:13;9223:3;9214:13;;;;;;;;;;;;;;;;;;;;;;;;;9196:31;9181:46;;9245:7;9238:14;;;9099:161;;;;:::o;10486:530::-;10578:7;10598:11;10624:5;10620:84;;;6193:1;10632:12;;10620:84;;;10656:6;10652:52;;;6235:1;10665:13;;10652:52;;;6281:1;10687:17;;10652:52;10620:84;10727:1;10720:3;:8;10716:28;;10738:6;10731:13;;;;;10716:28;10755:17;6331:4;10784:3;10775:6;:12;;;;:::i;:::-;:30;;;;:::i;:::-;10755:50;;10832:1;10820:9;:13;10816:157;;;10878:9;10852:7;:22;10868:4;10852:22;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;10930:4;10907:40;;10916:4;10907:40;;;10937:9;10907:40;;;;;;:::i;:::-;;;;;;;;10816:157;10999:9;10990:6;:18;;;;:::i;:::-;10983:25;;;;10486:530;;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:90::-;476:7;519:5;512:13;505:21;494:32;;442:90;;;:::o;538:109::-;619:21;634:5;619:21;:::i;:::-;614:3;607:34;538:109;;:::o;653:210::-;740:4;778:2;767:9;763:18;755:26;;791:65;853:1;842:9;838:17;829:6;791:65;:::i;:::-;653:210;;;;:::o;869:99::-;921:6;955:5;949:12;939:22;;869:99;;;:::o;974:169::-;1058:11;1092:6;1087:3;1080:19;1132:4;1127:3;1123:14;1108:29;;974:169;;;;:::o;1149:246::-;1230:1;1240:113;1254:6;1251:1;1248:13;1240:113;;;1339:1;1334:3;1330:11;1324:18;1320:1;1315:3;1311:11;1304:39;1276:2;1273:1;1269:10;1264:15;;1240:113;;;1387:1;1378:6;1373:3;1369:16;1362:27;1211:184;1149:246;;;:::o;1401:102::-;1442:6;1493:2;1489:7;1484:2;1477:5;1473:14;1469:28;1459:38;;1401:102;;;:::o;1509:377::-;1597:3;1625:39;1658:5;1625:39;:::i;:::-;1680:71;1744:6;1739:3;1680:71;:::i;:::-;1673:78;;1760:65;1818:6;1813:3;1806:4;1799:5;1795:16;1760:65;:::i;:::-;1850:29;1872:6;1850:29;:::i;:::-;1845:3;1841:39;1834:46;;1601:285;1509:377;;;;:::o;1892:313::-;2005:4;2043:2;2032:9;2028:18;2020:26;;2092:9;2086:4;2082:20;2078:1;2067:9;2063:17;2056:47;2120:78;2193:4;2184:6;2120:78;:::i;:::-;2112:86;;1892:313;;;;:::o;2292:117::-;2401:1;2398;2391:12;2538:126;2575:7;2615:42;2608:5;2604:54;2593:65;;2538:126;;;:::o;2670:96::-;2707:7;2736:24;2754:5;2736:24;:::i;:::-;2725:35;;2670:96;;;:::o;2772:122::-;2845:24;2863:5;2845:24;:::i;:::-;2838:5;2835:35;2825:63;;2884:1;2881;2874:12;2825:63;2772:122;:::o;2900:139::-;2946:5;2984:6;2971:20;2962:29;;3000:33;3027:5;3000:33;:::i;:::-;2900:139;;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:143::-;5953:9;5986:37;6017:5;5986:37;:::i;:::-;5973:50;;5886:143;;;:::o;6035:165::-;6139:54;6187:5;6139:54;:::i;:::-;6134:3;6127:67;6035:165;;:::o;6206:256::-;6316:4;6354:2;6343:9;6339:18;6331:26;;6367:88;6452:1;6441:9;6437:17;6428:6;6367:88;:::i;:::-;6206:256;;;;:::o;6468:116::-;6538:21;6553:5;6538:21;:::i;:::-;6531:5;6528:32;6518:60;;6574:1;6571;6564:12;6518:60;6468:116;:::o;6590:133::-;6633:5;6671:6;6658:20;6649:29;;6687:30;6711:5;6687:30;:::i;:::-;6590:133;;;;:::o;6729:468::-;6794:6;6802;6851:2;6839:9;6830:7;6826:23;6822:32;6819:119;;;6857:79;;:::i;:::-;6819:119;6977:1;7002:53;7047:7;7038:6;7027:9;7023:22;7002:53;:::i;:::-;6992:63;;6948:117;7104:2;7130:50;7172:7;7163:6;7152:9;7148:22;7130:50;:::i;:::-;7120:60;;7075:115;6729:468;;;;;:::o;7203:474::-;7271:6;7279;7328:2;7316:9;7307:7;7303:23;7299:32;7296:119;;;7334:79;;:::i;:::-;7296:119;7454:1;7479:53;7524:7;7515:6;7504:9;7500:22;7479:53;:::i;:::-;7469:63;;7425:117;7581:2;7607:53;7652:7;7643:6;7632:9;7628:22;7607:53;:::i;:::-;7597:63;;7552:118;7203:474;;;;;:::o;7683:180::-;7731:77;7728:1;7721:88;7828:4;7825:1;7818:15;7852:4;7849:1;7842:15;7869:180;7917:77;7914:1;7907:88;8014:4;8011:1;8004:15;8038:4;8035:1;8028:15;8055:185;8095:1;8112:20;8130:1;8112:20;:::i;:::-;8107:25;;8146:20;8164:1;8146:20;:::i;:::-;8141:25;;8185:1;8175:35;;8190:18;;:::i;:::-;8175:35;8232:1;8229;8225:9;8220:14;;8055:185;;;;:::o;8246:194::-;8286:4;8306:20;8324:1;8306:20;:::i;:::-;8301:25;;8340:20;8358:1;8340:20;:::i;:::-;8335:25;;8384:1;8381;8377:9;8369:17;;8408:1;8402:4;8399:11;8396:37;;;8413:18;;:::i;:::-;8396:37;8246:194;;;;:::o;8446:182::-;8586:34;8582:1;8574:6;8570:14;8563:58;8446:182;:::o;8634:366::-;8776:3;8797:67;8861:2;8856:3;8797:67;:::i;:::-;8790:74;;8873:93;8962:3;8873:93;:::i;:::-;8991:2;8986:3;8982:12;8975:19;;8634:366;;;:::o;9006:419::-;9172:4;9210:2;9199:9;9195:18;9187:26;;9259:9;9253:4;9249:20;9245:1;9234:9;9230:17;9223:47;9287:131;9413:4;9287:131;:::i;:::-;9279:139;;9006:419;;;:::o;9431:173::-;9571:25;9567:1;9559:6;9555:14;9548:49;9431:173;:::o;9610:366::-;9752:3;9773:67;9837:2;9832:3;9773:67;:::i;:::-;9766:74;;9849:93;9938:3;9849:93;:::i;:::-;9967:2;9962:3;9958:12;9951:19;;9610:366;;;:::o;9982:419::-;10148:4;10186:2;10175:9;10171:18;10163:26;;10235:9;10229:4;10225:20;10221:1;10210:9;10206:17;10199:47;10263:131;10389:4;10263:131;:::i;:::-;10255:139;;9982:419;;;:::o;10407:225::-;10547:34;10543:1;10535:6;10531:14;10524:58;10616:8;10611:2;10603:6;10599:15;10592:33;10407:225;:::o;10638:366::-;10780:3;10801:67;10865:2;10860:3;10801:67;:::i;:::-;10794:74;;10877:93;10966:3;10877:93;:::i;:::-;10995:2;10990:3;10986:12;10979:19;;10638:366;;;:::o;11010:419::-;11176:4;11214:2;11203:9;11199:18;11191:26;;11263:9;11257:4;11253:20;11249:1;11238:9;11234:17;11227:47;11291:131;11417:4;11291:131;:::i;:::-;11283:139;;11010:419;;;:::o;11435:169::-;11575:21;11571:1;11563:6;11559:14;11552:45;11435:169;:::o;11610:366::-;11752:3;11773:67;11837:2;11832:3;11773:67;:::i;:::-;11766:74;;11849:93;11938:3;11849:93;:::i;:::-;11967:2;11962:3;11958:12;11951:19;;11610:366;;;:::o;11982:419::-;12148:4;12186:2;12175:9;12171:18;12163:26;;12235:9;12229:4;12225:20;12221:1;12210:9;12206:17;12199:47;12263:131;12389:4;12263:131;:::i;:::-;12255:139;;11982:419;;;:::o;12407:222::-;12547:34;12543:1;12535:6;12531:14;12524:58;12616:5;12611:2;12603:6;12599:15;12592:30;12407:222;:::o;12635:366::-;12777:3;12798:67;12862:2;12857:3;12798:67;:::i;:::-;12791:74;;12874:93;12963:3;12874:93;:::i;:::-;12992:2;12987:3;12983:12;12976:19;;12635:366;;;:::o;13007:419::-;13173:4;13211:2;13200:9;13196:18;13188:26;;13260:9;13254:4;13250:20;13246:1;13235:9;13231:17;13224:47;13288:131;13414:4;13288:131;:::i;:::-;13280:139;;13007:419;;;:::o;13432:224::-;13572:34;13568:1;13560:6;13556:14;13549:58;13641:7;13636:2;13628:6;13624:15;13617:32;13432:224;:::o;13662:366::-;13804:3;13825:67;13889:2;13884:3;13825:67;:::i;:::-;13818:74;;13901:93;13990:3;13901:93;:::i;:::-;14019:2;14014:3;14010:12;14003:19;;13662:366;;;:::o;14034:419::-;14200:4;14238:2;14227:9;14223:18;14215:26;;14287:9;14281:4;14277:20;14273:1;14262:9;14258:17;14251:47;14315:131;14441:4;14315:131;:::i;:::-;14307:139;;14034:419;;;:::o;14459:228::-;14599:34;14595:1;14587:6;14583:14;14576:58;14668:11;14663:2;14655:6;14651:15;14644:36;14459:228;:::o;14693:366::-;14835:3;14856:67;14920:2;14915:3;14856:67;:::i;:::-;14849:74;;14932:93;15021:3;14932:93;:::i;:::-;15050:2;15045:3;15041:12;15034:19;;14693:366;;;:::o;15065:419::-;15231:4;15269:2;15258:9;15254:18;15246:26;;15318:9;15312:4;15308:20;15304:1;15293:9;15289:17;15282:47;15346:131;15472:4;15346:131;:::i;:::-;15338:139;;15065:419;;;:::o;15490:172::-;15630:24;15626:1;15618:6;15614:14;15607:48;15490:172;:::o;15668:366::-;15810:3;15831:67;15895:2;15890:3;15831:67;:::i;:::-;15824:74;;15907:93;15996:3;15907:93;:::i;:::-;16025:2;16020:3;16016:12;16009:19;;15668:366;;;:::o;16040:419::-;16206:4;16244:2;16233:9;16229:18;16221:26;;16293:9;16287:4;16283:20;16279:1;16268:9;16264:17;16257:47;16321:131;16447:4;16321:131;:::i;:::-;16313:139;;16040:419;;;:::o;16465:191::-;16505:3;16524:20;16542:1;16524:20;:::i;:::-;16519:25;;16558:20;16576:1;16558:20;:::i;:::-;16553:25;;16601:1;16598;16594:9;16587:16;;16622:3;16619:1;16616:10;16613:36;;;16629:18;;:::i;:::-;16613:36;16465:191;;;;:::o;16662:180::-;16710:77;16707:1;16700:88;16807:4;16804:1;16797:15;16831:4;16828:1;16821:15;16848:180;16896:77;16893:1;16886:88;16993:4;16990:1;16983:15;17017:4;17014:1;17007:15;17034:143;17091:5;17122:6;17116:13;17107:22;;17138:33;17165:5;17138:33;:::i;:::-;17034:143;;;;:::o;17183:351::-;17253:6;17302:2;17290:9;17281:7;17277:23;17273:32;17270:119;;;17308:79;;:::i;:::-;17270:119;17428:1;17453:64;17509:7;17500:6;17489:9;17485:22;17453:64;:::i;:::-;17443:74;;17399:128;17183:351;;;;:::o;17540:85::-;17585:7;17614:5;17603:16;;17540:85;;;:::o;17631:158::-;17689:9;17722:61;17740:42;17749:32;17775:5;17749:32;:::i;:::-;17740:42;:::i;:::-;17722:61;:::i;:::-;17709:74;;17631:158;;;:::o;17795:147::-;17890:45;17929:5;17890:45;:::i;:::-;17885:3;17878:58;17795:147;;:::o;17948:114::-;18015:6;18049:5;18043:12;18033:22;;17948:114;;;:::o;18068:184::-;18167:11;18201:6;18196:3;18189:19;18241:4;18236:3;18232:14;18217:29;;18068:184;;;;:::o;18258:132::-;18325:4;18348:3;18340:11;;18378:4;18373:3;18369:14;18361:22;;18258:132;;;:::o;18396:108::-;18473:24;18491:5;18473:24;:::i;:::-;18468:3;18461:37;18396:108;;:::o;18510:179::-;18579:10;18600:46;18642:3;18634:6;18600:46;:::i;:::-;18678:4;18673:3;18669:14;18655:28;;18510:179;;;;:::o;18695:113::-;18765:4;18797;18792:3;18788:14;18780:22;;18695:113;;;:::o;18844:732::-;18963:3;18992:54;19040:5;18992:54;:::i;:::-;19062:86;19141:6;19136:3;19062:86;:::i;:::-;19055:93;;19172:56;19222:5;19172:56;:::i;:::-;19251:7;19282:1;19267:284;19292:6;19289:1;19286:13;19267:284;;;19368:6;19362:13;19395:63;19454:3;19439:13;19395:63;:::i;:::-;19388:70;;19481:60;19534:6;19481:60;:::i;:::-;19471:70;;19327:224;19314:1;19311;19307:9;19302:14;;19267:284;;;19271:14;19567:3;19560:10;;18968:608;;;18844:732;;;;:::o;19582:831::-;19845:4;19883:3;19872:9;19868:19;19860:27;;19897:71;19965:1;19954:9;19950:17;19941:6;19897:71;:::i;:::-;19978:80;20054:2;20043:9;20039:18;20030:6;19978:80;:::i;:::-;20105:9;20099:4;20095:20;20090:2;20079:9;20075:18;20068:48;20133:108;20236:4;20227:6;20133:108;:::i;:::-;20125:116;;20251:72;20319:2;20308:9;20304:18;20295:6;20251:72;:::i;:::-;20333:73;20401:3;20390:9;20386:19;20377:6;20333:73;:::i;:::-;19582:831;;;;;;;;:::o;20419:147::-;20520:11;20557:3;20542:18;;20419:147;;;;:::o;20572:114::-;;:::o;20692:398::-;20851:3;20872:83;20953:1;20948:3;20872:83;:::i;:::-;20865:90;;20964:93;21053:3;20964:93;:::i;:::-;21082:1;21077:3;21073:11;21066:18;;20692:398;;;:::o;21096:379::-;21280:3;21302:147;21445:3;21302:147;:::i;:::-;21295:154;;21466:3;21459:10;;21096:379;;;:::o;21481:410::-;21521:7;21544:20;21562:1;21544:20;:::i;:::-;21539:25;;21578:20;21596:1;21578:20;:::i;:::-;21573:25;;21633:1;21630;21626:9;21655:30;21673:11;21655:30;:::i;:::-;21644:41;;21834:1;21825:7;21821:15;21818:1;21815:22;21795:1;21788:9;21768:83;21745:139;;21864:18;;:::i;:::-;21745:139;21529:362;21481:410;;;;:::o

Swarm Source

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