ETH Price: $2,916.95 (-3.74%)
Gas: 1 Gwei

Token

Univerz (UNIV)
 

Overview

Max Total Supply

1,000,000,000 UNIV

Holders

1,039 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,000 UNIV

Value
$0.00
0x1FEF500586a301D843A8049b6FEFB920b4888513
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

UNIV token served as utility and DAOance for Univerz DAO with 1 billion UNIV have been minted at genesis.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
UniverzToken

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
 *Submitted for verification at BscScan.com on 2023-02-26
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.16;

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

abstract contract Ownable {
    address private _owner;

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

    constructor() {
        _transferOwnership(msg.sender);
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract UniverzToken is IERC20Metadata, Ownable {
    event currentSalePhaseEvent(uint256 phaseNo);
    event percentDividerEvent(uint256 percentDivider);

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;
    IERC20Metadata public exchangeToken;

    string private _name;
    string private _symbol;

    uint256[4] salePhasesPercentages;
    uint256[4] public salePhasePrices;
    uint256[4] public minPurchaseAmount;
    uint256 public currentSalePhase;
    uint256 public soldTokens;
    uint256 public saleCounter;

    uint256 public percentDivider;
    bool public buyingPaused;

    constructor() {
        _name = "Univerz";
        _symbol = "UNIV";

        exchangeToken = IERC20Metadata(
            0xdAC17F958D2ee523a2206206994597C13D831ec7
        ); //USDT ADDRESS Ethereum Mainnet
        //https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7
        _mint(msg.sender, 800_000_000 * (10**decimals())); //80% of one billion to owner wallet
        _mint(address(this), 200_000_000 * (10**decimals())); //20% of one billion for the sale
        percentDivider = 100_00;
        salePhasesPercentages = [500, 500, 500, 500]; //5 percent each
        minPurchaseAmount = [
            5 * (10**exchangeToken.decimals()),
            10 * (10**exchangeToken.decimals()),
            15 * (10**exchangeToken.decimals()),
            25 * (10**exchangeToken.decimals())
        ]; //5 usdt, 10 usdt , 15 usdt , 25 usdt ;
        salePhasePrices = [5000, 10000, 15000, 25000]; // 0.005 , 0.010, 0.015 , 0.025
    }

    function buyToken(uint256 _payAmount) public {
        require(
            !buyingPaused,
            "The buying is currently paused. Can't buy at this moment"
        ); // For disabling sale feature for temporily!.
        require(
            soldTokens < (totalSupply() * 2000) / percentDivider ||
                currentSalePhase == 4,
            "Sale  is Over!"
        ); // To check that is sale of token is sold out or not
        require(
            _payAmount >= minPurchaseAmount[currentSalePhase],
            "You cannot buy minimum token than limit of phase"
        ); //Limit buy check . For example 5 usdt and 1000 token is minimum token of that phase

        uint256 _amountOfTokens = getTokenAmount(_payAmount);
        saleCounter += _amountOfTokens;
        soldTokens += _amountOfTokens;
        if (
            (
                (currentSalePhase == 3)
                    ? saleCounter >=
                        ((totalSupply() *
                            salePhasesPercentages[currentSalePhase]) /
                            percentDivider) -
                            1
                    : saleCounter >=
                        (totalSupply() *
                            salePhasesPercentages[currentSalePhase]) /
                            percentDivider
            ) && currentSalePhase < 4
        ) {
            currentSalePhase++;
            saleCounter = 0;
        }

        require(
            _amountOfTokens <=
                ((totalSupply() * salePhasesPercentages[currentSalePhase]) /
                    percentDivider) -
                    saleCounter,
            " You cannot buy that amountin current phase.Because tokens are is sold out.Try to decrease the amount"
        );

        bool transferFromstatus = exchangeToken.transferFrom(
            msg.sender,
            address(this),
            _payAmount
        );
        require(
            transferFromstatus,
            "Token Buy Failed due to  exchange token transfer failed"
        );

        bool transferStatus = this.transfer(msg.sender, _amountOfTokens);
        require(transferStatus, "Token Buy Failed");
    }

    function currentPresaleSoldPercentage()
        external
        view
        returns (uint256 _percentage)
    {
        _percentage =
            (saleCounter * percentDivider * 100) /
            ((totalSupply() * salePhasesPercentages[currentSalePhase]) /
                percentDivider);
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        address sender = msg.sender;
        _approve(sender, spender, allowance(sender, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        address sender = msg.sender;
        uint256 currentAllowance = allowance(sender, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(sender, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;

            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _approve(
        address sender,
        address spender,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    function _spendAllowance(
        address sender,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(sender, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(sender, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function getTokenAmount(uint256 _amount) public view returns (uint256) {
        return (_amount * 1e18) / salePhasePrices[currentSalePhase];
    }

    /** 
     To increase or decrease the price and change phase according to
     situation of market. like it acts as failsafe feature 
     **/

    function changeSalePhase(uint256 _phaseNo) external onlyOwner {
        require(_phaseNo >= 4, "Cannot be greater than four phases");
        currentSalePhase = _phaseNo;
        emit currentSalePhaseEvent(currentSalePhase);
    }

    /** 
     To pause tokenSale  according to
     situation. like it acts as failsafe feature 
     **/

    function pauseOrUnpauseBuying(bool _pause) external onlyOwner {
        buyingPaused = _pause;
    }

    function setSalePhasesPercentages(
        uint256[4] memory _percentages,
        uint256 _percentDivider
    ) external onlyOwner {
        salePhasesPercentages = _percentages;
        percentDivider = _percentDivider;
        emit percentDividerEvent(percentDivider);
    }

    function setMinAmountofPurchase(uint256[4] memory _minPurchaseAmount)
        external
        onlyOwner
    {
        minPurchaseAmount = _minPurchaseAmount;
    }

    /** 
        Used to withdraw stuck tokens from contract 
     **/

    function withdrawStuckToken(IERC20Metadata _token, uint256 _amount)
        external
        onlyOwner
    {
        bool transferStatus = _token.transfer(msg.sender, _amount);
        require(transferStatus, "Token Transfer Failed");
    }

    function withdrawReceivedTokensBySale() external onlyOwner {
        bool transferStatus = exchangeToken.transfer(
            msg.sender,
            exchangeToken.balanceOf(address(this))
        );
        require(transferStatus, "Token Transfer Failed");
    }

    function changeExchangeToken(IERC20Metadata _token) external onlyOwner {
        exchangeToken = _token;
    }
}

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":[{"indexed":false,"internalType":"uint256","name":"phaseNo","type":"uint256"}],"name":"currentSalePhaseEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percentDivider","type":"uint256"}],"name":"percentDividerEvent","type":"event"},{"inputs":[{"internalType":"address","name":"sender","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":[{"internalType":"uint256","name":"_payAmount","type":"uint256"}],"name":"buyToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyingPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20Metadata","name":"_token","type":"address"}],"name":"changeExchangeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_phaseNo","type":"uint256"}],"name":"changeSalePhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentPresaleSoldPercentage","outputs":[{"internalType":"uint256","name":"_percentage","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentSalePhase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exchangeToken","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"minPurchaseAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_pause","type":"bool"}],"name":"pauseOrUnpauseBuying","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"salePhasePrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[4]","name":"_minPurchaseAmount","type":"uint256[4]"}],"name":"setMinAmountofPurchase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[4]","name":"_percentages","type":"uint256[4]"},{"internalType":"uint256","name":"_percentDivider","type":"uint256"}],"name":"setSalePhasesPercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"soldTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":"withdrawReceivedTokensBySale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20Metadata","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5062000023336200051d60201b60201c565b6040518060400160405280600781526020017f556e697665727a000000000000000000000000000000000000000000000000008152506005908162000069919062000a8b565b506040518060400160405280600481526020017f554e49560000000000000000000000000000000000000000000000000000000081525060069081620000b0919062000a8b565b5073dac17f958d2ee523a2206206994597c13d831ec7600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000146336200011b620005e160201b60201c565b600a62000129919062000d02565b632faf08006200013a919062000d53565b620005ea60201b60201c565b62000186306200015b620005e160201b60201c565b600a62000169919062000d02565b630bebc2006200017a919062000d53565b620005ea60201b60201c565b61271060168190555060405180608001604052806101f461ffff1681526020016101f461ffff1681526020016101f461ffff1681526020016101f461ffff168152506007906004620001da92919062000762565b506040518060800160405280600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027a919062000dea565b600a62000288919062000d02565b600562000296919062000d53565b8152602001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000309573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032f919062000dea565b600a6200033d919062000d02565b600a6200034b919062000d53565b8152602001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e4919062000dea565b600a620003f2919062000d02565b600f62000400919062000d53565b8152602001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000473573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000499919062000dea565b600a620004a7919062000d02565b6019620004b5919062000d53565b815250600f906004620004ca929190620007ad565b50604051806080016040528061138861ffff16815260200161271061ffff168152602001613a9861ffff1681526020016161a861ffff16815250600b9060046200051692919062000762565b5062000f08565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200065c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006539062000e7d565b60405180910390fd5b62000670600083836200075860201b60201c565b806003600082825462000684919062000e9f565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000738919062000eeb565b60405180910390a362000754600083836200075d60201b60201c565b5050565b505050565b505050565b82600481019282156200079a579160200282015b8281111562000799578251829061ffff1690559160200191906001019062000776565b5b509050620007a99190620007f2565b5090565b8260048101928215620007df579160200282015b82811115620007de578251825591602001919060010190620007c1565b5b509050620007ee9190620007f2565b5090565b5b808211156200080d576000816000905550600101620007f3565b5090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200089357607f821691505b602082108103620008a957620008a86200084b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008d4565b6200091f8683620008d4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200096c62000966620009608462000937565b62000941565b62000937565b9050919050565b6000819050919050565b62000988836200094b565b620009a0620009978262000973565b848454620008e1565b825550505050565b600090565b620009b7620009a8565b620009c48184846200097d565b505050565b5b81811015620009ec57620009e0600082620009ad565b600181019050620009ca565b5050565b601f82111562000a3b5762000a0581620008af565b62000a1084620008c4565b8101602085101562000a20578190505b62000a3862000a2f85620008c4565b830182620009c9565b50505b505050565b600082821c905092915050565b600062000a606000198460080262000a40565b1980831691505092915050565b600062000a7b838362000a4d565b9150826002028217905092915050565b62000a968262000811565b67ffffffffffffffff81111562000ab25762000ab16200081c565b5b62000abe82546200087a565b62000acb828285620009f0565b600060209050601f83116001811462000b03576000841562000aee578287015190505b62000afa858262000a6d565b86555062000b6a565b601f19841662000b1386620008af565b60005b8281101562000b3d5784890151825560018201915060208501945060208101905062000b16565b8683101562000b5d578489015162000b59601f89168262000a4d565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c005780860481111562000bd85762000bd762000b72565b5b600185161562000be85780820291505b808102905062000bf88562000ba1565b945062000bb8565b94509492505050565b60008262000c1b576001905062000cee565b8162000c2b576000905062000cee565b816001811462000c44576002811462000c4f5762000c85565b600191505062000cee565b60ff84111562000c645762000c6362000b72565b5b8360020a91508482111562000c7e5762000c7d62000b72565b5b5062000cee565b5060208310610133831016604e8410600b841016171562000cbf5782820a90508381111562000cb95762000cb862000b72565b5b62000cee565b62000cce848484600162000bae565b9250905081840481111562000ce85762000ce762000b72565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d0f8262000937565b915062000d1c8362000cf5565b925062000d4b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c09565b905092915050565b600062000d608262000937565b915062000d6d8362000937565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000da95762000da862000b72565b5b828202905092915050565b600080fd5b62000dc48162000cf5565b811462000dd057600080fd5b50565b60008151905062000de48162000db9565b92915050565b60006020828403121562000e035762000e0262000db4565b5b600062000e138482850162000dd3565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e65601f8362000e1c565b915062000e728262000e2d565b602082019050919050565b6000602082019050818103600083015262000e988162000e56565b9050919050565b600062000eac8262000937565b915062000eb98362000937565b925082820190508082111562000ed45762000ed362000b72565b5b92915050565b62000ee58162000937565b82525050565b600060208201905062000f02600083018462000eda565b92915050565b612ca38062000f186000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063715018a61161010f578063bd8f0e7e116100a2578063f14fe81b11610071578063f14fe81b146105a9578063f2fde38b146105d9578063f53da97e146105f5578063fe6f1b0514610613576101f0565b8063bd8f0e7e14610511578063c2507ac11461052d578063d750ca751461055d578063dd62ed3e14610579576101f0565b8063a25eb5d9116100de578063a25eb5d914610463578063a457c2d714610481578063a9059cbb146104b1578063b6588047146104e1576101f0565b8063715018a6146103ff5780638da5cb5b1461040957806395d89b4114610427578063979db7cf14610445576101f0565b80632d296bf11161018757806343056d781161015657806343056d7814610377578063523ee8da146103935780635ed9ebfc146103b157806370a08231146103cf576101f0565b80632d296bf1146102f1578063313ce5671461030d578063395093511461032b57806341d70de21461035b576101f0565b806311fa3bc5116101c357806311fa3bc51461027d57806318160ddd1461028757806323b872dd146102a55780632d243471146102d5576101f0565b80630387b0a2146101f557806306fdde0314610213578063095ea7b3146102315780630c506e9614610261575b600080fd5b6101fd610631565b60405161020a91906119d6565b60405180910390f35b61021b610637565b6040516102289190611a81565b60405180910390f35b61024b60048036038101906102469190611b3c565b6106c9565b6040516102589190611b97565b60405180910390f35b61027b60048036038101906102769190611bf0565b6106e5565b005b6102856107b4565b005b61028f61093e565b60405161029c91906119d6565b60405180910390f35b6102bf60048036038101906102ba9190611c30565b610948565b6040516102cc9190611b97565b60405180910390f35b6102ef60048036038101906102ea9190611caf565b610970565b005b61030b60048036038101906103069190611cdc565b610995565b005b610315610dec565b6040516103229190611d25565b60405180910390f35b61034560048036038101906103409190611b3c565b610df5565b6040516103529190611b97565b60405180910390f35b61037560048036038101906103709190611e76565b610e25565b005b610391600480360381019061038c9190611cdc565b610e83565b005b61039b610f12565b6040516103a89190611b97565b60405180910390f35b6103b9610f25565b6040516103c691906119d6565b60405180910390f35b6103e960048036038101906103e49190611eb6565b610f2b565b6040516103f691906119d6565b60405180910390f35b610407610f74565b005b610411610f88565b60405161041e9190611ef2565b60405180910390f35b61042f610fb1565b60405161043c9190611a81565b60405180910390f35b61044d611043565b60405161045a91906119d6565b60405180910390f35b61046b6110a7565b6040516104789190611f6c565b60405180910390f35b61049b60048036038101906104969190611b3c565b6110cd565b6040516104a89190611b97565b60405180910390f35b6104cb60048036038101906104c69190611b3c565b61113d565b6040516104d89190611b97565b60405180910390f35b6104fb60048036038101906104f69190611cdc565b611159565b60405161050891906119d6565b60405180910390f35b61052b60048036038101906105269190611f87565b611174565b005b61054760048036038101906105429190611cdc565b611191565b60405161055491906119d6565b60405180910390f35b61057760048036038101906105729190611fb4565b6111d0565b005b610593600480360381019061058e9190611fe1565b61121c565b6040516105a091906119d6565b60405180910390f35b6105c360048036038101906105be9190611cdc565b6112a3565b6040516105d091906119d6565b60405180910390f35b6105f360048036038101906105ee9190611eb6565b6112be565b005b6105fd611341565b60405161060a91906119d6565b60405180910390f35b61061b611347565b60405161062891906119d6565b60405180910390f35b60155481565b60606005805461064690612050565b80601f016020809104026020016040519081016040528092919081815260200182805461067290612050565b80156106bf5780601f10610694576101008083540402835291602001916106bf565b820191906000526020600020905b8154815290600101906020018083116106a257829003601f168201915b5050505050905090565b6000803390506106da81858561134d565b600191505092915050565b6106ed611516565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161072a929190612081565b6020604051808303816000875af1158015610749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076d91906120bf565b9050806107af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a690612138565b60405180910390fd5b505050565b6107bc611516565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108589190611ef2565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610899919061216d565b6040518363ffffffff1660e01b81526004016108b6929190612081565b6020604051808303816000875af11580156108d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f991906120bf565b90508061093b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093290612138565b60405180910390fd5b50565b6000600354905090565b60008033905061095985828561158d565b610964858585611619565b60019150509392505050565b610978611516565b80601760006101000a81548160ff02191690831515021790555050565b601760009054906101000a900460ff16156109e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dc9061220c565b60405180910390fd5b6016546107d06109f361093e565b6109fd919061225b565b610a0791906122e4565b6014541080610a1857506004601354145b610a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4e90612361565b60405180910390fd5b600f60135460048110610a6d57610a6c612381565b5b0154811015610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa890612422565b60405180910390fd5b6000610abc82611191565b90508060156000828254610ad09190612442565b925050819055508060146000828254610ae99190612442565b92505081905550600360135414610b3b57601654600760135460048110610b1357610b12612381565b5b0154610b1d61093e565b610b27919061225b565b610b3191906122e4565b6015541015610b84565b6001601654600760135460048110610b5657610b55612381565b5b0154610b6061093e565b610b6a919061225b565b610b7491906122e4565b610b7e9190612476565b60155410155b8015610b9257506004601354105b15610bb85760136000815480929190610baa906124aa565b919050555060006015819055505b601554601654600760135460048110610bd457610bd3612381565b5b0154610bde61093e565b610be8919061225b565b610bf291906122e4565b610bfc9190612476565b811115610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c35906125b0565b60405180910390fd5b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401610c9f939291906125d0565b6020604051808303816000875af1158015610cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce291906120bf565b905080610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90612679565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401610d61929190612081565b6020604051808303816000875af1158015610d80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da491906120bf565b905080610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd906126e5565b60405180910390fd5b50505050565b60006012905090565b600080339050610e1a818585610e0b858961121c565b610e159190612442565b61134d565b600191505092915050565b610e2d611516565b816007906004610e3e929190611960565b50806016819055507f50c48eacd5a8f0763dfd8f37c5e339e63bca802e82c5ffc750248f52c15c0c46601654604051610e7791906119d6565b60405180910390a15050565b610e8b611516565b6004811015610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec690612777565b60405180910390fd5b806013819055507f9b7b09eb1d4c09f83522700009d703fe218e0c0b3855bf76cb9fc48f9ce715b7601354604051610f0791906119d6565b60405180910390a150565b601760009054906101000a900460ff1681565b60145481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f7c611516565b610f866000611892565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610fc090612050565b80601f0160208091040260200160405190810160405280929190818152602001828054610fec90612050565b80156110395780601f1061100e57610100808354040283529160200191611039565b820191906000526020600020905b81548152906001019060200180831161101c57829003601f168201915b5050505050905090565b600060165460076013546004811061105e5761105d612381565b5b015461106861093e565b611072919061225b565b61107c91906122e4565b606460165460155461108e919061225b565b611098919061225b565b6110a291906122e4565b905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008033905060006110df828661121c565b905083811015611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90612809565b60405180910390fd5b611131828686840361134d565b60019250505092915050565b60008033905061114e818585611619565b600191505092915050565b600b816004811061116957600080fd5b016000915090505481565b61117c611516565b80600f90600461118d929190611960565b5050565b6000600b601354600481106111a9576111a8612381565b5b0154670de0b6b3a7640000836111bf919061225b565b6111c991906122e4565b9050919050565b6111d8611516565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f81600481106112b357600080fd5b016000915090505481565b6112c6611516565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c9061289b565b60405180910390fd5b61133e81611892565b50565b60135481565b60165481565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b39061292d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361142b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611422906129bf565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161150991906119d6565b60405180910390a3505050565b3373ffffffffffffffffffffffffffffffffffffffff16611535610f88565b73ffffffffffffffffffffffffffffffffffffffff161461158b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158290612a2b565b60405180910390fd5b565b6000611599848461121c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116135781811015611605576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fc90612a97565b60405180910390fd5b611612848484840361134d565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167f90612b29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90612bbb565b60405180910390fd5b611702838383611956565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178090612c4d565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161187991906119d6565b60405180910390a361188c84848461195b565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b826004810192821561198f579160200282015b8281111561198e578251825591602001919060010190611973565b5b50905061199c91906119a0565b5090565b5b808211156119b95760008160009055506001016119a1565b5090565b6000819050919050565b6119d0816119bd565b82525050565b60006020820190506119eb60008301846119c7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611a2b578082015181840152602081019050611a10565b60008484015250505050565b6000601f19601f8301169050919050565b6000611a53826119f1565b611a5d81856119fc565b9350611a6d818560208601611a0d565b611a7681611a37565b840191505092915050565b60006020820190508181036000830152611a9b8184611a48565b905092915050565b6000604051905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611add82611ab2565b9050919050565b611aed81611ad2565b8114611af857600080fd5b50565b600081359050611b0a81611ae4565b92915050565b611b19816119bd565b8114611b2457600080fd5b50565b600081359050611b3681611b10565b92915050565b60008060408385031215611b5357611b52611aad565b5b6000611b6185828601611afb565b9250506020611b7285828601611b27565b9150509250929050565b60008115159050919050565b611b9181611b7c565b82525050565b6000602082019050611bac6000830184611b88565b92915050565b6000611bbd82611ad2565b9050919050565b611bcd81611bb2565b8114611bd857600080fd5b50565b600081359050611bea81611bc4565b92915050565b60008060408385031215611c0757611c06611aad565b5b6000611c1585828601611bdb565b9250506020611c2685828601611b27565b9150509250929050565b600080600060608486031215611c4957611c48611aad565b5b6000611c5786828701611afb565b9350506020611c6886828701611afb565b9250506040611c7986828701611b27565b9150509250925092565b611c8c81611b7c565b8114611c9757600080fd5b50565b600081359050611ca981611c83565b92915050565b600060208284031215611cc557611cc4611aad565b5b6000611cd384828501611c9a565b91505092915050565b600060208284031215611cf257611cf1611aad565b5b6000611d0084828501611b27565b91505092915050565b600060ff82169050919050565b611d1f81611d09565b82525050565b6000602082019050611d3a6000830184611d16565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611d7d82611a37565b810181811067ffffffffffffffff82111715611d9c57611d9b611d45565b5b80604052505050565b6000611daf611aa3565b9050611dbb8282611d74565b919050565b600067ffffffffffffffff821115611ddb57611dda611d45565b5b602082029050919050565b600080fd5b6000611dfe611df984611dc0565b611da5565b90508060208402830185811115611e1857611e17611de6565b5b835b81811015611e415780611e2d8882611b27565b845260208401935050602081019050611e1a565b5050509392505050565b600082601f830112611e6057611e5f611d40565b5b6004611e6d848285611deb565b91505092915050565b60008060a08385031215611e8d57611e8c611aad565b5b6000611e9b85828601611e4b565b9250506080611eac85828601611b27565b9150509250929050565b600060208284031215611ecc57611ecb611aad565b5b6000611eda84828501611afb565b91505092915050565b611eec81611ad2565b82525050565b6000602082019050611f076000830184611ee3565b92915050565b6000819050919050565b6000611f32611f2d611f2884611ab2565b611f0d565b611ab2565b9050919050565b6000611f4482611f17565b9050919050565b6000611f5682611f39565b9050919050565b611f6681611f4b565b82525050565b6000602082019050611f816000830184611f5d565b92915050565b600060808284031215611f9d57611f9c611aad565b5b6000611fab84828501611e4b565b91505092915050565b600060208284031215611fca57611fc9611aad565b5b6000611fd884828501611bdb565b91505092915050565b60008060408385031215611ff857611ff7611aad565b5b600061200685828601611afb565b925050602061201785828601611afb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061206857607f821691505b60208210810361207b5761207a612021565b5b50919050565b60006040820190506120966000830185611ee3565b6120a360208301846119c7565b9392505050565b6000815190506120b981611c83565b92915050565b6000602082840312156120d5576120d4611aad565b5b60006120e3848285016120aa565b91505092915050565b7f546f6b656e205472616e73666572204661696c65640000000000000000000000600082015250565b60006121226015836119fc565b915061212d826120ec565b602082019050919050565b6000602082019050818103600083015261215181612115565b9050919050565b60008151905061216781611b10565b92915050565b60006020828403121561218357612182611aad565b5b600061219184828501612158565b91505092915050565b7f54686520627579696e672069732063757272656e746c79207061757365642e2060008201527f43616e2774206275792061742074686973206d6f6d656e740000000000000000602082015250565b60006121f66038836119fc565b91506122018261219a565b604082019050919050565b60006020820190508181036000830152612225816121e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612266826119bd565b9150612271836119bd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156122aa576122a961222c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006122ef826119bd565b91506122fa836119bd565b92508261230a576123096122b5565b5b828204905092915050565b7f53616c6520206973204f76657221000000000000000000000000000000000000600082015250565b600061234b600e836119fc565b915061235682612315565b602082019050919050565b6000602082019050818103600083015261237a8161233e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f596f752063616e6e6f7420627579206d696e696d756d20746f6b656e2074686160008201527f6e206c696d6974206f6620706861736500000000000000000000000000000000602082015250565b600061240c6030836119fc565b9150612417826123b0565b604082019050919050565b6000602082019050818103600083015261243b816123ff565b9050919050565b600061244d826119bd565b9150612458836119bd565b92508282019050808211156124705761246f61222c565b5b92915050565b6000612481826119bd565b915061248c836119bd565b92508282039050818111156124a4576124a361222c565b5b92915050565b60006124b5826119bd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124e7576124e661222c565b5b600182019050919050565b7f20596f752063616e6e6f7420627579207468617420616d6f756e74696e20637560008201527f7272656e742070686173652e4265636175736520746f6b656e7320617265206960208201527f7320736f6c64206f75742e54727920746f20646563726561736520746865206160408201527f6d6f756e74000000000000000000000000000000000000000000000000000000606082015250565b600061259a6065836119fc565b91506125a5826124f2565b608082019050919050565b600060208201905081810360008301526125c98161258d565b9050919050565b60006060820190506125e56000830186611ee3565b6125f26020830185611ee3565b6125ff60408301846119c7565b949350505050565b7f546f6b656e20427579204661696c65642064756520746f202065786368616e6760008201527f6520746f6b656e207472616e73666572206661696c6564000000000000000000602082015250565b60006126636037836119fc565b915061266e82612607565b604082019050919050565b6000602082019050818103600083015261269281612656565b9050919050565b7f546f6b656e20427579204661696c656400000000000000000000000000000000600082015250565b60006126cf6010836119fc565b91506126da82612699565b602082019050919050565b600060208201905081810360008301526126fe816126c2565b9050919050565b7f43616e6e6f742062652067726561746572207468616e20666f7572207068617360008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b60006127616022836119fc565b915061276c82612705565b604082019050919050565b6000602082019050818103600083015261279081612754565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006127f36025836119fc565b91506127fe82612797565b604082019050919050565b60006020820190508181036000830152612822816127e6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006128856026836119fc565b915061289082612829565b604082019050919050565b600060208201905081810360008301526128b481612878565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129176024836119fc565b9150612922826128bb565b604082019050919050565b600060208201905081810360008301526129468161290a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006129a96022836119fc565b91506129b48261294d565b604082019050919050565b600060208201905081810360008301526129d88161299c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a156020836119fc565b9150612a20826129df565b602082019050919050565b60006020820190508181036000830152612a4481612a08565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612a81601d836119fc565b9150612a8c82612a4b565b602082019050919050565b60006020820190508181036000830152612ab081612a74565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b136025836119fc565b9150612b1e82612ab7565b604082019050919050565b60006020820190508181036000830152612b4281612b06565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ba56023836119fc565b9150612bb082612b49565b604082019050919050565b60006020820190508181036000830152612bd481612b98565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612c376026836119fc565b9150612c4282612bdb565b604082019050919050565b60006020820190508181036000830152612c6681612c2a565b905091905056fea264697066735822122094899b25b4976540f373b9dd336ea705312e1bc62060317db5fdd77284bd861464736f6c63430008100033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063715018a61161010f578063bd8f0e7e116100a2578063f14fe81b11610071578063f14fe81b146105a9578063f2fde38b146105d9578063f53da97e146105f5578063fe6f1b0514610613576101f0565b8063bd8f0e7e14610511578063c2507ac11461052d578063d750ca751461055d578063dd62ed3e14610579576101f0565b8063a25eb5d9116100de578063a25eb5d914610463578063a457c2d714610481578063a9059cbb146104b1578063b6588047146104e1576101f0565b8063715018a6146103ff5780638da5cb5b1461040957806395d89b4114610427578063979db7cf14610445576101f0565b80632d296bf11161018757806343056d781161015657806343056d7814610377578063523ee8da146103935780635ed9ebfc146103b157806370a08231146103cf576101f0565b80632d296bf1146102f1578063313ce5671461030d578063395093511461032b57806341d70de21461035b576101f0565b806311fa3bc5116101c357806311fa3bc51461027d57806318160ddd1461028757806323b872dd146102a55780632d243471146102d5576101f0565b80630387b0a2146101f557806306fdde0314610213578063095ea7b3146102315780630c506e9614610261575b600080fd5b6101fd610631565b60405161020a91906119d6565b60405180910390f35b61021b610637565b6040516102289190611a81565b60405180910390f35b61024b60048036038101906102469190611b3c565b6106c9565b6040516102589190611b97565b60405180910390f35b61027b60048036038101906102769190611bf0565b6106e5565b005b6102856107b4565b005b61028f61093e565b60405161029c91906119d6565b60405180910390f35b6102bf60048036038101906102ba9190611c30565b610948565b6040516102cc9190611b97565b60405180910390f35b6102ef60048036038101906102ea9190611caf565b610970565b005b61030b60048036038101906103069190611cdc565b610995565b005b610315610dec565b6040516103229190611d25565b60405180910390f35b61034560048036038101906103409190611b3c565b610df5565b6040516103529190611b97565b60405180910390f35b61037560048036038101906103709190611e76565b610e25565b005b610391600480360381019061038c9190611cdc565b610e83565b005b61039b610f12565b6040516103a89190611b97565b60405180910390f35b6103b9610f25565b6040516103c691906119d6565b60405180910390f35b6103e960048036038101906103e49190611eb6565b610f2b565b6040516103f691906119d6565b60405180910390f35b610407610f74565b005b610411610f88565b60405161041e9190611ef2565b60405180910390f35b61042f610fb1565b60405161043c9190611a81565b60405180910390f35b61044d611043565b60405161045a91906119d6565b60405180910390f35b61046b6110a7565b6040516104789190611f6c565b60405180910390f35b61049b60048036038101906104969190611b3c565b6110cd565b6040516104a89190611b97565b60405180910390f35b6104cb60048036038101906104c69190611b3c565b61113d565b6040516104d89190611b97565b60405180910390f35b6104fb60048036038101906104f69190611cdc565b611159565b60405161050891906119d6565b60405180910390f35b61052b60048036038101906105269190611f87565b611174565b005b61054760048036038101906105429190611cdc565b611191565b60405161055491906119d6565b60405180910390f35b61057760048036038101906105729190611fb4565b6111d0565b005b610593600480360381019061058e9190611fe1565b61121c565b6040516105a091906119d6565b60405180910390f35b6105c360048036038101906105be9190611cdc565b6112a3565b6040516105d091906119d6565b60405180910390f35b6105f360048036038101906105ee9190611eb6565b6112be565b005b6105fd611341565b60405161060a91906119d6565b60405180910390f35b61061b611347565b60405161062891906119d6565b60405180910390f35b60155481565b60606005805461064690612050565b80601f016020809104026020016040519081016040528092919081815260200182805461067290612050565b80156106bf5780601f10610694576101008083540402835291602001916106bf565b820191906000526020600020905b8154815290600101906020018083116106a257829003601f168201915b5050505050905090565b6000803390506106da81858561134d565b600191505092915050565b6106ed611516565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161072a929190612081565b6020604051808303816000875af1158015610749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076d91906120bf565b9050806107af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a690612138565b60405180910390fd5b505050565b6107bc611516565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108589190611ef2565b602060405180830381865afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610899919061216d565b6040518363ffffffff1660e01b81526004016108b6929190612081565b6020604051808303816000875af11580156108d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f991906120bf565b90508061093b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093290612138565b60405180910390fd5b50565b6000600354905090565b60008033905061095985828561158d565b610964858585611619565b60019150509392505050565b610978611516565b80601760006101000a81548160ff02191690831515021790555050565b601760009054906101000a900460ff16156109e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dc9061220c565b60405180910390fd5b6016546107d06109f361093e565b6109fd919061225b565b610a0791906122e4565b6014541080610a1857506004601354145b610a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4e90612361565b60405180910390fd5b600f60135460048110610a6d57610a6c612381565b5b0154811015610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa890612422565b60405180910390fd5b6000610abc82611191565b90508060156000828254610ad09190612442565b925050819055508060146000828254610ae99190612442565b92505081905550600360135414610b3b57601654600760135460048110610b1357610b12612381565b5b0154610b1d61093e565b610b27919061225b565b610b3191906122e4565b6015541015610b84565b6001601654600760135460048110610b5657610b55612381565b5b0154610b6061093e565b610b6a919061225b565b610b7491906122e4565b610b7e9190612476565b60155410155b8015610b9257506004601354105b15610bb85760136000815480929190610baa906124aa565b919050555060006015819055505b601554601654600760135460048110610bd457610bd3612381565b5b0154610bde61093e565b610be8919061225b565b610bf291906122e4565b610bfc9190612476565b811115610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c35906125b0565b60405180910390fd5b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401610c9f939291906125d0565b6020604051808303816000875af1158015610cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce291906120bf565b905080610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90612679565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401610d61929190612081565b6020604051808303816000875af1158015610d80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da491906120bf565b905080610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd906126e5565b60405180910390fd5b50505050565b60006012905090565b600080339050610e1a818585610e0b858961121c565b610e159190612442565b61134d565b600191505092915050565b610e2d611516565b816007906004610e3e929190611960565b50806016819055507f50c48eacd5a8f0763dfd8f37c5e339e63bca802e82c5ffc750248f52c15c0c46601654604051610e7791906119d6565b60405180910390a15050565b610e8b611516565b6004811015610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec690612777565b60405180910390fd5b806013819055507f9b7b09eb1d4c09f83522700009d703fe218e0c0b3855bf76cb9fc48f9ce715b7601354604051610f0791906119d6565b60405180910390a150565b601760009054906101000a900460ff1681565b60145481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f7c611516565b610f866000611892565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610fc090612050565b80601f0160208091040260200160405190810160405280929190818152602001828054610fec90612050565b80156110395780601f1061100e57610100808354040283529160200191611039565b820191906000526020600020905b81548152906001019060200180831161101c57829003601f168201915b5050505050905090565b600060165460076013546004811061105e5761105d612381565b5b015461106861093e565b611072919061225b565b61107c91906122e4565b606460165460155461108e919061225b565b611098919061225b565b6110a291906122e4565b905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008033905060006110df828661121c565b905083811015611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90612809565b60405180910390fd5b611131828686840361134d565b60019250505092915050565b60008033905061114e818585611619565b600191505092915050565b600b816004811061116957600080fd5b016000915090505481565b61117c611516565b80600f90600461118d929190611960565b5050565b6000600b601354600481106111a9576111a8612381565b5b0154670de0b6b3a7640000836111bf919061225b565b6111c991906122e4565b9050919050565b6111d8611516565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f81600481106112b357600080fd5b016000915090505481565b6112c6611516565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c9061289b565b60405180910390fd5b61133e81611892565b50565b60135481565b60165481565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b39061292d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361142b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611422906129bf565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161150991906119d6565b60405180910390a3505050565b3373ffffffffffffffffffffffffffffffffffffffff16611535610f88565b73ffffffffffffffffffffffffffffffffffffffff161461158b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158290612a2b565b60405180910390fd5b565b6000611599848461121c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116135781811015611605576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fc90612a97565b60405180910390fd5b611612848484840361134d565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167f90612b29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90612bbb565b60405180910390fd5b611702838383611956565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178090612c4d565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161187991906119d6565b60405180910390a361188c84848461195b565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b826004810192821561198f579160200282015b8281111561198e578251825591602001919060010190611973565b5b50905061199c91906119a0565b5090565b5b808211156119b95760008160009055506001016119a1565b5090565b6000819050919050565b6119d0816119bd565b82525050565b60006020820190506119eb60008301846119c7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611a2b578082015181840152602081019050611a10565b60008484015250505050565b6000601f19601f8301169050919050565b6000611a53826119f1565b611a5d81856119fc565b9350611a6d818560208601611a0d565b611a7681611a37565b840191505092915050565b60006020820190508181036000830152611a9b8184611a48565b905092915050565b6000604051905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611add82611ab2565b9050919050565b611aed81611ad2565b8114611af857600080fd5b50565b600081359050611b0a81611ae4565b92915050565b611b19816119bd565b8114611b2457600080fd5b50565b600081359050611b3681611b10565b92915050565b60008060408385031215611b5357611b52611aad565b5b6000611b6185828601611afb565b9250506020611b7285828601611b27565b9150509250929050565b60008115159050919050565b611b9181611b7c565b82525050565b6000602082019050611bac6000830184611b88565b92915050565b6000611bbd82611ad2565b9050919050565b611bcd81611bb2565b8114611bd857600080fd5b50565b600081359050611bea81611bc4565b92915050565b60008060408385031215611c0757611c06611aad565b5b6000611c1585828601611bdb565b9250506020611c2685828601611b27565b9150509250929050565b600080600060608486031215611c4957611c48611aad565b5b6000611c5786828701611afb565b9350506020611c6886828701611afb565b9250506040611c7986828701611b27565b9150509250925092565b611c8c81611b7c565b8114611c9757600080fd5b50565b600081359050611ca981611c83565b92915050565b600060208284031215611cc557611cc4611aad565b5b6000611cd384828501611c9a565b91505092915050565b600060208284031215611cf257611cf1611aad565b5b6000611d0084828501611b27565b91505092915050565b600060ff82169050919050565b611d1f81611d09565b82525050565b6000602082019050611d3a6000830184611d16565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611d7d82611a37565b810181811067ffffffffffffffff82111715611d9c57611d9b611d45565b5b80604052505050565b6000611daf611aa3565b9050611dbb8282611d74565b919050565b600067ffffffffffffffff821115611ddb57611dda611d45565b5b602082029050919050565b600080fd5b6000611dfe611df984611dc0565b611da5565b90508060208402830185811115611e1857611e17611de6565b5b835b81811015611e415780611e2d8882611b27565b845260208401935050602081019050611e1a565b5050509392505050565b600082601f830112611e6057611e5f611d40565b5b6004611e6d848285611deb565b91505092915050565b60008060a08385031215611e8d57611e8c611aad565b5b6000611e9b85828601611e4b565b9250506080611eac85828601611b27565b9150509250929050565b600060208284031215611ecc57611ecb611aad565b5b6000611eda84828501611afb565b91505092915050565b611eec81611ad2565b82525050565b6000602082019050611f076000830184611ee3565b92915050565b6000819050919050565b6000611f32611f2d611f2884611ab2565b611f0d565b611ab2565b9050919050565b6000611f4482611f17565b9050919050565b6000611f5682611f39565b9050919050565b611f6681611f4b565b82525050565b6000602082019050611f816000830184611f5d565b92915050565b600060808284031215611f9d57611f9c611aad565b5b6000611fab84828501611e4b565b91505092915050565b600060208284031215611fca57611fc9611aad565b5b6000611fd884828501611bdb565b91505092915050565b60008060408385031215611ff857611ff7611aad565b5b600061200685828601611afb565b925050602061201785828601611afb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061206857607f821691505b60208210810361207b5761207a612021565b5b50919050565b60006040820190506120966000830185611ee3565b6120a360208301846119c7565b9392505050565b6000815190506120b981611c83565b92915050565b6000602082840312156120d5576120d4611aad565b5b60006120e3848285016120aa565b91505092915050565b7f546f6b656e205472616e73666572204661696c65640000000000000000000000600082015250565b60006121226015836119fc565b915061212d826120ec565b602082019050919050565b6000602082019050818103600083015261215181612115565b9050919050565b60008151905061216781611b10565b92915050565b60006020828403121561218357612182611aad565b5b600061219184828501612158565b91505092915050565b7f54686520627579696e672069732063757272656e746c79207061757365642e2060008201527f43616e2774206275792061742074686973206d6f6d656e740000000000000000602082015250565b60006121f66038836119fc565b91506122018261219a565b604082019050919050565b60006020820190508181036000830152612225816121e9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612266826119bd565b9150612271836119bd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156122aa576122a961222c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006122ef826119bd565b91506122fa836119bd565b92508261230a576123096122b5565b5b828204905092915050565b7f53616c6520206973204f76657221000000000000000000000000000000000000600082015250565b600061234b600e836119fc565b915061235682612315565b602082019050919050565b6000602082019050818103600083015261237a8161233e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f596f752063616e6e6f7420627579206d696e696d756d20746f6b656e2074686160008201527f6e206c696d6974206f6620706861736500000000000000000000000000000000602082015250565b600061240c6030836119fc565b9150612417826123b0565b604082019050919050565b6000602082019050818103600083015261243b816123ff565b9050919050565b600061244d826119bd565b9150612458836119bd565b92508282019050808211156124705761246f61222c565b5b92915050565b6000612481826119bd565b915061248c836119bd565b92508282039050818111156124a4576124a361222c565b5b92915050565b60006124b5826119bd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124e7576124e661222c565b5b600182019050919050565b7f20596f752063616e6e6f7420627579207468617420616d6f756e74696e20637560008201527f7272656e742070686173652e4265636175736520746f6b656e7320617265206960208201527f7320736f6c64206f75742e54727920746f20646563726561736520746865206160408201527f6d6f756e74000000000000000000000000000000000000000000000000000000606082015250565b600061259a6065836119fc565b91506125a5826124f2565b608082019050919050565b600060208201905081810360008301526125c98161258d565b9050919050565b60006060820190506125e56000830186611ee3565b6125f26020830185611ee3565b6125ff60408301846119c7565b949350505050565b7f546f6b656e20427579204661696c65642064756520746f202065786368616e6760008201527f6520746f6b656e207472616e73666572206661696c6564000000000000000000602082015250565b60006126636037836119fc565b915061266e82612607565b604082019050919050565b6000602082019050818103600083015261269281612656565b9050919050565b7f546f6b656e20427579204661696c656400000000000000000000000000000000600082015250565b60006126cf6010836119fc565b91506126da82612699565b602082019050919050565b600060208201905081810360008301526126fe816126c2565b9050919050565b7f43616e6e6f742062652067726561746572207468616e20666f7572207068617360008201527f6573000000000000000000000000000000000000000000000000000000000000602082015250565b60006127616022836119fc565b915061276c82612705565b604082019050919050565b6000602082019050818103600083015261279081612754565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006127f36025836119fc565b91506127fe82612797565b604082019050919050565b60006020820190508181036000830152612822816127e6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006128856026836119fc565b915061289082612829565b604082019050919050565b600060208201905081810360008301526128b481612878565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129176024836119fc565b9150612922826128bb565b604082019050919050565b600060208201905081810360008301526129468161290a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006129a96022836119fc565b91506129b48261294d565b604082019050919050565b600060208201905081810360008301526129d88161299c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a156020836119fc565b9150612a20826129df565b602082019050919050565b60006020820190508181036000830152612a4481612a08565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612a81601d836119fc565b9150612a8c82612a4b565b602082019050919050565b60006020820190508181036000830152612ab081612a74565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b136025836119fc565b9150612b1e82612ab7565b604082019050919050565b60006020820190508181036000830152612b4281612b06565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ba56023836119fc565b9150612bb082612b49565b604082019050919050565b60006020820190508181036000830152612bd481612b98565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612c376026836119fc565b9150612c4282612bdb565b604082019050919050565b60006020820190508181036000830152612c6681612c2a565b905091905056fea264697066735822122094899b25b4976540f373b9dd336ea705312e1bc62060317db5fdd77284bd861464736f6c63430008100033

Deployed Bytecode Sourcemap

2238:11083:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6480:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7559:246;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12674;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12928:270;;;:::i;:::-;;6801:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7813:293;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12019:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3943:2214;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6700:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8114:271;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12129:284;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11665:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2932:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2829:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6917:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1683:103;;;:::i;:::-;;1450:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6588:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6165:307;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2568:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8393:506;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7102:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2709:33;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12421:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11355:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13206:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7348:203;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2749:35;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1794:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2791:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2896:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2861:26;;;;:::o;6480:100::-;6534:13;6567:5;6560:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6480:100;:::o;7559:246::-;7678:4;7700:16;7719:10;7700:29;;7740:35;7749:8;7759:7;7768:6;7740:8;:35::i;:::-;7793:4;7786:11;;;7559:246;;;;:::o;12674:::-;1409:13;:11;:13::i;:::-;12795:19:::1;12817:6;:15;;;12833:10;12845:7;12817:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12795:58;;12872:14;12864:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12784:136;12674:246:::0;;:::o;12928:270::-;1409:13;:11;:13::i;:::-;12998:19:::1;13020:13;;;;;;;;;;;:22;;;13057:10;13082:13;;;;;;;;;;;:23;;;13114:4;13082:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13020:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12998:133;;13150:14;13142:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12987:211;12928:270::o:0;6801:108::-;6862:7;6889:12;;6882:19;;6801:108;:::o;7813:293::-;7944:4;7961:15;7979:10;7961:28;;8000:38;8016:4;8022:7;8031:6;8000:15;:38::i;:::-;8049:27;8059:4;8065:2;8069:6;8049:9;:27::i;:::-;8094:4;8087:11;;;7813:293;;;;;:::o;12019:102::-;1409:13;:11;:13::i;:::-;12107:6:::1;12092:12;;:21;;;;;;;;;;;;;;;;;;12019:102:::0;:::o;3943:2214::-;4022:12;;;;;;;;;;;4021:13;3999:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;4235:14;;4227:4;4211:13;:11;:13::i;:::-;:20;;;;:::i;:::-;4210:39;;;;:::i;:::-;4197:10;;:52;:94;;;;4290:1;4270:16;;:21;4197:94;4175:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;4433:17;4451:16;;4433:35;;;;;;;:::i;:::-;;;;4419:10;:49;;4397:147;;;;;;;;;;;;:::i;:::-;;;;;;;;;4642:23;4668:26;4683:10;4668:14;:26::i;:::-;4642:52;;4720:15;4705:11;;:30;;;;;;;:::i;:::-;;;;;;;;4760:15;4746:10;;:29;;;;;;;:::i;:::-;;;;;;;;4844:1;4824:16;;:21;4823:450;;5259:14;;5187:21;5209:16;;5187:39;;;;;;;:::i;:::-;;;;5142:13;:11;:13::i;:::-;:84;;;;:::i;:::-;5141:132;;;;:::i;:::-;5101:11;;:172;;4823:450;;;5076:1;5029:14;;4957:21;4979:16;;4957:39;;;;;;;:::i;:::-;;;;4912:13;:11;:13::i;:::-;:84;;;;:::i;:::-;4911:132;;;;:::i;:::-;4910:167;;;;:::i;:::-;4870:11;;:207;;4823:450;4804:508;;;;;5311:1;5292:16;;:20;4804:508;4786:613;;;5339:16;;:18;;;;;;;;;:::i;:::-;;;;;;5386:1;5372:11;:15;;;;4786:613;5590:11;;5551:14;;5487:21;5509:16;;5487:39;;;;;;;:::i;:::-;;;;5471:13;:11;:13::i;:::-;:55;;;;:::i;:::-;5470:95;;;;:::i;:::-;5469:132;;;;:::i;:::-;5433:15;:168;;5411:319;;;;;;;;;;;;:::i;:::-;;;;;;;;;5743:23;5769:13;;;;;;;;;;;:26;;;5810:10;5843:4;5863:10;5769:115;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5743:141;;5917:18;5895:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;6031:19;6053:4;:13;;;6067:10;6079:15;6053:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6031:64;;6114:14;6106:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;3988:2169;;;3943:2214;:::o;6700:93::-;6758:5;6783:2;6776:9;;6700:93;:::o;8114:271::-;8229:4;8251:14;8268:10;8251:27;;8289:66;8298:6;8306:7;8344:10;8315:26;8325:6;8333:7;8315:9;:26::i;:::-;:39;;;;:::i;:::-;8289:8;:66::i;:::-;8373:4;8366:11;;;8114:271;;;;:::o;12129:284::-;1409:13;:11;:13::i;:::-;12299:12:::1;12275:21;:36;;;;;;;:::i;:::-;;12339:15;12322:14;:32;;;;12370:35;12390:14;;12370:35;;;;;;:::i;:::-;;;;;;;;12129:284:::0;;:::o;11665:234::-;1409:13;:11;:13::i;:::-;11758:1:::1;11746:8;:13;;11738:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11828:8;11809:16;:27;;;;11852:39;11874:16;;11852:39;;;;;;:::i;:::-;;;;;;;;11665:234:::0;:::o;2932:24::-;;;;;;;;;;;;;:::o;2829:25::-;;;;:::o;6917:177::-;7036:7;7068:9;:18;7078:7;7068:18;;;;;;;;;;;;;;;;7061:25;;6917:177;;;:::o;1683:103::-;1409:13;:11;:13::i;:::-;1748:30:::1;1775:1;1748:18;:30::i;:::-;1683:103::o:0;1450:87::-;1496:7;1523:6;;;;;;;;;;;1516:13;;1450:87;:::o;6588:104::-;6644:13;6677:7;6670:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6588:104;:::o;6165:307::-;6255:19;6449:14;;6389:21;6411:16;;6389:39;;;;;;;:::i;:::-;;;;6373:13;:11;:13::i;:::-;:55;;;;:::i;:::-;6372:91;;;;:::i;:::-;6351:3;6334:14;;6320:11;;:28;;;;:::i;:::-;:34;;;;:::i;:::-;6319:145;;;;:::i;:::-;6292:172;;6165:307;:::o;2568:35::-;;;;;;;;;;;;;:::o;8393:506::-;8513:4;8535:14;8552:10;8535:27;;8573:24;8600:26;8610:6;8618:7;8600:9;:26::i;:::-;8573:53;;8679:15;8659:16;:35;;8637:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;8795:61;8804:6;8812:7;8840:15;8821:16;:34;8795:8;:61::i;:::-;8887:4;8880:11;;;;8393:506;;;;:::o;7102:238::-;7217:4;7239:16;7258:10;7239:29;;7279:31;7289:8;7299:2;7303:6;7279:9;:31::i;:::-;7328:4;7321:11;;;7102:238;;;;:::o;2709:33::-;;;;;;;;;;;;;;;;;;;;:::o;12421:169::-;1409:13;:11;:13::i;:::-;12564:18:::1;12544:17;:38;;;;;;;:::i;:::-;;12421:169:::0;:::o;11355:149::-;11417:7;11463:15;11479:16;;11463:33;;;;;;;:::i;:::-;;;;11455:4;11445:7;:14;;;;:::i;:::-;11444:52;;;;:::i;:::-;11437:59;;11355:149;;;:::o;13206:112::-;1409:13;:11;:13::i;:::-;13304:6:::1;13288:13;;:22;;;;;;;;;;;;;;;;;;13206:112:::0;:::o;7348:203::-;7483:7;7515:11;:19;7527:6;7515:19;;;;;;;;;;;;;;;:28;7535:7;7515:28;;;;;;;;;;;;;;;;7508:35;;7348:203;;;;:::o;2749:35::-;;;;;;;;;;;;;;;;;;;;:::o;1794:238::-;1409:13;:11;:13::i;:::-;1917:1:::1;1897:22;;:8;:22;;::::0;1875:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1996:28;2015:8;1996:18;:28::i;:::-;1794:238:::0;:::o;2791:31::-;;;;:::o;2896:29::-;;;;:::o;10185:384::-;10340:1;10322:20;;:6;:20;;;10314:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10421:1;10402:21;;:7;:21;;;10394:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10506:6;10475:11;:19;10487:6;10475:19;;;;;;;;;;;;;;;:28;10495:7;10475:28;;;;;;;;;;;;;;;:37;;;;10545:7;10528:33;;10537:6;10528:33;;;10554:6;10528:33;;;;;;:::i;:::-;;;;;;;;10185:384;;;:::o;1545:130::-;1620:10;1609:21;;:7;:5;:7::i;:::-;:21;;;1601:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1545:130::o;10577:505::-;10713:24;10740:26;10750:6;10758:7;10740:9;:26::i;:::-;10713:53;;10801:17;10781:16;:37;10777:298;;10881:6;10861:16;:26;;10835:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;10996:52;11005:6;11013:7;11041:6;11022:16;:25;10996:8;:52::i;:::-;10777:298;10702:380;10577:505;;;:::o;8907:714::-;9054:1;9038:18;;:4;:18;;;9030:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9131:1;9117:16;;:2;:16;;;9109:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9186:38;9207:4;9213:2;9217:6;9186:20;:38::i;:::-;9237:19;9259:9;:15;9269:4;9259:15;;;;;;;;;;;;;;;;9237:37;;9322:6;9307:11;:21;;9285:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;9462:6;9448:11;:20;9430:9;:15;9440:4;9430:15;;;;;;;;;;;;;;;:38;;;;9502:6;9485:9;:13;9495:2;9485:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;9552:2;9537:26;;9546:4;9537:26;;;9556:6;9537:26;;;;;;:::i;:::-;;;;;;;;9576:37;9596:4;9602:2;9606:6;9576:19;:37::i;:::-;9019:602;8907:714;;;:::o;2040:191::-;2114:16;2133:6;;;;;;;;;;;2114:25;;2159:8;2150:6;;:17;;;;;;;;;;;;;;;;;;2214:8;2183:40;;2204:8;2183:40;;;;;;;;;;;;2103:128;2040:191;:::o;11090:125::-;;;;:::o;11223:124::-;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:117::-;3856:7;3885:24;3903:5;3885:24;:::i;:::-;3874:35;;3798:117;;;:::o;3921:164::-;4015:45;4054:5;4015:45;:::i;:::-;4008:5;4005:56;3995:84;;4075:1;4072;4065:12;3995:84;3921:164;:::o;4091:181::-;4158:5;4196:6;4183:20;4174:29;;4212:54;4260:5;4212:54;:::i;:::-;4091:181;;;;:::o;4278:516::-;4367:6;4375;4424:2;4412:9;4403:7;4399:23;4395:32;4392:119;;;4430:79;;:::i;:::-;4392:119;4550:1;4575:74;4641:7;4632:6;4621:9;4617:22;4575:74;:::i;:::-;4565:84;;4521:138;4698:2;4724:53;4769:7;4760:6;4749:9;4745:22;4724:53;:::i;:::-;4714:63;;4669:118;4278:516;;;;;:::o;4800:619::-;4877:6;4885;4893;4942:2;4930:9;4921:7;4917:23;4913:32;4910:119;;;4948:79;;:::i;:::-;4910:119;5068:1;5093:53;5138:7;5129:6;5118:9;5114:22;5093:53;:::i;:::-;5083:63;;5039:117;5195:2;5221:53;5266:7;5257:6;5246:9;5242:22;5221:53;:::i;:::-;5211:63;;5166:118;5323:2;5349:53;5394:7;5385:6;5374:9;5370:22;5349:53;:::i;:::-;5339:63;;5294:118;4800:619;;;;;:::o;5425:116::-;5495:21;5510:5;5495:21;:::i;:::-;5488:5;5485:32;5475:60;;5531:1;5528;5521:12;5475:60;5425:116;:::o;5547:133::-;5590:5;5628:6;5615:20;5606:29;;5644:30;5668:5;5644:30;:::i;:::-;5547:133;;;;:::o;5686:323::-;5742:6;5791:2;5779:9;5770:7;5766:23;5762:32;5759:119;;;5797:79;;:::i;:::-;5759:119;5917:1;5942:50;5984:7;5975:6;5964:9;5960:22;5942:50;:::i;:::-;5932:60;;5888:114;5686:323;;;;:::o;6015:329::-;6074:6;6123:2;6111:9;6102:7;6098:23;6094:32;6091:119;;;6129:79;;:::i;:::-;6091:119;6249:1;6274:53;6319:7;6310:6;6299:9;6295:22;6274:53;:::i;:::-;6264:63;;6220:117;6015:329;;;;:::o;6350:86::-;6385:7;6425:4;6418:5;6414:16;6403:27;;6350:86;;;:::o;6442:112::-;6525:22;6541:5;6525:22;:::i;:::-;6520:3;6513:35;6442:112;;:::o;6560:214::-;6649:4;6687:2;6676:9;6672:18;6664:26;;6700:67;6764:1;6753:9;6749:17;6740:6;6700:67;:::i;:::-;6560:214;;;;:::o;6780:117::-;6889:1;6886;6879:12;6903:180;6951:77;6948:1;6941:88;7048:4;7045:1;7038:15;7072:4;7069:1;7062:15;7089:281;7172:27;7194:4;7172:27;:::i;:::-;7164:6;7160:40;7302:6;7290:10;7287:22;7266:18;7254:10;7251:34;7248:62;7245:88;;;7313:18;;:::i;:::-;7245:88;7353:10;7349:2;7342:22;7132:238;7089:281;;:::o;7376:129::-;7410:6;7437:20;;:::i;:::-;7427:30;;7466:33;7494:4;7486:6;7466:33;:::i;:::-;7376:129;;;:::o;7511:249::-;7586:4;7676:18;7668:6;7665:30;7662:56;;;7698:18;;:::i;:::-;7662:56;7748:4;7740:6;7736:17;7728:25;;7511:249;;;:::o;7766:117::-;7875:1;7872;7865:12;7907:643;8001:5;8026:79;8042:62;8097:6;8042:62;:::i;:::-;8026:79;:::i;:::-;8017:88;;8125:5;8178:4;8170:6;8166:17;8158:6;8154:30;8207:3;8199:6;8196:15;8193:122;;;8226:79;;:::i;:::-;8193:122;8341:6;8324:220;8358:6;8353:3;8350:15;8324:220;;;8433:3;8462:37;8495:3;8483:10;8462:37;:::i;:::-;8457:3;8450:50;8529:4;8524:3;8520:14;8513:21;;8400:144;8384:4;8379:3;8375:14;8368:21;;8324:220;;;8328:21;8007:543;;7907:643;;;;;:::o;8574:339::-;8643:5;8692:3;8685:4;8677:6;8673:17;8669:27;8659:122;;8700:79;;:::i;:::-;8659:122;8804:4;8826:81;8903:3;8895:6;8887;8826:81;:::i;:::-;8817:90;;8649:264;8574:339;;;;:::o;8919:522::-;9010:6;9018;9067:3;9055:9;9046:7;9042:23;9038:33;9035:120;;;9074:79;;:::i;:::-;9035:120;9194:1;9219:76;9287:7;9278:6;9267:9;9263:22;9219:76;:::i;:::-;9209:86;;9165:140;9344:3;9371:53;9416:7;9407:6;9396:9;9392:22;9371:53;:::i;:::-;9361:63;;9315:119;8919:522;;;;;:::o;9447:329::-;9506:6;9555:2;9543:9;9534:7;9530:23;9526:32;9523:119;;;9561:79;;:::i;:::-;9523:119;9681:1;9706:53;9751:7;9742:6;9731:9;9727:22;9706:53;:::i;:::-;9696:63;;9652:117;9447:329;;;;:::o;9782:118::-;9869:24;9887:5;9869:24;:::i;:::-;9864:3;9857:37;9782:118;;:::o;9906:222::-;9999:4;10037:2;10026:9;10022:18;10014:26;;10050:71;10118:1;10107:9;10103:17;10094:6;10050:71;:::i;:::-;9906:222;;;;:::o;10134:60::-;10162:3;10183:5;10176:12;;10134:60;;;:::o;10200:142::-;10250:9;10283:53;10301:34;10310:24;10328:5;10310:24;:::i;:::-;10301:34;:::i;:::-;10283:53;:::i;:::-;10270:66;;10200:142;;;:::o;10348:126::-;10398:9;10431:37;10462:5;10431:37;:::i;:::-;10418:50;;10348:126;;;:::o;10480:147::-;10551:9;10584:37;10615:5;10584:37;:::i;:::-;10571:50;;10480:147;;;:::o;10633:173::-;10741:58;10793:5;10741:58;:::i;:::-;10736:3;10729:71;10633:173;;:::o;10812:264::-;10926:4;10964:2;10953:9;10949:18;10941:26;;10977:92;11066:1;11055:9;11051:17;11042:6;10977:92;:::i;:::-;10812:264;;;;:::o;11082:376::-;11164:6;11213:3;11201:9;11192:7;11188:23;11184:33;11181:120;;;11220:79;;:::i;:::-;11181:120;11340:1;11365:76;11433:7;11424:6;11413:9;11409:22;11365:76;:::i;:::-;11355:86;;11311:140;11082:376;;;;:::o;11464:371::-;11544:6;11593:2;11581:9;11572:7;11568:23;11564:32;11561:119;;;11599:79;;:::i;:::-;11561:119;11719:1;11744:74;11810:7;11801:6;11790:9;11786:22;11744:74;:::i;:::-;11734:84;;11690:138;11464:371;;;;:::o;11841:474::-;11909:6;11917;11966:2;11954:9;11945:7;11941:23;11937:32;11934:119;;;11972:79;;:::i;:::-;11934:119;12092:1;12117:53;12162:7;12153:6;12142:9;12138:22;12117:53;:::i;:::-;12107:63;;12063:117;12219:2;12245:53;12290:7;12281:6;12270:9;12266:22;12245:53;:::i;:::-;12235:63;;12190:118;11841:474;;;;;:::o;12321:180::-;12369:77;12366:1;12359:88;12466:4;12463:1;12456:15;12490:4;12487:1;12480:15;12507:320;12551:6;12588:1;12582:4;12578:12;12568:22;;12635:1;12629:4;12625:12;12656:18;12646:81;;12712:4;12704:6;12700:17;12690:27;;12646:81;12774:2;12766:6;12763:14;12743:18;12740:38;12737:84;;12793:18;;:::i;:::-;12737:84;12558:269;12507:320;;;:::o;12833:332::-;12954:4;12992:2;12981:9;12977:18;12969:26;;13005:71;13073:1;13062:9;13058:17;13049:6;13005:71;:::i;:::-;13086:72;13154:2;13143:9;13139:18;13130:6;13086:72;:::i;:::-;12833:332;;;;;:::o;13171:137::-;13225:5;13256:6;13250:13;13241:22;;13272:30;13296:5;13272:30;:::i;:::-;13171:137;;;;:::o;13314:345::-;13381:6;13430:2;13418:9;13409:7;13405:23;13401:32;13398:119;;;13436:79;;:::i;:::-;13398:119;13556:1;13581:61;13634:7;13625:6;13614:9;13610:22;13581:61;:::i;:::-;13571:71;;13527:125;13314:345;;;;:::o;13665:171::-;13805:23;13801:1;13793:6;13789:14;13782:47;13665:171;:::o;13842:366::-;13984:3;14005:67;14069:2;14064:3;14005:67;:::i;:::-;13998:74;;14081:93;14170:3;14081:93;:::i;:::-;14199:2;14194:3;14190:12;14183:19;;13842:366;;;:::o;14214:419::-;14380:4;14418:2;14407:9;14403:18;14395:26;;14467:9;14461:4;14457:20;14453:1;14442:9;14438:17;14431:47;14495:131;14621:4;14495:131;:::i;:::-;14487:139;;14214:419;;;:::o;14639:143::-;14696:5;14727:6;14721:13;14712:22;;14743:33;14770:5;14743:33;:::i;:::-;14639:143;;;;:::o;14788:351::-;14858:6;14907:2;14895:9;14886:7;14882:23;14878:32;14875:119;;;14913:79;;:::i;:::-;14875:119;15033:1;15058:64;15114:7;15105:6;15094:9;15090:22;15058:64;:::i;:::-;15048:74;;15004:128;14788:351;;;;:::o;15145:243::-;15285:34;15281:1;15273:6;15269:14;15262:58;15354:26;15349:2;15341:6;15337:15;15330:51;15145:243;:::o;15394:366::-;15536:3;15557:67;15621:2;15616:3;15557:67;:::i;:::-;15550:74;;15633:93;15722:3;15633:93;:::i;:::-;15751:2;15746:3;15742:12;15735:19;;15394:366;;;:::o;15766:419::-;15932:4;15970:2;15959:9;15955:18;15947:26;;16019:9;16013:4;16009:20;16005:1;15994:9;15990:17;15983:47;16047:131;16173:4;16047:131;:::i;:::-;16039:139;;15766:419;;;:::o;16191:180::-;16239:77;16236:1;16229:88;16336:4;16333:1;16326:15;16360:4;16357:1;16350:15;16377:348;16417:7;16440:20;16458:1;16440:20;:::i;:::-;16435:25;;16474:20;16492:1;16474:20;:::i;:::-;16469:25;;16662:1;16594:66;16590:74;16587:1;16584:81;16579:1;16572:9;16565:17;16561:105;16558:131;;;16669:18;;:::i;:::-;16558:131;16717:1;16714;16710:9;16699:20;;16377:348;;;;:::o;16731:180::-;16779:77;16776:1;16769:88;16876:4;16873:1;16866:15;16900:4;16897:1;16890:15;16917:185;16957:1;16974:20;16992:1;16974:20;:::i;:::-;16969:25;;17008:20;17026:1;17008:20;:::i;:::-;17003:25;;17047:1;17037:35;;17052:18;;:::i;:::-;17037:35;17094:1;17091;17087:9;17082:14;;16917:185;;;;:::o;17108:164::-;17248:16;17244:1;17236:6;17232:14;17225:40;17108:164;:::o;17278:366::-;17420:3;17441:67;17505:2;17500:3;17441:67;:::i;:::-;17434:74;;17517:93;17606:3;17517:93;:::i;:::-;17635:2;17630:3;17626:12;17619:19;;17278:366;;;:::o;17650:419::-;17816:4;17854:2;17843:9;17839:18;17831:26;;17903:9;17897:4;17893:20;17889:1;17878:9;17874:17;17867:47;17931:131;18057:4;17931:131;:::i;:::-;17923:139;;17650:419;;;:::o;18075:180::-;18123:77;18120:1;18113:88;18220:4;18217:1;18210:15;18244:4;18241:1;18234:15;18261:235;18401:34;18397:1;18389:6;18385:14;18378:58;18470:18;18465:2;18457:6;18453:15;18446:43;18261:235;:::o;18502:366::-;18644:3;18665:67;18729:2;18724:3;18665:67;:::i;:::-;18658:74;;18741:93;18830:3;18741:93;:::i;:::-;18859:2;18854:3;18850:12;18843:19;;18502:366;;;:::o;18874:419::-;19040:4;19078:2;19067:9;19063:18;19055:26;;19127:9;19121:4;19117:20;19113:1;19102:9;19098:17;19091:47;19155:131;19281:4;19155:131;:::i;:::-;19147:139;;18874:419;;;:::o;19299:191::-;19339:3;19358:20;19376:1;19358:20;:::i;:::-;19353:25;;19392:20;19410:1;19392:20;:::i;:::-;19387:25;;19435:1;19432;19428:9;19421:16;;19456:3;19453:1;19450:10;19447:36;;;19463:18;;:::i;:::-;19447:36;19299:191;;;;:::o;19496:194::-;19536:4;19556:20;19574:1;19556:20;:::i;:::-;19551:25;;19590:20;19608:1;19590:20;:::i;:::-;19585:25;;19634:1;19631;19627:9;19619:17;;19658:1;19652:4;19649:11;19646:37;;;19663:18;;:::i;:::-;19646:37;19496:194;;;;:::o;19696:233::-;19735:3;19758:24;19776:5;19758:24;:::i;:::-;19749:33;;19804:66;19797:5;19794:77;19791:103;;19874:18;;:::i;:::-;19791:103;19921:1;19914:5;19910:13;19903:20;;19696:233;;;:::o;19935:362::-;20075:34;20071:1;20063:6;20059:14;20052:58;20144:34;20139:2;20131:6;20127:15;20120:59;20213:34;20208:2;20200:6;20196:15;20189:59;20282:7;20277:2;20269:6;20265:15;20258:32;19935:362;:::o;20303:368::-;20445:3;20466:68;20530:3;20525;20466:68;:::i;:::-;20459:75;;20543:93;20632:3;20543:93;:::i;:::-;20661:3;20656;20652:13;20645:20;;20303:368;;;:::o;20677:419::-;20843:4;20881:2;20870:9;20866:18;20858:26;;20930:9;20924:4;20920:20;20916:1;20905:9;20901:17;20894:47;20958:131;21084:4;20958:131;:::i;:::-;20950:139;;20677:419;;;:::o;21102:442::-;21251:4;21289:2;21278:9;21274:18;21266:26;;21302:71;21370:1;21359:9;21355:17;21346:6;21302:71;:::i;:::-;21383:72;21451:2;21440:9;21436:18;21427:6;21383:72;:::i;:::-;21465;21533:2;21522:9;21518:18;21509:6;21465:72;:::i;:::-;21102:442;;;;;;:::o;21550:242::-;21690:34;21686:1;21678:6;21674:14;21667:58;21759:25;21754:2;21746:6;21742:15;21735:50;21550:242;:::o;21798:366::-;21940:3;21961:67;22025:2;22020:3;21961:67;:::i;:::-;21954:74;;22037:93;22126:3;22037:93;:::i;:::-;22155:2;22150:3;22146:12;22139:19;;21798:366;;;:::o;22170:419::-;22336:4;22374:2;22363:9;22359:18;22351:26;;22423:9;22417:4;22413:20;22409:1;22398:9;22394:17;22387:47;22451:131;22577:4;22451:131;:::i;:::-;22443:139;;22170:419;;;:::o;22595:166::-;22735:18;22731:1;22723:6;22719:14;22712:42;22595:166;:::o;22767:366::-;22909:3;22930:67;22994:2;22989:3;22930:67;:::i;:::-;22923:74;;23006:93;23095:3;23006:93;:::i;:::-;23124:2;23119:3;23115:12;23108:19;;22767:366;;;:::o;23139:419::-;23305:4;23343:2;23332:9;23328:18;23320:26;;23392:9;23386:4;23382:20;23378:1;23367:9;23363:17;23356:47;23420:131;23546:4;23420:131;:::i;:::-;23412:139;;23139:419;;;:::o;23564:221::-;23704:34;23700:1;23692:6;23688:14;23681:58;23773:4;23768:2;23760:6;23756:15;23749:29;23564:221;:::o;23791:366::-;23933:3;23954:67;24018:2;24013:3;23954:67;:::i;:::-;23947:74;;24030:93;24119:3;24030:93;:::i;:::-;24148:2;24143:3;24139:12;24132:19;;23791:366;;;:::o;24163:419::-;24329:4;24367:2;24356:9;24352:18;24344:26;;24416:9;24410:4;24406:20;24402:1;24391:9;24387:17;24380:47;24444:131;24570:4;24444:131;:::i;:::-;24436:139;;24163:419;;;:::o;24588:224::-;24728:34;24724:1;24716:6;24712:14;24705:58;24797:7;24792:2;24784:6;24780:15;24773:32;24588:224;:::o;24818:366::-;24960:3;24981:67;25045:2;25040:3;24981:67;:::i;:::-;24974:74;;25057:93;25146:3;25057:93;:::i;:::-;25175:2;25170:3;25166:12;25159:19;;24818:366;;;:::o;25190:419::-;25356:4;25394:2;25383:9;25379:18;25371:26;;25443:9;25437:4;25433:20;25429:1;25418:9;25414:17;25407:47;25471:131;25597:4;25471:131;:::i;:::-;25463:139;;25190:419;;;:::o;25615:225::-;25755:34;25751:1;25743:6;25739:14;25732:58;25824:8;25819:2;25811:6;25807:15;25800:33;25615:225;:::o;25846:366::-;25988:3;26009:67;26073:2;26068:3;26009:67;:::i;:::-;26002:74;;26085:93;26174:3;26085:93;:::i;:::-;26203:2;26198:3;26194:12;26187:19;;25846:366;;;:::o;26218:419::-;26384:4;26422:2;26411:9;26407:18;26399:26;;26471:9;26465:4;26461:20;26457:1;26446:9;26442:17;26435:47;26499:131;26625:4;26499:131;:::i;:::-;26491:139;;26218:419;;;:::o;26643:223::-;26783:34;26779:1;26771:6;26767:14;26760:58;26852:6;26847:2;26839:6;26835:15;26828:31;26643:223;:::o;26872:366::-;27014:3;27035:67;27099:2;27094:3;27035:67;:::i;:::-;27028:74;;27111:93;27200:3;27111:93;:::i;:::-;27229:2;27224:3;27220:12;27213:19;;26872:366;;;:::o;27244:419::-;27410:4;27448:2;27437:9;27433:18;27425:26;;27497:9;27491:4;27487:20;27483:1;27472:9;27468:17;27461:47;27525:131;27651:4;27525:131;:::i;:::-;27517:139;;27244:419;;;:::o;27669:221::-;27809:34;27805:1;27797:6;27793:14;27786:58;27878:4;27873:2;27865:6;27861:15;27854:29;27669:221;:::o;27896:366::-;28038:3;28059:67;28123:2;28118:3;28059:67;:::i;:::-;28052:74;;28135:93;28224:3;28135:93;:::i;:::-;28253:2;28248:3;28244:12;28237:19;;27896:366;;;:::o;28268:419::-;28434:4;28472:2;28461:9;28457:18;28449:26;;28521:9;28515:4;28511:20;28507:1;28496:9;28492:17;28485:47;28549:131;28675:4;28549:131;:::i;:::-;28541:139;;28268:419;;;:::o;28693:182::-;28833:34;28829:1;28821:6;28817:14;28810:58;28693:182;:::o;28881:366::-;29023:3;29044:67;29108:2;29103:3;29044:67;:::i;:::-;29037:74;;29120:93;29209:3;29120:93;:::i;:::-;29238:2;29233:3;29229:12;29222:19;;28881:366;;;:::o;29253:419::-;29419:4;29457:2;29446:9;29442:18;29434:26;;29506:9;29500:4;29496:20;29492:1;29481:9;29477:17;29470:47;29534:131;29660:4;29534:131;:::i;:::-;29526:139;;29253:419;;;:::o;29678:179::-;29818:31;29814:1;29806:6;29802:14;29795:55;29678:179;:::o;29863:366::-;30005:3;30026:67;30090:2;30085:3;30026:67;:::i;:::-;30019:74;;30102:93;30191:3;30102:93;:::i;:::-;30220:2;30215:3;30211:12;30204:19;;29863:366;;;:::o;30235:419::-;30401:4;30439:2;30428:9;30424:18;30416:26;;30488:9;30482:4;30478:20;30474:1;30463:9;30459:17;30452:47;30516:131;30642:4;30516:131;:::i;:::-;30508:139;;30235:419;;;:::o;30660:224::-;30800:34;30796:1;30788:6;30784:14;30777:58;30869:7;30864:2;30856:6;30852:15;30845:32;30660:224;:::o;30890:366::-;31032:3;31053:67;31117:2;31112:3;31053:67;:::i;:::-;31046:74;;31129:93;31218:3;31129:93;:::i;:::-;31247:2;31242:3;31238:12;31231:19;;30890:366;;;:::o;31262:419::-;31428:4;31466:2;31455:9;31451:18;31443:26;;31515:9;31509:4;31505:20;31501:1;31490:9;31486:17;31479:47;31543:131;31669:4;31543:131;:::i;:::-;31535:139;;31262:419;;;:::o;31687:222::-;31827:34;31823:1;31815:6;31811:14;31804:58;31896:5;31891:2;31883:6;31879:15;31872:30;31687:222;:::o;31915:366::-;32057:3;32078:67;32142:2;32137:3;32078:67;:::i;:::-;32071:74;;32154:93;32243:3;32154:93;:::i;:::-;32272:2;32267:3;32263:12;32256:19;;31915:366;;;:::o;32287:419::-;32453:4;32491:2;32480:9;32476:18;32468:26;;32540:9;32534:4;32530:20;32526:1;32515:9;32511:17;32504:47;32568:131;32694:4;32568:131;:::i;:::-;32560:139;;32287:419;;;:::o;32712:225::-;32852:34;32848:1;32840:6;32836:14;32829:58;32921:8;32916:2;32908:6;32904:15;32897:33;32712:225;:::o;32943:366::-;33085:3;33106:67;33170:2;33165:3;33106:67;:::i;:::-;33099:74;;33182:93;33271:3;33182:93;:::i;:::-;33300:2;33295:3;33291:12;33284:19;;32943:366;;;:::o;33315:419::-;33481:4;33519:2;33508:9;33504:18;33496:26;;33568:9;33562:4;33558:20;33554:1;33543:9;33539:17;33532:47;33596:131;33722:4;33596:131;:::i;:::-;33588:139;;33315:419;;;:::o

Swarm Source

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