ETH Price: $2,607.87 (-0.52%)

Token

Greelance (GRL)
 

Overview

Max Total Supply

2,000,000,000 GRL

Holders

1,547 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH (+0.50%)

Onchain Market Cap

$1,933,516.15

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

Balance
130 GRL

Value
$0.13 ( ~4.98491357936589E-05 Eth) [0.0000%]
0xC714B39f15D0d958321443eB29Ff52f06D28fd26
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

With decentralized governance and secure ownership, GRL token holders actively contribute to the growth and success of Greelance, setting its position as an originator in the freelancing and blockchain space.

Market

Volume (24H):$61,260.56
Market Capitalization:$0.00
Circulating Supply:0.00 GRL
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Greelance

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

   _____                        _                               
  / ____|                      | |                              
 | |  __   _ __    ___    ___  | |   __ _   _ __     ___    ___ 
 | | |_ | | '__|  / _ \  / _ \ | |  / _` | | '_ \   / __|  / _ \
 | |__| | | |    |  __/ |  __/ | | | (_| | | | | | | (__  |  __/
  \_____| |_|     \___|  \___| |_|  \__,_| |_| |_|  \___|  \___|
                                                                
                                                                                                    
                                                      
Official Links

Website: https://greelance.com/
Twitter: https://twitter.com/GreelanceI
Telegram: https://t.me/greelancer 
Discord: https://discord.gg/ukNCBwQCD9
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

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

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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 Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

    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 recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

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

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

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

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

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

contract Greelance is ERC20, Ownable {
    address public uniswapV2Pair;

    mapping(address => bool) private _isExcludedFromFees;

    uint256 public taxFeeOnBuy;
    uint256 public taxFeeOnSell;

    address public taxCollector;

    bool public tradingEnabled;
    bool private tokenMinted = false;
    uint256 public maxSellableAmount;
    bool public maxSellableRestrictionEnabled = false;
    bool public trading24HrsRestrictionEnabled = false;
    mapping(address => uint256) public tradingIn24Hours;
    mapping(address => uint256) public lastTradeTime;

    event ExcludeFromFees(address indexed account, bool isExcluded);

    constructor() ERC20("Greelance", "GRL") {
        taxCollector = owner();
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
    }

    receive() external payable {}

    function mint() external onlyOwner {
        require(!tokenMinted, "Tokens already minted!");
        tokenMinted = true;
        _mint(owner(), 2000000000 * (10 ** decimals()));
    }

    function setMaxSellableAmount(uint256 _maxAmount) external onlyOwner {
        require(_maxAmount > 0, "Invalid amount!");
        maxSellableAmount = _maxAmount;
        maxSellableRestrictionEnabled = true;
    }

    function removeMaxSellableRestriction() external onlyOwner {
        maxSellableRestrictionEnabled = false;
    }

    function excludeFromFees(address account) external onlyOwner {
        require(
            !_isExcludedFromFees[account],
            "Account already excluded"
        );
        _isExcludedFromFees[account] = true;

        emit ExcludeFromFees(account, true);
    }

    function enable24HrsRestriction() external onlyOwner {
        trading24HrsRestrictionEnabled = true;
    }

    function disable24HrsRestriction() external onlyOwner {
        trading24HrsRestrictionEnabled = false;
    }

    function setUniswapPair(address _uniswapV2Pair) external onlyOwner {
        uniswapV2Pair = _uniswapV2Pair;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function setBuyTaxPercentage(uint256 _taxAmount) external onlyOwner {
        require(_taxAmount <= 20, "Tax not more than 20!");
        taxFeeOnBuy = _taxAmount;
    }

    function setSellTaxPercentage(uint256 _taxAmount) external onlyOwner {
        require(_taxAmount <= 20, "Tax not more than 20!");
        taxFeeOnSell = _taxAmount;
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading already enabled.");
        tradingEnabled = true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading not yet enabled!");

        if (amount == 0) {
            super._transfer(from, to, 0);
            lastTradeTime[from] = block.timestamp;
            return;
        }

        bool shouldApplyFees = !(_isExcludedFromFees[from] ||
            _isExcludedFromFees[to]);
        uint256 fees = shouldApplyFees
            ? (amount * (from == uniswapV2Pair ? taxFeeOnBuy : taxFeeOnSell)) /
                100
            : 0;

        if (shouldApplyFees) {
            if (from != uniswapV2Pair) {

                if (maxSellableRestrictionEnabled) {
                    require(
                        amount <= maxSellableAmount,
                        "Amount is greater than MaxSellableAmount"
                    );
                }

                if (trading24HrsRestrictionEnabled) {
                    if (
                        maxSellableRestrictionEnabled &&
                        block.timestamp - lastTradeTime[from] >= 1 days
                    ) {
                        tradingIn24Hours[from] = 0;
                    } else if (
                        tradingIn24Hours[from] + amount > maxSellableAmount
                    ) {
                        require(
                            block.timestamp - lastTradeTime[from] >= 1 days,
                            "Transfer restricted before 24 hours"
                        );
                    }

                    if (maxSellableRestrictionEnabled) {
                        tradingIn24Hours[from] += amount;
                    }
                }
            }
        }

        if (fees > 0) {
            super._transfer(from, taxCollector, fees);
            amount -= fees;
        }

        super._transfer(from, to, amount);
        lastTradeTime[from] = block.timestamp;
    }
}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"disable24HrsRestriction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enable24HrsRestriction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","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":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTradeTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellableRestrictionEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"nonpayable","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":[],"name":"removeMaxSellableRestriction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxAmount","type":"uint256"}],"name":"setBuyTaxPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxAmount","type":"uint256"}],"name":"setMaxSellableAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxAmount","type":"uint256"}],"name":"setSellTaxPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxCollector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading24HrsRestrictionEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tradingIn24Hours","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600a60156101000a81548160ff0219169083151502179055506000600c60006101000a81548160ff0219169083151502179055506000600c60016101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600981526020017f477265656c616e636500000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f47524c00000000000000000000000000000000000000000000000000000000008152508160039081620000e0919062000567565b508060049081620000f2919062000567565b505050600062000107620002bb60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001b6620002c360201b60201c565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760006200020c620002c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200064e565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200036f57607f821691505b60208210810362000385576200038462000327565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003ef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003b0565b620003fb8683620003b0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000448620004426200043c8462000413565b6200041d565b62000413565b9050919050565b6000819050919050565b620004648362000427565b6200047c62000473826200044f565b848454620003bd565b825550505050565b600090565b6200049362000484565b620004a081848462000459565b505050565b5b81811015620004c857620004bc60008262000489565b600181019050620004a6565b5050565b601f8211156200051757620004e1816200038b565b620004ec84620003a0565b81016020851015620004fc578190505b620005146200050b85620003a0565b830182620004a5565b50505b505050565b600082821c905092915050565b60006200053c600019846008026200051c565b1980831691505092915050565b600062000557838362000529565b9150826002028217905092915050565b6200057282620002ed565b67ffffffffffffffff8111156200058e576200058d620002f8565b5b6200059a825462000356565b620005a7828285620004cc565b600060209050601f831160018114620005df5760008415620005ca578287015190505b620005d6858262000549565b86555062000646565b601f198416620005ef866200038b565b60005b828110156200061957848901518255600182019150602085019450602081019050620005f2565b8683101562000639578489015162000635601f89168262000529565b8355505b6001600288020188555050505b505050505050565b613773806200065e6000396000f3fe6080604052600436106102085760003560e01c80636da492dc11610118578063a457c2d7116100a0578063bea1dcf81161006f578063bea1dcf814610742578063d5aed6bf1461076d578063dd62ed3e14610796578063e57f14e1146107d3578063f2fde38b146107fc5761020f565b8063a457c2d714610674578063a56d37f9146106b1578063a9059cbb146106da578063ab4ebc1e146107175761020f565b80638d6366fe116100e75780638d6366fe1461059f5780638da5cb5b146105ca57806395d89b41146105f55780639c0b9d74146106205780639ec4be411461064b5761020f565b80636da492dc1461051d57806370a0823114610534578063715018a6146105715780638a8c523c146105885761020f565b80632efa788b1161019b5780634ab3bdcb1161016a5780634ab3bdcb146104245780634ada218b1461044d5780634fbee19314610478578063537eed34146104b5578063630a8a0c146104e05761020f565b80632efa788b1461037a578063313ce5671461039157806339509351146103bc57806349bd5a5e146103f95761020f565b80631249c58b116101d75780631249c58b146102d0578063142bc858146102e757806318160ddd1461031257806323b872dd1461033d5761020f565b806303186eef1461021457806306fdde03146102515780630907ea0b1461027c578063095ea7b3146102935761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061023b6004803603810190610236919061283c565b610825565b6040516102489190612882565b60405180910390f35b34801561025d57600080fd5b5061026661083d565b604051610273919061292d565b60405180910390f35b34801561028857600080fd5b506102916108cf565b005b34801561029f57600080fd5b506102ba60048036038101906102b5919061297b565b610983565b6040516102c791906129d6565b60405180910390f35b3480156102dc57600080fd5b506102e56109a1565b005b3480156102f357600080fd5b506102fc610ad8565b60405161030991906129d6565b60405180910390f35b34801561031e57600080fd5b50610327610aeb565b6040516103349190612882565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f91906129f1565b610af5565b60405161037191906129d6565b60405180910390f35b34801561038657600080fd5b5061038f610c14565b005b34801561039d57600080fd5b506103a6610cc8565b6040516103b39190612a60565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de919061297b565b610cd1565b6040516103f091906129d6565b60405180910390f35b34801561040557600080fd5b5061040e610d7d565b60405161041b9190612a8a565b60405180910390f35b34801561043057600080fd5b5061044b60048036038101906104469190612aa5565b610da3565b005b34801561045957600080fd5b50610462610ea2565b60405161046f91906129d6565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a919061283c565b610eb5565b6040516104ac91906129d6565b60405180910390f35b3480156104c157600080fd5b506104ca610f0b565b6040516104d79190612882565b60405180910390f35b3480156104ec57600080fd5b506105076004803603810190610502919061283c565b610f11565b6040516105149190612882565b60405180910390f35b34801561052957600080fd5b50610532610f29565b005b34801561054057600080fd5b5061055b6004803603810190610556919061283c565b610fdd565b6040516105689190612882565b60405180910390f35b34801561057d57600080fd5b50610586611025565b005b34801561059457600080fd5b5061059d61117d565b005b3480156105ab57600080fd5b506105b4611281565b6040516105c191906129d6565b60405180910390f35b3480156105d657600080fd5b506105df611294565b6040516105ec9190612a8a565b60405180910390f35b34801561060157600080fd5b5061060a6112be565b604051610617919061292d565b60405180910390f35b34801561062c57600080fd5b50610635611350565b6040516106429190612882565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190612aa5565b611356565b005b34801561068057600080fd5b5061069b6004803603810190610696919061297b565b61143b565b6040516106a891906129d6565b60405180910390f35b3480156106bd57600080fd5b506106d860048036038101906106d39190612aa5565b611526565b005b3480156106e657600080fd5b5061070160048036038101906106fc919061297b565b61160b565b60405161070e91906129d6565b60405180910390f35b34801561072357600080fd5b5061072c611629565b6040516107399190612882565b60405180910390f35b34801561074e57600080fd5b5061075761162f565b6040516107649190612a8a565b60405180910390f35b34801561077957600080fd5b50610794600480360381019061078f919061283c565b611655565b005b3480156107a257600080fd5b506107bd60048036038101906107b89190612ad2565b611730565b6040516107ca9190612882565b60405180910390f35b3480156107df57600080fd5b506107fa60048036038101906107f5919061283c565b6117b7565b005b34801561080857600080fd5b50610823600480360381019061081e919061283c565b611985565b005b600e6020528060005260406000206000915090505481565b60606003805461084c90612b41565b80601f016020809104026020016040519081016040528092919081815260200182805461087890612b41565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050905090565b6108d7611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095d90612bbe565b60405180910390fd5b6000600c60016101000a81548160ff021916908315150217905550565b6000610997610990611b4b565b8484611b53565b6001905092915050565b6109a9611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f90612bbe565b60405180910390fd5b600a60159054906101000a900460ff1615610a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7f90612c2a565b60405180910390fd5b6001600a60156101000a81548160ff021916908315150217905550610ad6610aae611294565b610ab6610cc8565b600a610ac29190612dac565b6377359400610ad19190612df7565b611d1c565b565b600c60019054906101000a900460ff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b41611b4b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bfd5782811015610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf90612eab565b60405180910390fd5b610bfc85610bf4611b4b565b858403611b53565b5b610c08858585611e7b565b60019150509392505050565b610c1c611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca290612bbe565b60405180910390fd5b6001600c60016101000a81548160ff021916908315150217905550565b60006009905090565b6000610d73610cde611b4b565b848460016000610cec611b4b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d6e9190612ecb565b611b53565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dab611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190612bbe565b60405180910390fd5b60008111610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7490612f4b565b60405180910390fd5b80600b819055506001600c60006101000a81548160ff02191690831515021790555050565b600a60149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b5481565b600d6020528060005260406000206000915090505481565b610f31611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790612bbe565b60405180910390fd5b6000600c60006101000a81548160ff021916908315150217905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61102d611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b390612bbe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611185611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b90612bbe565b60405180910390fd5b600a60149054906101000a900460ff1615611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90612fb7565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b600c60009054906101000a900460ff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112cd90612b41565b80601f01602080910402602001604051908101604052809291908181526020018280546112f990612b41565b80156113465780601f1061131b57610100808354040283529160200191611346565b820191906000526020600020905b81548152906001019060200180831161132957829003601f168201915b5050505050905090565b60095481565b61135e611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490612bbe565b60405180910390fd5b6014811115611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142890613023565b60405180910390fd5b8060098190555050565b6000806001600061144a611b4b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe906130b5565b60405180910390fd5b61151b611512611b4b565b85858403611b53565b600191505092915050565b61152e611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490612bbe565b60405180910390fd5b6014811115611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f890613023565b60405180910390fd5b8060088190555050565b600061161f611618611b4b565b8484611e7b565b6001905092915050565b60085481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61165d611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e390612bbe565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117bf611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184590612bbe565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d290613121565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7600160405161197a91906129d6565b60405180910390a250565b61198d611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1390612bbe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a82906131b3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb990613245565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c28906132d7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d0f9190612882565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290613343565b60405180910390fd5b611d9760008383612550565b8060026000828254611da99190612ecb565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dfe9190612ecb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e639190612882565b60405180910390a3611e7760008383612555565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee1906133d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5090613467565b60405180910390fd5b600a60149054906101000a900460ff1680611fbd5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120115750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612050576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612047906134d3565b60405180910390fd5b600081036120ad576120648383600061255a565b42600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061254b565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121505750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1590506000816121615760006121da565b6064600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146121c0576009546121c4565b6008545b846121cf9190612df7565b6121d99190613522565b5b905081156124b457600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146124b357600c60009054906101000a900460ff161561229257600b54831115612291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612288906135c5565b60405180910390fd5b5b600c60019054906101000a900460ff16156124b257600c60009054906101000a900460ff168015612310575062015180600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261230d91906135e5565b10155b1561235f576000600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612445565b600b5483600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ad9190612ecb565b11156124445762015180600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261240291906135e5565b1015612443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243a9061368b565b60405180910390fd5b5b5b600c60009054906101000a900460ff16156124b15782600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124a99190612ecb565b925050819055505b5b5b5b60008111156124f9576124ea85600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361255a565b80836124f691906135e5565b92505b61250485858561255a565b42600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b505050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c0906133d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262f90613467565b60405180910390fd5b612643838383612550565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156126c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c09061371d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461275c9190612ecb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127c09190612882565b60405180910390a36127d3848484612555565b50505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612809826127de565b9050919050565b612819816127fe565b811461282457600080fd5b50565b60008135905061283681612810565b92915050565b600060208284031215612852576128516127d9565b5b600061286084828501612827565b91505092915050565b6000819050919050565b61287c81612869565b82525050565b60006020820190506128976000830184612873565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128d75780820151818401526020810190506128bc565b60008484015250505050565b6000601f19601f8301169050919050565b60006128ff8261289d565b61290981856128a8565b93506129198185602086016128b9565b612922816128e3565b840191505092915050565b6000602082019050818103600083015261294781846128f4565b905092915050565b61295881612869565b811461296357600080fd5b50565b6000813590506129758161294f565b92915050565b60008060408385031215612992576129916127d9565b5b60006129a085828601612827565b92505060206129b185828601612966565b9150509250929050565b60008115159050919050565b6129d0816129bb565b82525050565b60006020820190506129eb60008301846129c7565b92915050565b600080600060608486031215612a0a57612a096127d9565b5b6000612a1886828701612827565b9350506020612a2986828701612827565b9250506040612a3a86828701612966565b9150509250925092565b600060ff82169050919050565b612a5a81612a44565b82525050565b6000602082019050612a756000830184612a51565b92915050565b612a84816127fe565b82525050565b6000602082019050612a9f6000830184612a7b565b92915050565b600060208284031215612abb57612aba6127d9565b5b6000612ac984828501612966565b91505092915050565b60008060408385031215612ae957612ae86127d9565b5b6000612af785828601612827565b9250506020612b0885828601612827565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b5957607f821691505b602082108103612b6c57612b6b612b12565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ba86020836128a8565b9150612bb382612b72565b602082019050919050565b60006020820190508181036000830152612bd781612b9b565b9050919050565b7f546f6b656e7320616c7265616479206d696e7465642100000000000000000000600082015250565b6000612c146016836128a8565b9150612c1f82612bde565b602082019050919050565b60006020820190508181036000830152612c4381612c07565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612cd057808604811115612cac57612cab612c4a565b5b6001851615612cbb5780820291505b8081029050612cc985612c79565b9450612c90565b94509492505050565b600082612ce95760019050612da5565b81612cf75760009050612da5565b8160018114612d0d5760028114612d1757612d46565b6001915050612da5565b60ff841115612d2957612d28612c4a565b5b8360020a915084821115612d4057612d3f612c4a565b5b50612da5565b5060208310610133831016604e8410600b8410161715612d7b5782820a905083811115612d7657612d75612c4a565b5b612da5565b612d888484846001612c86565b92509050818404811115612d9f57612d9e612c4a565b5b81810290505b9392505050565b6000612db782612869565b9150612dc283612a44565b9250612def7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612cd9565b905092915050565b6000612e0282612869565b9150612e0d83612869565b9250828202612e1b81612869565b91508282048414831517612e3257612e31612c4a565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612e956028836128a8565b9150612ea082612e39565b604082019050919050565b60006020820190508181036000830152612ec481612e88565b9050919050565b6000612ed682612869565b9150612ee183612869565b9250828201905080821115612ef957612ef8612c4a565b5b92915050565b7f496e76616c696420616d6f756e74210000000000000000000000000000000000600082015250565b6000612f35600f836128a8565b9150612f4082612eff565b602082019050919050565b60006020820190508181036000830152612f6481612f28565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642e0000000000000000600082015250565b6000612fa16018836128a8565b9150612fac82612f6b565b602082019050919050565b60006020820190508181036000830152612fd081612f94565b9050919050565b7f546178206e6f74206d6f7265207468616e203230210000000000000000000000600082015250565b600061300d6015836128a8565b915061301882612fd7565b602082019050919050565b6000602082019050818103600083015261303c81613000565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061309f6025836128a8565b91506130aa82613043565b604082019050919050565b600060208201905081810360008301526130ce81613092565b9050919050565b7f4163636f756e7420616c7265616479206578636c756465640000000000000000600082015250565b600061310b6018836128a8565b9150613116826130d5565b602082019050919050565b6000602082019050818103600083015261313a816130fe565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061319d6026836128a8565b91506131a882613141565b604082019050919050565b600060208201905081810360008301526131cc81613190565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061322f6024836128a8565b915061323a826131d3565b604082019050919050565b6000602082019050818103600083015261325e81613222565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132c16022836128a8565b91506132cc82613265565b604082019050919050565b600060208201905081810360008301526132f0816132b4565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061332d601f836128a8565b9150613338826132f7565b602082019050919050565b6000602082019050818103600083015261335c81613320565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133bf6025836128a8565b91506133ca82613363565b604082019050919050565b600060208201905081810360008301526133ee816133b2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134516023836128a8565b915061345c826133f5565b604082019050919050565b6000602082019050818103600083015261348081613444565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b60006134bd6018836128a8565b91506134c882613487565b602082019050919050565b600060208201905081810360008301526134ec816134b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061352d82612869565b915061353883612869565b925082613548576135476134f3565b5b828204905092915050565b7f416d6f756e742069732067726561746572207468616e204d617853656c6c616260008201527f6c65416d6f756e74000000000000000000000000000000000000000000000000602082015250565b60006135af6028836128a8565b91506135ba82613553565b604082019050919050565b600060208201905081810360008301526135de816135a2565b9050919050565b60006135f082612869565b91506135fb83612869565b925082820390508181111561361357613612612c4a565b5b92915050565b7f5472616e736665722072657374726963746564206265666f726520323420686f60008201527f7572730000000000000000000000000000000000000000000000000000000000602082015250565b60006136756023836128a8565b915061368082613619565b604082019050919050565b600060208201905081810360008301526136a481613668565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006137076026836128a8565b9150613712826136ab565b604082019050919050565b60006020820190508181036000830152613736816136fa565b905091905056fea264697066735822122073ad887bc98da843bc79cf2bbe6e7be70c123cf9c06fa129bed3f3296aab0e8764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102085760003560e01c80636da492dc11610118578063a457c2d7116100a0578063bea1dcf81161006f578063bea1dcf814610742578063d5aed6bf1461076d578063dd62ed3e14610796578063e57f14e1146107d3578063f2fde38b146107fc5761020f565b8063a457c2d714610674578063a56d37f9146106b1578063a9059cbb146106da578063ab4ebc1e146107175761020f565b80638d6366fe116100e75780638d6366fe1461059f5780638da5cb5b146105ca57806395d89b41146105f55780639c0b9d74146106205780639ec4be411461064b5761020f565b80636da492dc1461051d57806370a0823114610534578063715018a6146105715780638a8c523c146105885761020f565b80632efa788b1161019b5780634ab3bdcb1161016a5780634ab3bdcb146104245780634ada218b1461044d5780634fbee19314610478578063537eed34146104b5578063630a8a0c146104e05761020f565b80632efa788b1461037a578063313ce5671461039157806339509351146103bc57806349bd5a5e146103f95761020f565b80631249c58b116101d75780631249c58b146102d0578063142bc858146102e757806318160ddd1461031257806323b872dd1461033d5761020f565b806303186eef1461021457806306fdde03146102515780630907ea0b1461027c578063095ea7b3146102935761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061023b6004803603810190610236919061283c565b610825565b6040516102489190612882565b60405180910390f35b34801561025d57600080fd5b5061026661083d565b604051610273919061292d565b60405180910390f35b34801561028857600080fd5b506102916108cf565b005b34801561029f57600080fd5b506102ba60048036038101906102b5919061297b565b610983565b6040516102c791906129d6565b60405180910390f35b3480156102dc57600080fd5b506102e56109a1565b005b3480156102f357600080fd5b506102fc610ad8565b60405161030991906129d6565b60405180910390f35b34801561031e57600080fd5b50610327610aeb565b6040516103349190612882565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f91906129f1565b610af5565b60405161037191906129d6565b60405180910390f35b34801561038657600080fd5b5061038f610c14565b005b34801561039d57600080fd5b506103a6610cc8565b6040516103b39190612a60565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de919061297b565b610cd1565b6040516103f091906129d6565b60405180910390f35b34801561040557600080fd5b5061040e610d7d565b60405161041b9190612a8a565b60405180910390f35b34801561043057600080fd5b5061044b60048036038101906104469190612aa5565b610da3565b005b34801561045957600080fd5b50610462610ea2565b60405161046f91906129d6565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a919061283c565b610eb5565b6040516104ac91906129d6565b60405180910390f35b3480156104c157600080fd5b506104ca610f0b565b6040516104d79190612882565b60405180910390f35b3480156104ec57600080fd5b506105076004803603810190610502919061283c565b610f11565b6040516105149190612882565b60405180910390f35b34801561052957600080fd5b50610532610f29565b005b34801561054057600080fd5b5061055b6004803603810190610556919061283c565b610fdd565b6040516105689190612882565b60405180910390f35b34801561057d57600080fd5b50610586611025565b005b34801561059457600080fd5b5061059d61117d565b005b3480156105ab57600080fd5b506105b4611281565b6040516105c191906129d6565b60405180910390f35b3480156105d657600080fd5b506105df611294565b6040516105ec9190612a8a565b60405180910390f35b34801561060157600080fd5b5061060a6112be565b604051610617919061292d565b60405180910390f35b34801561062c57600080fd5b50610635611350565b6040516106429190612882565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190612aa5565b611356565b005b34801561068057600080fd5b5061069b6004803603810190610696919061297b565b61143b565b6040516106a891906129d6565b60405180910390f35b3480156106bd57600080fd5b506106d860048036038101906106d39190612aa5565b611526565b005b3480156106e657600080fd5b5061070160048036038101906106fc919061297b565b61160b565b60405161070e91906129d6565b60405180910390f35b34801561072357600080fd5b5061072c611629565b6040516107399190612882565b60405180910390f35b34801561074e57600080fd5b5061075761162f565b6040516107649190612a8a565b60405180910390f35b34801561077957600080fd5b50610794600480360381019061078f919061283c565b611655565b005b3480156107a257600080fd5b506107bd60048036038101906107b89190612ad2565b611730565b6040516107ca9190612882565b60405180910390f35b3480156107df57600080fd5b506107fa60048036038101906107f5919061283c565b6117b7565b005b34801561080857600080fd5b50610823600480360381019061081e919061283c565b611985565b005b600e6020528060005260406000206000915090505481565b60606003805461084c90612b41565b80601f016020809104026020016040519081016040528092919081815260200182805461087890612b41565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050905090565b6108d7611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095d90612bbe565b60405180910390fd5b6000600c60016101000a81548160ff021916908315150217905550565b6000610997610990611b4b565b8484611b53565b6001905092915050565b6109a9611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f90612bbe565b60405180910390fd5b600a60159054906101000a900460ff1615610a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7f90612c2a565b60405180910390fd5b6001600a60156101000a81548160ff021916908315150217905550610ad6610aae611294565b610ab6610cc8565b600a610ac29190612dac565b6377359400610ad19190612df7565b611d1c565b565b600c60019054906101000a900460ff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b41611b4b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bfd5782811015610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf90612eab565b60405180910390fd5b610bfc85610bf4611b4b565b858403611b53565b5b610c08858585611e7b565b60019150509392505050565b610c1c611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca290612bbe565b60405180910390fd5b6001600c60016101000a81548160ff021916908315150217905550565b60006009905090565b6000610d73610cde611b4b565b848460016000610cec611b4b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d6e9190612ecb565b611b53565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dab611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190612bbe565b60405180910390fd5b60008111610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7490612f4b565b60405180910390fd5b80600b819055506001600c60006101000a81548160ff02191690831515021790555050565b600a60149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b5481565b600d6020528060005260406000206000915090505481565b610f31611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790612bbe565b60405180910390fd5b6000600c60006101000a81548160ff021916908315150217905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61102d611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b390612bbe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611185611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b90612bbe565b60405180910390fd5b600a60149054906101000a900460ff1615611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90612fb7565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b600c60009054906101000a900460ff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112cd90612b41565b80601f01602080910402602001604051908101604052809291908181526020018280546112f990612b41565b80156113465780601f1061131b57610100808354040283529160200191611346565b820191906000526020600020905b81548152906001019060200180831161132957829003601f168201915b5050505050905090565b60095481565b61135e611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490612bbe565b60405180910390fd5b6014811115611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142890613023565b60405180910390fd5b8060098190555050565b6000806001600061144a611b4b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe906130b5565b60405180910390fd5b61151b611512611b4b565b85858403611b53565b600191505092915050565b61152e611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490612bbe565b60405180910390fd5b6014811115611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f890613023565b60405180910390fd5b8060088190555050565b600061161f611618611b4b565b8484611e7b565b6001905092915050565b60085481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61165d611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e390612bbe565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117bf611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461184e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184590612bbe565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d290613121565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7600160405161197a91906129d6565b60405180910390a250565b61198d611b4b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1390612bbe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a82906131b3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb990613245565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c28906132d7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d0f9190612882565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290613343565b60405180910390fd5b611d9760008383612550565b8060026000828254611da99190612ecb565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dfe9190612ecb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e639190612882565b60405180910390a3611e7760008383612555565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee1906133d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5090613467565b60405180910390fd5b600a60149054906101000a900460ff1680611fbd5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120115750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612050576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612047906134d3565b60405180910390fd5b600081036120ad576120648383600061255a565b42600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061254b565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121505750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1590506000816121615760006121da565b6064600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146121c0576009546121c4565b6008545b846121cf9190612df7565b6121d99190613522565b5b905081156124b457600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146124b357600c60009054906101000a900460ff161561229257600b54831115612291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612288906135c5565b60405180910390fd5b5b600c60019054906101000a900460ff16156124b257600c60009054906101000a900460ff168015612310575062015180600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261230d91906135e5565b10155b1561235f576000600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612445565b600b5483600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ad9190612ecb565b11156124445762015180600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544261240291906135e5565b1015612443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243a9061368b565b60405180910390fd5b5b5b600c60009054906101000a900460ff16156124b15782600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124a99190612ecb565b925050819055505b5b5b5b60008111156124f9576124ea85600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361255a565b80836124f691906135e5565b92505b61250485858561255a565b42600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505b505050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c0906133d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262f90613467565b60405180910390fd5b612643838383612550565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156126c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c09061371d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461275c9190612ecb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127c09190612882565b60405180910390a36127d3848484612555565b50505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612809826127de565b9050919050565b612819816127fe565b811461282457600080fd5b50565b60008135905061283681612810565b92915050565b600060208284031215612852576128516127d9565b5b600061286084828501612827565b91505092915050565b6000819050919050565b61287c81612869565b82525050565b60006020820190506128976000830184612873565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128d75780820151818401526020810190506128bc565b60008484015250505050565b6000601f19601f8301169050919050565b60006128ff8261289d565b61290981856128a8565b93506129198185602086016128b9565b612922816128e3565b840191505092915050565b6000602082019050818103600083015261294781846128f4565b905092915050565b61295881612869565b811461296357600080fd5b50565b6000813590506129758161294f565b92915050565b60008060408385031215612992576129916127d9565b5b60006129a085828601612827565b92505060206129b185828601612966565b9150509250929050565b60008115159050919050565b6129d0816129bb565b82525050565b60006020820190506129eb60008301846129c7565b92915050565b600080600060608486031215612a0a57612a096127d9565b5b6000612a1886828701612827565b9350506020612a2986828701612827565b9250506040612a3a86828701612966565b9150509250925092565b600060ff82169050919050565b612a5a81612a44565b82525050565b6000602082019050612a756000830184612a51565b92915050565b612a84816127fe565b82525050565b6000602082019050612a9f6000830184612a7b565b92915050565b600060208284031215612abb57612aba6127d9565b5b6000612ac984828501612966565b91505092915050565b60008060408385031215612ae957612ae86127d9565b5b6000612af785828601612827565b9250506020612b0885828601612827565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b5957607f821691505b602082108103612b6c57612b6b612b12565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ba86020836128a8565b9150612bb382612b72565b602082019050919050565b60006020820190508181036000830152612bd781612b9b565b9050919050565b7f546f6b656e7320616c7265616479206d696e7465642100000000000000000000600082015250565b6000612c146016836128a8565b9150612c1f82612bde565b602082019050919050565b60006020820190508181036000830152612c4381612c07565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612cd057808604811115612cac57612cab612c4a565b5b6001851615612cbb5780820291505b8081029050612cc985612c79565b9450612c90565b94509492505050565b600082612ce95760019050612da5565b81612cf75760009050612da5565b8160018114612d0d5760028114612d1757612d46565b6001915050612da5565b60ff841115612d2957612d28612c4a565b5b8360020a915084821115612d4057612d3f612c4a565b5b50612da5565b5060208310610133831016604e8410600b8410161715612d7b5782820a905083811115612d7657612d75612c4a565b5b612da5565b612d888484846001612c86565b92509050818404811115612d9f57612d9e612c4a565b5b81810290505b9392505050565b6000612db782612869565b9150612dc283612a44565b9250612def7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612cd9565b905092915050565b6000612e0282612869565b9150612e0d83612869565b9250828202612e1b81612869565b91508282048414831517612e3257612e31612c4a565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612e956028836128a8565b9150612ea082612e39565b604082019050919050565b60006020820190508181036000830152612ec481612e88565b9050919050565b6000612ed682612869565b9150612ee183612869565b9250828201905080821115612ef957612ef8612c4a565b5b92915050565b7f496e76616c696420616d6f756e74210000000000000000000000000000000000600082015250565b6000612f35600f836128a8565b9150612f4082612eff565b602082019050919050565b60006020820190508181036000830152612f6481612f28565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642e0000000000000000600082015250565b6000612fa16018836128a8565b9150612fac82612f6b565b602082019050919050565b60006020820190508181036000830152612fd081612f94565b9050919050565b7f546178206e6f74206d6f7265207468616e203230210000000000000000000000600082015250565b600061300d6015836128a8565b915061301882612fd7565b602082019050919050565b6000602082019050818103600083015261303c81613000565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061309f6025836128a8565b91506130aa82613043565b604082019050919050565b600060208201905081810360008301526130ce81613092565b9050919050565b7f4163636f756e7420616c7265616479206578636c756465640000000000000000600082015250565b600061310b6018836128a8565b9150613116826130d5565b602082019050919050565b6000602082019050818103600083015261313a816130fe565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061319d6026836128a8565b91506131a882613141565b604082019050919050565b600060208201905081810360008301526131cc81613190565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061322f6024836128a8565b915061323a826131d3565b604082019050919050565b6000602082019050818103600083015261325e81613222565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132c16022836128a8565b91506132cc82613265565b604082019050919050565b600060208201905081810360008301526132f0816132b4565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061332d601f836128a8565b9150613338826132f7565b602082019050919050565b6000602082019050818103600083015261335c81613320565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133bf6025836128a8565b91506133ca82613363565b604082019050919050565b600060208201905081810360008301526133ee816133b2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134516023836128a8565b915061345c826133f5565b604082019050919050565b6000602082019050818103600083015261348081613444565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b60006134bd6018836128a8565b91506134c882613487565b602082019050919050565b600060208201905081810360008301526134ec816134b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061352d82612869565b915061353883612869565b925082613548576135476134f3565b5b828204905092915050565b7f416d6f756e742069732067726561746572207468616e204d617853656c6c616260008201527f6c65416d6f756e74000000000000000000000000000000000000000000000000602082015250565b60006135af6028836128a8565b91506135ba82613553565b604082019050919050565b600060208201905081810360008301526135de816135a2565b9050919050565b60006135f082612869565b91506135fb83612869565b925082820390508181111561361357613612612c4a565b5b92915050565b7f5472616e736665722072657374726963746564206265666f726520323420686f60008201527f7572730000000000000000000000000000000000000000000000000000000000602082015250565b60006136756023836128a8565b915061368082613619565b604082019050919050565b600060208201905081810360008301526136a481613668565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006137076026836128a8565b9150613712826136ab565b604082019050919050565b60006020820190508181036000830152613736816136fa565b905091905056fea264697066735822122073ad887bc98da843bc79cf2bbe6e7be70c123cf9c06fa129bed3f3296aab0e8764736f6c63430008130033

Deployed Bytecode Sourcemap

8720:4928:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9249:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3692:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10549:111;;;;;;;;;;;;;:::i;:::-;;4671:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9602:188;;;;;;;;;;;;;:::i;:::-;;9134:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4012:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4873:622;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10432:109;;;;;;;;;;;;;:::i;:::-;;3912:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5503:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8764:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9798:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8967:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10792:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9039:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9191:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10024:115;;;;;;;;;;;;;:::i;:::-;;4128:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2842:148;;;;;;;;;;;;;:::i;:::-;;11288:147;;;;;;;;;;;;;:::i;:::-;;9078:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2628:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3800:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8895:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11106:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5801:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10926:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4279:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8862:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8931:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10668:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4487:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10147:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2998:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9249:48;;;;;;;;;;;;;;;;;:::o;3692:100::-;3746:13;3779:5;3772:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3692:100;:::o;10549:111::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10647:5:::1;10614:30;;:38;;;;;;;;;;;;;;;;;;10549:111::o:0;4671:194::-;4779:4;4796:39;4805:12;:10;:12::i;:::-;4819:7;4828:6;4796:8;:39::i;:::-;4853:4;4846:11;;4671:194;;;;:::o;9602:188::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9657:11:::1;;;;;;;;;;;9656:12;9648:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9720:4;9706:11;;:18;;;;;;;;;;;;;;;;;;9735:47;9741:7;:5;:7::i;:::-;9770:10;:8;:10::i;:::-;9764:2;:16;;;;:::i;:::-;9750:10;:31;;;;:::i;:::-;9735:5;:47::i;:::-;9602:188::o:0;9134:50::-;;;;;;;;;;;;;:::o;4012:108::-;4073:7;4100:12;;4093:19;;4012:108;:::o;4873:622::-;5013:4;5030:24;5057:11;:19;5069:6;5057:19;;;;;;;;;;;;;;;:33;5077:12;:10;:12::i;:::-;5057:33;;;;;;;;;;;;;;;;5030:60;;5125:17;5105:16;:37;5101:314;;5205:6;5185:16;:26;;5159:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;5331:57;5340:6;5348:12;:10;:12::i;:::-;5381:6;5362:16;:25;5331:8;:57::i;:::-;5101:314;5427:36;5437:6;5445:9;5456:6;5427:9;:36::i;:::-;5483:4;5476:11;;;4873:622;;;;;:::o;10432:109::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10529:4:::1;10496:30;;:37;;;;;;;;;;;;;;;;;;10432:109::o:0;3912:92::-;3970:5;3995:1;3988:8;;3912:92;:::o;5503:290::-;5616:4;5633:130;5656:12;:10;:12::i;:::-;5683:7;5742:10;5705:11;:25;5717:12;:10;:12::i;:::-;5705:25;;;;;;;;;;;;;;;:34;5731:7;5705:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5633:8;:130::i;:::-;5781:4;5774:11;;5503:290;;;;:::o;8764:28::-;;;;;;;;;;;;;:::o;9798:218::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9899:1:::1;9886:10;:14;9878:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9951:10;9931:17;:30;;;;10004:4;9972:29;;:36;;;;;;;;;;;;;;;;;;9798:218:::0;:::o;8967:26::-;;;;;;;;;;;;;:::o;10792:126::-;10858:4;10882:19;:28;10902:7;10882:28;;;;;;;;;;;;;;;;;;;;;;;;;10875:35;;10792:126;;;:::o;9039:32::-;;;;:::o;9191:51::-;;;;;;;;;;;;;;;;;:::o;10024:115::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10126:5:::1;10094:29;;:37;;;;;;;;;;;;;;;;;;10024:115::o:0;4128:143::-;4218:7;4245:9;:18;4255:7;4245:18;;;;;;;;;;;;;;;;4238:25;;4128:143;;;:::o;2842:148::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2949:1:::1;2912:40;;2933:6;;;;;;;;;;;2912:40;;;;;;;;;;;;2980:1;2963:6;;:19;;;;;;;;;;;;;;;;;;2842:148::o:0;11288:147::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11352:14:::1;;;;;;;;;;;11351:15;11343:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11423:4;11406:14;;:21;;;;;;;;;;;;;;;;;;11288:147::o:0;9078:49::-;;;;;;;;;;;;;:::o;2628:79::-;2666:7;2693:6;;;;;;;;;;;2686:13;;2628:79;:::o;3800:104::-;3856:13;3889:7;3882:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3800:104;:::o;8895:27::-;;;;:::o;11106:174::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11208:2:::1;11194:10;:16;;11186:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11262:10;11247:12;:25;;;;11106:174:::0;:::o;5801:475::-;5919:4;5936:24;5963:11;:25;5975:12;:10;:12::i;:::-;5963:25;;;;;;;;;;;;;;;:34;5989:7;5963:34;;;;;;;;;;;;;;;;5936:61;;6050:15;6030:16;:35;;6008:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;6166:67;6175:12;:10;:12::i;:::-;6189:7;6217:15;6198:16;:34;6166:8;:67::i;:::-;6264:4;6257:11;;;5801:475;;;;:::o;10926:172::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11027:2:::1;11013:10;:16;;11005:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11080:10;11066:11;:24;;;;10926:172:::0;:::o;4279:200::-;4390:4;4407:42;4417:12;:10;:12::i;:::-;4431:9;4442:6;4407:9;:42::i;:::-;4467:4;4460:11;;4279:200;;;;:::o;8862:26::-;;;;:::o;8931:27::-;;;;;;;;;;;;;:::o;10668:116::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10762:14:::1;10746:13;;:30;;;;;;;;;;;;;;;;;;10668:116:::0;:::o;4487:176::-;4601:7;4628:11;:18;4640:5;4628:18;;;;;;;;;;;;;;;:27;4647:7;4628:27;;;;;;;;;;;;;;;;4621:34;;4487:176;;;;:::o;10147:277::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10242:19:::1;:28;10262:7;10242:28;;;;;;;;;;;;;;;;;;;;;;;;;10241:29;10219:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;10364:4;10333:19;:28;10353:7;10333:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;10402:7;10386:30;;;10411:4;10386:30;;;;;;:::i;:::-;;;;;;;;10147:277:::0;:::o;2998:281::-;2765:12;:10;:12::i;:::-;2755:22;;:6;;;;;;;;;;;:22;;;2747:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3121:1:::1;3101:22;;:8;:22;;::::0;3079:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3234:8;3205:38;;3226:6;;;;;;;;;;;3205:38;;;;;;;;;;;;3263:8;3254:6;;:17;;;;;;;;;;;;;;;;;;2998:281:::0;:::o;1927:98::-;1980:7;2007:10;2000:17;;1927:98;:::o;8068:380::-;8221:1;8204:19;;:5;:19;;;8196:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8302:1;8283:21;;:7;:21;;;8275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8386:6;8356:11;:18;8368:5;8356:18;;;;;;;;;;;;;;;:27;8375:7;8356:27;;;;;;;;;;;;;;;:36;;;;8424:7;8408:32;;8417:5;8408:32;;;8433:6;8408:32;;;;;;:::i;:::-;;;;;;;;8068:380;;;:::o;7062:399::-;7165:1;7146:21;;:7;:21;;;7138:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7216:49;7245:1;7249:7;7258:6;7216:20;:49::i;:::-;7294:6;7278:12;;:22;;;;;;;:::i;:::-;;;;;;;;7333:6;7311:9;:18;7321:7;7311:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;7376:7;7355:37;;7372:1;7355:37;;;7385:6;7355:37;;;;;;:::i;:::-;;;;;;;;7405:48;7433:1;7437:7;7446:6;7405:19;:48::i;:::-;7062:399;;:::o;11443:2202::-;11591:1;11575:18;;:4;:18;;;11567:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11668:1;11654:16;;:2;:16;;;11646:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11729:14;;;;;;;;;;;:43;;;;11747:19;:25;11767:4;11747:25;;;;;;;;;;;;;;;;;;;;;;;;;11729:43;:70;;;;11776:19;:23;11796:2;11776:23;;;;;;;;;;;;;;;;;;;;;;;;;11729:70;11721:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;11855:1;11845:6;:11;11841:145;;11873:28;11889:4;11895:2;11899:1;11873:15;:28::i;:::-;11938:15;11916:13;:19;11930:4;11916:19;;;;;;;;;;;;;;;:37;;;;11968:7;;11841:145;11998:20;12023:19;:25;12043:4;12023:25;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;12065:19;:23;12085:2;12065:23;;;;;;;;;;;;;;;;;;;;;;;;;12023:65;12021:68;11998:91;;12100:12;12115:15;:134;;12248:1;12115:134;;;12229:3;12165:13;;;;;;;;;;;12157:21;;:4;:21;;;:50;;12195:12;;12157:50;;;12181:11;;12157:50;12147:6;:61;;;;:::i;:::-;12146:86;;;;:::i;:::-;12115:134;12100:149;;12266:15;12262:1159;;;12310:13;;;;;;;;;;;12302:21;;:4;:21;;;12298:1112;;12350:29;;;;;;;;;;;12346:231;;;12448:17;;12438:6;:27;;12404:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;12346:231;12601:30;;;;;;;;;;;12597:798;;;12686:29;;;;;;;;;;;:105;;;;;12785:6;12762:13;:19;12776:4;12762:19;;;;;;;;;;;;;;;;12744:15;:37;;;;:::i;:::-;:47;;12686:105;12656:578;;;12867:1;12842:16;:22;12859:4;12842:22;;;;;;;;;;;;;;;:26;;;;12656:578;;;12962:17;;12953:6;12928:16;:22;12945:4;12928:22;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;:51;12898:336;;;13109:6;13086:13;:19;13100:4;13086:19;;;;;;;;;;;;;;;;13068:15;:37;;;;:::i;:::-;:47;;13030:180;;;;;;;;;;;;:::i;:::-;;;;;;;;;12898:336;12656:578;13262:29;;;;;;;;;;;13258:118;;;13346:6;13320:16;:22;13337:4;13320:22;;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;13258:118;12597:798;12298:1112;12262:1159;13444:1;13437:4;:8;13433:111;;;13462:41;13478:4;13484:12;;;;;;;;;;;13498:4;13462:15;:41::i;:::-;13528:4;13518:14;;;;;:::i;:::-;;;13433:111;13556:33;13572:4;13578:2;13582:6;13556:15;:33::i;:::-;13622:15;13600:13;:19;13614:4;13600:19;;;;;;;;;;;;;;;:37;;;;11556:2089;;11443:2202;;;;:::o;8456:125::-;;;;:::o;8589:124::-;;;;:::o;6284:770::-;6442:1;6424:20;;:6;:20;;;6416:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6526:1;6505:23;;:9;:23;;;6497:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6581:47;6602:6;6610:9;6621:6;6581:20;:47::i;:::-;6641:21;6665:9;:17;6675:6;6665:17;;;;;;;;;;;;;;;;6641:41;;6732:6;6715:13;:23;;6693:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;6876:6;6860:13;:22;6840:9;:17;6850:6;6840:17;;;;;;;;;;;;;;;:42;;;;6928:6;6904:9;:20;6914:9;6904:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6969:9;6952:35;;6961:6;6952:35;;;6980:6;6952:35;;;;;;:::i;:::-;;;;;;;;7000:46;7020:6;7028:9;7039:6;7000:19;:46::i;:::-;6405:649;6284:770;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:99::-;1663:6;1697:5;1691:12;1681:22;;1611:99;;;:::o;1716:169::-;1800:11;1834:6;1829:3;1822:19;1874:4;1869:3;1865:14;1850:29;;1716:169;;;;:::o;1891:246::-;1972:1;1982:113;1996:6;1993:1;1990:13;1982:113;;;2081:1;2076:3;2072:11;2066:18;2062:1;2057:3;2053:11;2046:39;2018:2;2015:1;2011:10;2006:15;;1982:113;;;2129:1;2120:6;2115:3;2111:16;2104:27;1953:184;1891:246;;;:::o;2143:102::-;2184:6;2235:2;2231:7;2226:2;2219:5;2215:14;2211:28;2201:38;;2143:102;;;:::o;2251:377::-;2339:3;2367:39;2400:5;2367:39;:::i;:::-;2422:71;2486:6;2481:3;2422:71;:::i;:::-;2415:78;;2502:65;2560:6;2555:3;2548:4;2541:5;2537:16;2502:65;:::i;:::-;2592:29;2614:6;2592:29;:::i;:::-;2587:3;2583:39;2576:46;;2343:285;2251:377;;;;:::o;2634:313::-;2747:4;2785:2;2774:9;2770:18;2762:26;;2834:9;2828:4;2824:20;2820:1;2809:9;2805:17;2798:47;2862:78;2935:4;2926:6;2862:78;:::i;:::-;2854:86;;2634:313;;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:320;6585:6;6622:1;6616:4;6612:12;6602:22;;6669:1;6663:4;6659:12;6690:18;6680:81;;6746:4;6738:6;6734:17;6724:27;;6680:81;6808:2;6800:6;6797:14;6777:18;6774:38;6771:84;;6827:18;;:::i;:::-;6771:84;6592:269;6541:320;;;:::o;6867:182::-;7007:34;7003:1;6995:6;6991:14;6984:58;6867:182;:::o;7055:366::-;7197:3;7218:67;7282:2;7277:3;7218:67;:::i;:::-;7211:74;;7294:93;7383:3;7294:93;:::i;:::-;7412:2;7407:3;7403:12;7396:19;;7055:366;;;:::o;7427:419::-;7593:4;7631:2;7620:9;7616:18;7608:26;;7680:9;7674:4;7670:20;7666:1;7655:9;7651:17;7644:47;7708:131;7834:4;7708:131;:::i;:::-;7700:139;;7427:419;;;:::o;7852:172::-;7992:24;7988:1;7980:6;7976:14;7969:48;7852:172;:::o;8030:366::-;8172:3;8193:67;8257:2;8252:3;8193:67;:::i;:::-;8186:74;;8269:93;8358:3;8269:93;:::i;:::-;8387:2;8382:3;8378:12;8371:19;;8030:366;;;:::o;8402:419::-;8568:4;8606:2;8595:9;8591:18;8583:26;;8655:9;8649:4;8645:20;8641:1;8630:9;8626:17;8619:47;8683:131;8809:4;8683:131;:::i;:::-;8675:139;;8402:419;;;:::o;8827:180::-;8875:77;8872:1;8865:88;8972:4;8969:1;8962:15;8996:4;8993:1;8986:15;9013:102;9055:8;9102:5;9099:1;9095:13;9074:34;;9013:102;;;:::o;9121:848::-;9182:5;9189:4;9213:6;9204:15;;9237:5;9228:14;;9251:712;9272:1;9262:8;9259:15;9251:712;;;9367:4;9362:3;9358:14;9352:4;9349:24;9346:50;;;9376:18;;:::i;:::-;9346:50;9426:1;9416:8;9412:16;9409:451;;;9841:4;9834:5;9830:16;9821:25;;9409:451;9891:4;9885;9881:15;9873:23;;9921:32;9944:8;9921:32;:::i;:::-;9909:44;;9251:712;;;9121:848;;;;;;;:::o;9975:1073::-;10029:5;10220:8;10210:40;;10241:1;10232:10;;10243:5;;10210:40;10269:4;10259:36;;10286:1;10277:10;;10288:5;;10259:36;10355:4;10403:1;10398:27;;;;10439:1;10434:191;;;;10348:277;;10398:27;10416:1;10407:10;;10418:5;;;10434:191;10479:3;10469:8;10466:17;10463:43;;;10486:18;;:::i;:::-;10463:43;10535:8;10532:1;10528:16;10519:25;;10570:3;10563:5;10560:14;10557:40;;;10577:18;;:::i;:::-;10557:40;10610:5;;;10348:277;;10734:2;10724:8;10721:16;10715:3;10709:4;10706:13;10702:36;10684:2;10674:8;10671:16;10666:2;10660:4;10657:12;10653:35;10637:111;10634:246;;;10790:8;10784:4;10780:19;10771:28;;10825:3;10818:5;10815:14;10812:40;;;10832:18;;:::i;:::-;10812:40;10865:5;;10634:246;10905:42;10943:3;10933:8;10927:4;10924:1;10905:42;:::i;:::-;10890:57;;;;10979:4;10974:3;10970:14;10963:5;10960:25;10957:51;;;10988:18;;:::i;:::-;10957:51;11037:4;11030:5;11026:16;11017:25;;9975:1073;;;;;;:::o;11054:281::-;11112:5;11136:23;11154:4;11136:23;:::i;:::-;11128:31;;11180:25;11196:8;11180:25;:::i;:::-;11168:37;;11224:104;11261:66;11251:8;11245:4;11224:104;:::i;:::-;11215:113;;11054:281;;;;:::o;11341:410::-;11381:7;11404:20;11422:1;11404:20;:::i;:::-;11399:25;;11438:20;11456:1;11438:20;:::i;:::-;11433:25;;11493:1;11490;11486:9;11515:30;11533:11;11515:30;:::i;:::-;11504:41;;11694:1;11685:7;11681:15;11678:1;11675:22;11655:1;11648:9;11628:83;11605:139;;11724:18;;:::i;:::-;11605:139;11389:362;11341:410;;;;:::o;11757:227::-;11897:34;11893:1;11885:6;11881:14;11874:58;11966:10;11961:2;11953:6;11949:15;11942:35;11757:227;:::o;11990:366::-;12132:3;12153:67;12217:2;12212:3;12153:67;:::i;:::-;12146:74;;12229:93;12318:3;12229:93;:::i;:::-;12347:2;12342:3;12338:12;12331:19;;11990:366;;;:::o;12362:419::-;12528:4;12566:2;12555:9;12551:18;12543:26;;12615:9;12609:4;12605:20;12601:1;12590:9;12586:17;12579:47;12643:131;12769:4;12643:131;:::i;:::-;12635:139;;12362:419;;;:::o;12787:191::-;12827:3;12846:20;12864:1;12846:20;:::i;:::-;12841:25;;12880:20;12898:1;12880:20;:::i;:::-;12875:25;;12923:1;12920;12916:9;12909:16;;12944:3;12941:1;12938:10;12935:36;;;12951:18;;:::i;:::-;12935:36;12787:191;;;;:::o;12984:165::-;13124:17;13120:1;13112:6;13108:14;13101:41;12984:165;:::o;13155:366::-;13297:3;13318:67;13382:2;13377:3;13318:67;:::i;:::-;13311:74;;13394:93;13483:3;13394:93;:::i;:::-;13512:2;13507:3;13503:12;13496:19;;13155:366;;;:::o;13527:419::-;13693:4;13731:2;13720:9;13716:18;13708:26;;13780:9;13774:4;13770:20;13766:1;13755:9;13751:17;13744:47;13808:131;13934:4;13808:131;:::i;:::-;13800:139;;13527:419;;;:::o;13952:174::-;14092:26;14088:1;14080:6;14076:14;14069:50;13952:174;:::o;14132:366::-;14274:3;14295:67;14359:2;14354:3;14295:67;:::i;:::-;14288:74;;14371:93;14460:3;14371:93;:::i;:::-;14489:2;14484:3;14480:12;14473:19;;14132:366;;;:::o;14504:419::-;14670:4;14708:2;14697:9;14693:18;14685:26;;14757:9;14751:4;14747:20;14743:1;14732:9;14728:17;14721:47;14785:131;14911:4;14785:131;:::i;:::-;14777:139;;14504:419;;;:::o;14929:171::-;15069:23;15065:1;15057:6;15053:14;15046:47;14929:171;:::o;15106:366::-;15248:3;15269:67;15333:2;15328:3;15269:67;:::i;:::-;15262:74;;15345:93;15434:3;15345:93;:::i;:::-;15463:2;15458:3;15454:12;15447:19;;15106:366;;;:::o;15478:419::-;15644:4;15682:2;15671:9;15667:18;15659:26;;15731:9;15725:4;15721:20;15717:1;15706:9;15702:17;15695:47;15759:131;15885:4;15759:131;:::i;:::-;15751:139;;15478:419;;;:::o;15903:224::-;16043:34;16039:1;16031:6;16027:14;16020:58;16112:7;16107:2;16099:6;16095:15;16088:32;15903:224;:::o;16133:366::-;16275:3;16296:67;16360:2;16355:3;16296:67;:::i;:::-;16289:74;;16372:93;16461:3;16372:93;:::i;:::-;16490:2;16485:3;16481:12;16474:19;;16133:366;;;:::o;16505:419::-;16671:4;16709:2;16698:9;16694:18;16686:26;;16758:9;16752:4;16748:20;16744:1;16733:9;16729:17;16722:47;16786:131;16912:4;16786:131;:::i;:::-;16778:139;;16505:419;;;:::o;16930:174::-;17070:26;17066:1;17058:6;17054:14;17047:50;16930:174;:::o;17110:366::-;17252:3;17273:67;17337:2;17332:3;17273:67;:::i;:::-;17266:74;;17349:93;17438:3;17349:93;:::i;:::-;17467:2;17462:3;17458:12;17451:19;;17110:366;;;:::o;17482:419::-;17648:4;17686:2;17675:9;17671:18;17663:26;;17735:9;17729:4;17725:20;17721:1;17710:9;17706:17;17699:47;17763:131;17889:4;17763:131;:::i;:::-;17755:139;;17482:419;;;:::o;17907:225::-;18047:34;18043:1;18035:6;18031:14;18024:58;18116:8;18111:2;18103:6;18099:15;18092:33;17907:225;:::o;18138:366::-;18280:3;18301:67;18365:2;18360:3;18301:67;:::i;:::-;18294:74;;18377:93;18466:3;18377:93;:::i;:::-;18495:2;18490:3;18486:12;18479:19;;18138:366;;;:::o;18510:419::-;18676:4;18714:2;18703:9;18699:18;18691:26;;18763:9;18757:4;18753:20;18749:1;18738:9;18734:17;18727:47;18791:131;18917:4;18791:131;:::i;:::-;18783:139;;18510:419;;;:::o;18935:223::-;19075:34;19071:1;19063:6;19059:14;19052:58;19144:6;19139:2;19131:6;19127:15;19120:31;18935:223;:::o;19164:366::-;19306:3;19327:67;19391:2;19386:3;19327:67;:::i;:::-;19320:74;;19403:93;19492:3;19403:93;:::i;:::-;19521:2;19516:3;19512:12;19505:19;;19164:366;;;:::o;19536:419::-;19702:4;19740:2;19729:9;19725:18;19717:26;;19789:9;19783:4;19779:20;19775:1;19764:9;19760:17;19753:47;19817:131;19943:4;19817:131;:::i;:::-;19809:139;;19536:419;;;:::o;19961:221::-;20101:34;20097:1;20089:6;20085:14;20078:58;20170:4;20165:2;20157:6;20153:15;20146:29;19961:221;:::o;20188:366::-;20330:3;20351:67;20415:2;20410:3;20351:67;:::i;:::-;20344:74;;20427:93;20516:3;20427:93;:::i;:::-;20545:2;20540:3;20536:12;20529:19;;20188:366;;;:::o;20560:419::-;20726:4;20764:2;20753:9;20749:18;20741:26;;20813:9;20807:4;20803:20;20799:1;20788:9;20784:17;20777:47;20841:131;20967:4;20841:131;:::i;:::-;20833:139;;20560:419;;;:::o;20985:181::-;21125:33;21121:1;21113:6;21109:14;21102:57;20985:181;:::o;21172:366::-;21314:3;21335:67;21399:2;21394:3;21335:67;:::i;:::-;21328:74;;21411:93;21500:3;21411:93;:::i;:::-;21529:2;21524:3;21520:12;21513:19;;21172:366;;;:::o;21544:419::-;21710:4;21748:2;21737:9;21733:18;21725:26;;21797:9;21791:4;21787:20;21783:1;21772:9;21768:17;21761:47;21825:131;21951:4;21825:131;:::i;:::-;21817:139;;21544:419;;;:::o;21969:224::-;22109:34;22105:1;22097:6;22093:14;22086:58;22178:7;22173:2;22165:6;22161:15;22154:32;21969:224;:::o;22199:366::-;22341:3;22362:67;22426:2;22421:3;22362:67;:::i;:::-;22355:74;;22438:93;22527:3;22438:93;:::i;:::-;22556:2;22551:3;22547:12;22540:19;;22199:366;;;:::o;22571:419::-;22737:4;22775:2;22764:9;22760:18;22752:26;;22824:9;22818:4;22814:20;22810:1;22799:9;22795:17;22788:47;22852:131;22978:4;22852:131;:::i;:::-;22844:139;;22571:419;;;:::o;22996:222::-;23136:34;23132:1;23124:6;23120:14;23113:58;23205:5;23200:2;23192:6;23188:15;23181:30;22996:222;:::o;23224:366::-;23366:3;23387:67;23451:2;23446:3;23387:67;:::i;:::-;23380:74;;23463:93;23552:3;23463:93;:::i;:::-;23581:2;23576:3;23572:12;23565:19;;23224:366;;;:::o;23596:419::-;23762:4;23800:2;23789:9;23785:18;23777:26;;23849:9;23843:4;23839:20;23835:1;23824:9;23820:17;23813:47;23877:131;24003:4;23877:131;:::i;:::-;23869:139;;23596:419;;;:::o;24021:174::-;24161:26;24157:1;24149:6;24145:14;24138:50;24021:174;:::o;24201:366::-;24343:3;24364:67;24428:2;24423:3;24364:67;:::i;:::-;24357:74;;24440:93;24529:3;24440:93;:::i;:::-;24558:2;24553:3;24549:12;24542:19;;24201:366;;;:::o;24573:419::-;24739:4;24777:2;24766:9;24762:18;24754:26;;24826:9;24820:4;24816:20;24812:1;24801:9;24797:17;24790:47;24854:131;24980:4;24854:131;:::i;:::-;24846:139;;24573:419;;;:::o;24998:180::-;25046:77;25043:1;25036:88;25143:4;25140:1;25133:15;25167:4;25164:1;25157:15;25184:185;25224:1;25241:20;25259:1;25241:20;:::i;:::-;25236:25;;25275:20;25293:1;25275:20;:::i;:::-;25270:25;;25314:1;25304:35;;25319:18;;:::i;:::-;25304:35;25361:1;25358;25354:9;25349:14;;25184:185;;;;:::o;25375:227::-;25515:34;25511:1;25503:6;25499:14;25492:58;25584:10;25579:2;25571:6;25567:15;25560:35;25375:227;:::o;25608:366::-;25750:3;25771:67;25835:2;25830:3;25771:67;:::i;:::-;25764:74;;25847:93;25936:3;25847:93;:::i;:::-;25965:2;25960:3;25956:12;25949:19;;25608:366;;;:::o;25980:419::-;26146:4;26184:2;26173:9;26169:18;26161:26;;26233:9;26227:4;26223:20;26219:1;26208:9;26204:17;26197:47;26261:131;26387:4;26261:131;:::i;:::-;26253:139;;25980:419;;;:::o;26405:194::-;26445:4;26465:20;26483:1;26465:20;:::i;:::-;26460:25;;26499:20;26517:1;26499:20;:::i;:::-;26494:25;;26543:1;26540;26536:9;26528:17;;26567:1;26561:4;26558:11;26555:37;;;26572:18;;:::i;:::-;26555:37;26405:194;;;;:::o;26605:222::-;26745:34;26741:1;26733:6;26729:14;26722:58;26814:5;26809:2;26801:6;26797:15;26790:30;26605:222;:::o;26833:366::-;26975:3;26996:67;27060:2;27055:3;26996:67;:::i;:::-;26989:74;;27072:93;27161:3;27072:93;:::i;:::-;27190:2;27185:3;27181:12;27174:19;;26833:366;;;:::o;27205:419::-;27371:4;27409:2;27398:9;27394:18;27386:26;;27458:9;27452:4;27448:20;27444:1;27433:9;27429:17;27422:47;27486:131;27612:4;27486:131;:::i;:::-;27478:139;;27205:419;;;:::o;27630:225::-;27770:34;27766:1;27758:6;27754:14;27747:58;27839:8;27834:2;27826:6;27822:15;27815:33;27630:225;:::o;27861:366::-;28003:3;28024:67;28088:2;28083:3;28024:67;:::i;:::-;28017:74;;28100:93;28189:3;28100:93;:::i;:::-;28218:2;28213:3;28209:12;28202:19;;27861:366;;;:::o;28233:419::-;28399:4;28437:2;28426:9;28422:18;28414:26;;28486:9;28480:4;28476:20;28472:1;28461:9;28457:17;28450:47;28514:131;28640:4;28514:131;:::i;:::-;28506:139;;28233:419;;;:::o

Swarm Source

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