ETH Price: $3,496.99 (+3.11%)
Gas: 3 Gwei

Token

OrdinalX (ORDX)
 

Overview

Max Total Supply

1,000,000 ORDX

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: ORDX 3
Balance
0.000000014 ORDX

Value
$0.00
0x7801a33388f5240a783589a38440171431f29eec
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ORDX

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-05
*/

// SPDX-License-Identifier: MIT
/*

 Welcome to Ordinal X - Where Crypto Meets Connection! 
 Dear Ordinal X Explorers,
 Step into the future of social networking with Ordinal X,
 your gateway to a vibrant and decentralized digital community!

 Socials:

 Website:     https://ordinal-x.info/
 App:         https://ordinalx.app/
 Telegram:    https://t.me/OrdinalXOfficial
 Twitter:     https://twitter.com/OrdinalXX

 

                                                                                                                                     
*/


pragma solidity ^0.8.17;

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

interface 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 IFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

contract ORDX is Context, IERC20, Ownable {

    using Address for address payable;

    IRouter public router;
    address public pair;
    
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => bool) public _isExcludedFromMaxBalance;

    uint8 private constant _decimals = 9; 
    uint256 private _tTotal = 1_000_000 * (10**_decimals);
    uint256 public swapThreshold = 10_000 * (10**_decimals); 
    uint256 public maxTxAmount = 20_000 * (10**_decimals);
    uint256 public maxWallet =  20_000 * (10**_decimals);

    string private constant _name = "OrdinalX"; 
    string private constant _symbol = "ORDX";

    uint8 public buyTax = 30; 
    uint8 public sellTax = 40;

    address private marketingWallet = 0x3d5951dac566C5EAAB45e12abccb09B6Dd00f42D; 
    
    bool public enableTrading = false;
    bool private swapping;
    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }   

    event SwapAndLiquify();
    event TaxesChanged();

    constructor () {
        _tOwned[_msgSender()] = _tTotal;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
       
        _approve(address(this), address(router), ~uint256(0));
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;

        _isExcludedFromMaxBalance[owner()] = true;
        _isExcludedFromMaxBalance[address(this)] = true;
        _isExcludedFromMaxBalance[marketingWallet] = true;
        _isExcludedFromMaxBalance[pair] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

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

    function openTrading() external onlyOwner{
        require(!enableTrading,"Can only be opened once");
        enableTrading = true;
    }

    function setContractTaxes(uint8 buyTax_, uint8 sellTax_) external onlyOwner{
        require(buyTax_ <= 35 && sellTax_<= 99, "Taxes can't exceed the limit.");
        buyTax = buyTax_; sellTax = sellTax_;
        emit TaxesChanged();
    }

    function setContractLimits(uint maxTX_EXACT, uint maxWallet_EXACT) public onlyOwner{
        uint pointFiveSupply = (_tTotal * 5 / 1000) / (10**_decimals);
        require(maxTX_EXACT >= pointFiveSupply && maxWallet_EXACT >= pointFiveSupply, "Invalid Settings");
        maxTxAmount = maxTX_EXACT * (10**_decimals);
        maxWallet = maxWallet_EXACT * (10**_decimals);
    }

    function setSwapSettings(uint swapThreshold_EXACT) public onlyOwner{
        swapThreshold = swapThreshold_EXACT * (10**_decimals);
    }

    function setExcludedFromLimits(address account,bool isExcluded) public onlyOwner{
        _isExcludedFromMaxBalance[account] = isExcluded;
    }

    function setExcludedFromTaxes(address account, bool isExcluded) public onlyOwner{
        _isExcludedFromFee[account] = isExcluded;
    }

    function manualSwap() external lockTheSwap{
        require(msg.sender == marketingWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0){
            uint256 ethSwapped = swapTokensForETH(tokenBalance);
            if(ethSwapped > 0)
                payable(marketingWallet).transfer(ethSwapped);
        }
        if (address(this).balance > 0)
            payable(marketingWallet).sendValue(address(this).balance);
    }

    function _preTransferCheck(address from,address to,uint256 amount) internal{
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= maxTxAmount || _isExcludedFromMaxBalance[from], "Transfer amount exceeds the _maxTxAmount.");

        if(!enableTrading)
            require(_isExcludedFromMaxBalance[from] && from != pair);

        if(!_isExcludedFromMaxBalance[to])
            require(balanceOf(to) + amount <= maxWallet, "Transfer amount exceeds the maxWallet.");
        
        if (balanceOf(address(this)) >= swapThreshold && !swapping && enableTrading && from != pair && from != owner() && to != owner())
            swapAndLiquify();
    }

    function _getTaxValues(uint amount, address from, bool isSell) private returns(uint256){
        uint256 taxedTokens = amount * buyTax / 100;
        if(isSell)
            taxedTokens = amount * sellTax / 100;

        if (taxedTokens > 0){
            _tOwned[address(this)] += taxedTokens;
            emit Transfer (from, address(this), taxedTokens);
        }
        return (amount - taxedTokens);
    }

    function _transfer(address from,address to,uint256 amount) private {
        _preTransferCheck(from, to, amount);
        _tOwned[from] -= amount;
        uint256 transferAmount = amount;
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            transferAmount = _getTaxValues(amount, from, to == pair);
        }
        _tOwned[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }

    function swapAndLiquify() private lockTheSwap{

        uint256 tokensForMarketing = swapThreshold * 100 / 100;
        uint256 tokensForLiquidity = swapThreshold * 0 / 100;
        
        if(tokensForMarketing > 0){
            uint256 ethSwapped = swapTokensForETH(tokensForMarketing);
            if(ethSwapped > 0)
                payable(marketingWallet).transfer(ethSwapped);
        }

        if(tokensForLiquidity > 0){
            uint half = tokensForLiquidity / 2;
            uint otherHalf = tokensForLiquidity - half;
            uint balAutoLP = swapTokensForETH(half);
            if (balAutoLP > 0)
                addLiquidity(otherHalf, balAutoLP);
        }

        if (address(this).balance > 0)
            payable(marketingWallet).sendValue(address(this).balance);
        
        emit SwapAndLiquify();

    }

    function swapTokensForETH(uint256 tokenAmount) private returns (uint256) {
        uint256 initialBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        return (address(this).balance - initialBalance);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);

        (,uint256 ethFromLiquidity,) = router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            marketingWallet,
            block.timestamp
        );
        
        if (ethAmount - ethFromLiquidity > 0)
            payable(marketingWallet).sendValue (ethAmount - ethFromLiquidity);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[],"name":"TaxesChanged","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":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTX_EXACT","type":"uint256"},{"internalType":"uint256","name":"maxWallet_EXACT","type":"uint256"}],"name":"setContractLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyTax_","type":"uint8"},{"internalType":"uint8","name":"sellTax_","type":"uint8"}],"name":"setContractTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setExcludedFromTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapThreshold_EXACT","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000b83565b620f424062000024919062000bd3565b6007556009600a62000037919062000b83565b61271062000046919062000bd3565b6008556009600a62000059919062000b83565b614e2062000068919062000bd3565b6009556009600a6200007b919062000b83565b614e206200008a919062000bd3565b600a55601e600b5f6101000a81548160ff021916908360ff1602179055506028600b60016101000a81548160ff021916908360ff160217905550733d5951dac566c5eaab45e12abccb09b6dd00f42d600b60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600b60166101000a81548160ff0219169083151502179055503480156200013f575f80fd5b5062000160620001546200073760201b60201c565b6200073e60201b60201c565b60075460035f620001766200073760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000216573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023c919062000c82565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c8919062000c82565b6040518363ffffffff1660e01b8152600401620002e792919062000cc3565b6020604051808303815f875af115801562000304573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032a919062000c82565b90508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003e13060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f19620007ff60201b60201c565b600160055f620003f6620009ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f62000526620009ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006c76200073760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000727919062000cff565b60405180910390a3505062000e52565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000870576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008679062000d9e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d89062000e32565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620009bd919062000cff565b60405180910390a3505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000a7b5780860481111562000a535762000a52620009f1565b5b600185161562000a635780820291505b808102905062000a738562000a1e565b945062000a33565b94509492505050565b5f8262000a95576001905062000b67565b8162000aa4575f905062000b67565b816001811462000abd576002811462000ac85762000afe565b600191505062000b67565b60ff84111562000add5762000adc620009f1565b5b8360020a91508482111562000af75762000af6620009f1565b5b5062000b67565b5060208310610133831016604e8410600b841016171562000b385782820a90508381111562000b325762000b31620009f1565b5b62000b67565b62000b47848484600162000a2a565b9250905081840481111562000b615762000b60620009f1565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000b8f8262000b6e565b915062000b9c8362000b77565b925062000bcb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a84565b905092915050565b5f62000bdf8262000b6e565b915062000bec8362000b6e565b925082820262000bfc8162000b6e565b9150828204841483151762000c165762000c15620009f1565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c4c8262000c21565b9050919050565b62000c5e8162000c40565b811462000c69575f80fd5b50565b5f8151905062000c7c8162000c53565b92915050565b5f6020828403121562000c9a5762000c9962000c1d565b5b5f62000ca98482850162000c6c565b91505092915050565b62000cbd8162000c40565b82525050565b5f60408201905062000cd85f83018562000cb2565b62000ce7602083018462000cb2565b9392505050565b62000cf98162000b6e565b82525050565b5f60208201905062000d145f83018462000cee565b92915050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62000d8660248362000d1a565b915062000d938262000d2a565b604082019050919050565b5f6020820190508181035f83015262000db78162000d78565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000e1a60228362000d1a565b915062000e278262000dbe565b604082019050919050565b5f6020820190508181035f83015262000e4b8162000e0c565b9050919050565b6134898062000e605f395ff3fe6080604052600436106101c5575f3560e01c8063768dc710116100f6578063b3e5491111610094578063dd62ed3e11610063578063dd62ed3e14610610578063f2fde38b1461064c578063f887ea4014610674578063f8b45b051461069e576101cc565b8063b3e5491114610580578063b45ad8ec146105a8578063c9567bf9146105d0578063cc1776d3146105e6576101cc565b80638da5cb5b116100d05780638da5cb5b146104c657806395d89b41146104f0578063a8aa1b311461051a578063a9059cbb14610544576101cc565b8063768dc710146104365780638a8c523c146104725780638c0b5e221461049c576101cc565b8063313ce5671161016357806351bc3c851161013d57806351bc3c85146103a65780635d64616b146103bc57806370a08231146103e4578063715018a614610420576101cc565b8063313ce5671461032a57806336fddb04146103545780634f7041a51461037c576101cc565b80630a368e181161019f5780630a368e181461026057806318160ddd1461028857806323b872dd146102b257806328c61f41146102ee576101cc565b80630445b667146101d057806306fdde03146101fa578063095ea7b314610224576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e46106c8565b6040516101f19190612340565b60405180910390f35b348015610205575f80fd5b5061020e6106ce565b60405161021b91906123e3565b60405180910390f35b34801561022f575f80fd5b5061024a6004803603810190610245919061248b565b61070b565b60405161025791906124e3565b60405180910390f35b34801561026b575f80fd5b5061028660048036038101906102819190612526565b610728565b005b348015610293575f80fd5b5061029c6107fc565b6040516102a99190612340565b60405180910390f35b3480156102bd575f80fd5b506102d860048036038101906102d39190612564565b610805565b6040516102e591906124e3565b60405180910390f35b3480156102f9575f80fd5b50610314600480360381019061030f91906125b4565b6108b8565b60405161032191906124e3565b60405180910390f35b348015610335575f80fd5b5061033e6108d5565b60405161034b91906125fa565b60405180910390f35b34801561035f575f80fd5b5061037a60048036038101906103759190612526565b6108dd565b005b348015610387575f80fd5b506103906109b1565b60405161039d91906125fa565b60405180910390f35b3480156103b1575f80fd5b506103ba6109c3565b005b3480156103c7575f80fd5b506103e260048036038101906103dd919061263d565b610b39565b005b3480156103ef575f80fd5b5061040a600480360381019061040591906125b4565b610c71565b6040516104179190612340565b60405180910390f35b34801561042b575f80fd5b50610434610cb7565b005b348015610441575f80fd5b5061045c600480360381019061045791906125b4565b610d3e565b60405161046991906124e3565b60405180910390f35b34801561047d575f80fd5b50610486610d5b565b60405161049391906124e3565b60405180910390f35b3480156104a7575f80fd5b506104b0610d6e565b6040516104bd9190612340565b60405180910390f35b3480156104d1575f80fd5b506104da610d74565b6040516104e7919061268a565b60405180910390f35b3480156104fb575f80fd5b50610504610d9b565b60405161051191906123e3565b60405180910390f35b348015610525575f80fd5b5061052e610dd8565b60405161053b919061268a565b60405180910390f35b34801561054f575f80fd5b5061056a6004803603810190610565919061248b565b610dfd565b60405161057791906124e3565b60405180910390f35b34801561058b575f80fd5b506105a660048036038101906105a191906126a3565b610e1a565b005b3480156105b3575f80fd5b506105ce60048036038101906105c991906126ce565b610eb8565b005b3480156105db575f80fd5b506105e4610ffd565b005b3480156105f1575f80fd5b506105fa6110e6565b60405161060791906125fa565b60405180910390f35b34801561061b575f80fd5b506106366004803603810190610631919061270c565b6110f9565b6040516106439190612340565b60405180910390f35b348015610657575f80fd5b50610672600480360381019061066d91906125b4565b61117b565b005b34801561067f575f80fd5b50610688611271565b60405161069591906127a5565b60405180910390f35b3480156106a9575f80fd5b506106b2611296565b6040516106bf9190612340565b60405180910390f35b60085481565b60606040518060400160405280600881526020017f4f7264696e616c58000000000000000000000000000000000000000000000000815250905090565b5f61071e61071761129c565b84846112a3565b6001905092915050565b61073061129c565b73ffffffffffffffffffffffffffffffffffffffff1661074e610d74565b73ffffffffffffffffffffffffffffffffffffffff16146107a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079b90612808565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600754905090565b5f610811848484611466565b6108ad8461081d61129c565b8460045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61086461129c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108a89190612853565b6112a3565b600190509392505050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f6009905090565b6108e561129c565b73ffffffffffffffffffffffffffffffffffffffff16610903610d74565b73ffffffffffffffffffffffffffffffffffffffff1614610959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095090612808565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600b5f9054906101000a900460ff1681565b6001600b60176101000a81548160ff021916908315150217905550600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a37575f80fd5b5f610a4130610c71565b90505f811115610ac8575f610a5582611686565b90505f811115610ac657600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610ac4573d5f803e3d5ffd5b505b505b5f471115610b1c57610b1b47600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118d290919063ffffffff16565b5b505f600b60176101000a81548160ff021916908315150217905550565b610b4161129c565b73ffffffffffffffffffffffffffffffffffffffff16610b5f610d74565b73ffffffffffffffffffffffffffffffffffffffff1614610bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bac90612808565b60405180910390fd5b60238260ff1611158015610bcd575060638160ff1611155b610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c03906128d0565b60405180910390fd5b81600b5f6101000a81548160ff021916908360ff16021790555080600b60016101000a81548160ff021916908360ff1602179055507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a15050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cbf61129c565b73ffffffffffffffffffffffffffffffffffffffff16610cdd610d74565b73ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90612808565b60405180910390fd5b610d3c5f6119c2565b565b6005602052805f5260405f205f915054906101000a900460ff1681565b600b60169054906101000a900460ff1681565b60095481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4f52445800000000000000000000000000000000000000000000000000000000815250905090565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610e10610e0961129c565b8484611466565b6001905092915050565b610e2261129c565b73ffffffffffffffffffffffffffffffffffffffff16610e40610d74565b73ffffffffffffffffffffffffffffffffffffffff1614610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d90612808565b60405180910390fd5b6009600a610ea49190612a1d565b81610eaf9190612a67565b60088190555050565b610ec061129c565b73ffffffffffffffffffffffffffffffffffffffff16610ede610d74565b73ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90612808565b60405180910390fd5b5f6009600a610f439190612a1d565b6103e86005600754610f559190612a67565b610f5f9190612ad5565b610f699190612ad5565b9050808310158015610f7b5750808210155b610fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb190612b4f565b60405180910390fd5b6009600a610fc89190612a1d565b83610fd39190612a67565b6009819055506009600a610fe79190612a1d565b82610ff29190612a67565b600a81905550505050565b61100561129c565b73ffffffffffffffffffffffffffffffffffffffff16611023610d74565b73ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090612808565b60405180910390fd5b600b60169054906101000a900460ff16156110c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c090612bb7565b60405180910390fd5b6001600b60166101000a81548160ff021916908315150217905550565b600b60019054906101000a900460ff1681565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61118361129c565b73ffffffffffffffffffffffffffffffffffffffff166111a1610d74565b73ffffffffffffffffffffffffffffffffffffffff16146111f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ee90612808565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125c90612c45565b60405180910390fd5b61126e816119c2565b50565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612cd3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690612d61565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114599190612340565b60405180910390a3505050565b611471838383611a83565b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546114bd9190612853565b925050819055505f81905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611566575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115c8576115c5828560025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614611ec7565b90505b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116149190612d7f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116789190612340565b60405180910390a350505050565b5f804790505f600267ffffffffffffffff8111156116a7576116a6612db2565b5b6040519080825280602002602001820160405280156116d55781602001602082028036833780820191505090505b50905030815f815181106116ec576116eb612ddf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611790573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b49190612e20565b816001815181106117c8576117c7612ddf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061182e3060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866112a3565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8430426040518663ffffffff1660e01b8152600401611890959493929190612f3b565b5f604051808303815f87803b1580156118a7575f80fd5b505af11580156118b9573d5f803e3d5ffd5b5050505081476118c99190612853565b92505050919050565b80471015611915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190c90612fdd565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168260405161193a90613028565b5f6040518083038185875af1925050503d805f8114611974576040519150601f19603f3d011682016040523d82523d5f602084013e611979565b606091505b50509050806119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906130ac565b60405180910390fd5b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae89061313a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b56906131c8565b60405180910390fd5b5f8111611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9890613256565b60405180910390fd5b60095481111580611bf8575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e906132e4565b60405180910390fd5b600b60169054906101000a900460ff16611cf75760065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611cee575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611cf6575f80fd5b5b60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611d9e57600a5481611d5284610c71565b611d5c9190612d7f565b1115611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9490613372565b60405180910390fd5b5b600854611daa30610c71565b10158015611dc55750600b60179054906101000a900460ff16155b8015611ddd5750600b60169054906101000a900460ff165b8015611e36575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e755750611e45610d74565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eb45750611e84610d74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ec257611ec1611ffe565b5b505050565b5f806064600b5f9054906101000a900460ff1660ff1686611ee89190612a67565b611ef29190612ad5565b90508215611f27576064600b60019054906101000a900460ff1660ff1686611f1a9190612a67565b611f249190612ad5565b90505b5f811115611fe8578060035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f7b9190612d7f565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fdf9190612340565b60405180910390a35b8085611ff49190612853565b9150509392505050565b6001600b60176101000a81548160ff0219169083151502179055505f60648060085461202a9190612a67565b6120349190612ad5565b90505f60645f6008546120479190612a67565b6120519190612ad5565b90505f8211156120d8575f61206583611686565b90505f8111156120d657600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120d4573d5f803e3d5ffd5b505b505b5f811115612122575f6002826120ee9190612ad5565b90505f81836120fd9190612853565b90505f61210983611686565b90505f81111561211e5761211d82826121c0565b5b5050505b5f4711156121765761217547600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118d290919063ffffffff16565b5b7fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003060405160405180910390a150505f600b60176101000a81548160ff021916908315150217905550565b6121ec3060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112a3565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330865f80600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161227496959493929190613390565b60606040518083038185885af1158015612290573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906122b59190613403565b509150505f81836122c69190612853565b11156123235761232281836122db9190612853565b600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118d290919063ffffffff16565b5b505050565b5f819050919050565b61233a81612328565b82525050565b5f6020820190506123535f830184612331565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612390578082015181840152602081019050612375565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123b582612359565b6123bf8185612363565b93506123cf818560208601612373565b6123d88161239b565b840191505092915050565b5f6020820190508181035f8301526123fb81846123ab565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61243082612407565b9050919050565b61244081612426565b811461244a575f80fd5b50565b5f8135905061245b81612437565b92915050565b61246a81612328565b8114612474575f80fd5b50565b5f8135905061248581612461565b92915050565b5f80604083850312156124a1576124a0612403565b5b5f6124ae8582860161244d565b92505060206124bf85828601612477565b9150509250929050565b5f8115159050919050565b6124dd816124c9565b82525050565b5f6020820190506124f65f8301846124d4565b92915050565b612505816124c9565b811461250f575f80fd5b50565b5f81359050612520816124fc565b92915050565b5f806040838503121561253c5761253b612403565b5b5f6125498582860161244d565b925050602061255a85828601612512565b9150509250929050565b5f805f6060848603121561257b5761257a612403565b5b5f6125888682870161244d565b93505060206125998682870161244d565b92505060406125aa86828701612477565b9150509250925092565b5f602082840312156125c9576125c8612403565b5b5f6125d68482850161244d565b91505092915050565b5f60ff82169050919050565b6125f4816125df565b82525050565b5f60208201905061260d5f8301846125eb565b92915050565b61261c816125df565b8114612626575f80fd5b50565b5f8135905061263781612613565b92915050565b5f806040838503121561265357612652612403565b5b5f61266085828601612629565b925050602061267185828601612629565b9150509250929050565b61268481612426565b82525050565b5f60208201905061269d5f83018461267b565b92915050565b5f602082840312156126b8576126b7612403565b5b5f6126c584828501612477565b91505092915050565b5f80604083850312156126e4576126e3612403565b5b5f6126f185828601612477565b925050602061270285828601612477565b9150509250929050565b5f806040838503121561272257612721612403565b5b5f61272f8582860161244d565b92505060206127408582860161244d565b9150509250929050565b5f819050919050565b5f61276d61276861276384612407565b61274a565b612407565b9050919050565b5f61277e82612753565b9050919050565b5f61278f82612774565b9050919050565b61279f81612785565b82525050565b5f6020820190506127b85f830184612796565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127f2602083612363565b91506127fd826127be565b602082019050919050565b5f6020820190508181035f83015261281f816127e6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61285d82612328565b915061286883612328565b92508282039050818111156128805761287f612826565b5b92915050565b7f54617865732063616e27742065786365656420746865206c696d69742e0000005f82015250565b5f6128ba601d83612363565b91506128c582612886565b602082019050919050565b5f6020820190508181035f8301526128e7816128ae565b9050919050565b5f8160011c9050919050565b5f808291508390505b60018511156129435780860481111561291f5761291e612826565b5b600185161561292e5780820291505b808102905061293c856128ee565b9450612903565b94509492505050565b5f8261295b5760019050612a16565b81612968575f9050612a16565b816001811461297e5760028114612988576129b7565b6001915050612a16565b60ff84111561299a57612999612826565b5b8360020a9150848211156129b1576129b0612826565b5b50612a16565b5060208310610133831016604e8410600b84101617156129ec5782820a9050838111156129e7576129e6612826565b5b612a16565b6129f984848460016128fa565b92509050818404811115612a1057612a0f612826565b5b81810290505b9392505050565b5f612a2782612328565b9150612a32836125df565b9250612a5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461294c565b905092915050565b5f612a7182612328565b9150612a7c83612328565b9250828202612a8a81612328565b91508282048414831517612aa157612aa0612826565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612adf82612328565b9150612aea83612328565b925082612afa57612af9612aa8565b5b828204905092915050565b7f496e76616c69642053657474696e6773000000000000000000000000000000005f82015250565b5f612b39601083612363565b9150612b4482612b05565b602082019050919050565b5f6020820190508181035f830152612b6681612b2d565b9050919050565b7f43616e206f6e6c79206265206f70656e6564206f6e63650000000000000000005f82015250565b5f612ba1601783612363565b9150612bac82612b6d565b602082019050919050565b5f6020820190508181035f830152612bce81612b95565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612c2f602683612363565b9150612c3a82612bd5565b604082019050919050565b5f6020820190508181035f830152612c5c81612c23565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cbd602483612363565b9150612cc882612c63565b604082019050919050565b5f6020820190508181035f830152612cea81612cb1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d4b602283612363565b9150612d5682612cf1565b604082019050919050565b5f6020820190508181035f830152612d7881612d3f565b9050919050565b5f612d8982612328565b9150612d9483612328565b9250828201905080821115612dac57612dab612826565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612e1a81612437565b92915050565b5f60208284031215612e3557612e34612403565b5b5f612e4284828501612e0c565b91505092915050565b5f819050919050565b5f612e6e612e69612e6484612e4b565b61274a565b612328565b9050919050565b612e7e81612e54565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612eb681612426565b82525050565b5f612ec78383612ead565b60208301905092915050565b5f602082019050919050565b5f612ee982612e84565b612ef38185612e8e565b9350612efe83612e9e565b805f5b83811015612f2e578151612f158882612ebc565b9750612f2083612ed3565b925050600181019050612f01565b5085935050505092915050565b5f60a082019050612f4e5f830188612331565b612f5b6020830187612e75565b8181036040830152612f6d8186612edf565b9050612f7c606083018561267b565b612f896080830184612331565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f612fc7601d83612363565b9150612fd282612f93565b602082019050919050565b5f6020820190508181035f830152612ff481612fbb565b9050919050565b5f81905092915050565b50565b5f6130135f83612ffb565b915061301e82613005565b5f82019050919050565b5f61303282613008565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f613096603a83612363565b91506130a18261303c565b604082019050919050565b5f6020820190508181035f8301526130c38161308a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613124602583612363565b915061312f826130ca565b604082019050919050565b5f6020820190508181035f83015261315181613118565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131b2602383612363565b91506131bd82613158565b604082019050919050565b5f6020820190508181035f8301526131df816131a6565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613240602983612363565b915061324b826131e6565b604082019050919050565b5f6020820190508181035f83015261326d81613234565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d61785f8201527f5478416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b5f6132ce602983612363565b91506132d982613274565b604082019050919050565b5f6020820190508181035f8301526132fb816132c2565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178575f8201527f616c6c65742e0000000000000000000000000000000000000000000000000000602082015250565b5f61335c602683612363565b915061336782613302565b604082019050919050565b5f6020820190508181035f83015261338981613350565b9050919050565b5f60c0820190506133a35f83018961267b565b6133b06020830188612331565b6133bd6040830187612e75565b6133ca6060830186612e75565b6133d7608083018561267b565b6133e460a0830184612331565b979650505050505050565b5f815190506133fd81612461565b92915050565b5f805f6060848603121561341a57613419612403565b5b5f613427868287016133ef565b9350506020613438868287016133ef565b9250506040613449868287016133ef565b915050925092509256fea2646970667358221220453c2d035643fe8bd0a9aafc6c3238e1169b7e102b7ebaa9571140c94bf6a06b64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101c5575f3560e01c8063768dc710116100f6578063b3e5491111610094578063dd62ed3e11610063578063dd62ed3e14610610578063f2fde38b1461064c578063f887ea4014610674578063f8b45b051461069e576101cc565b8063b3e5491114610580578063b45ad8ec146105a8578063c9567bf9146105d0578063cc1776d3146105e6576101cc565b80638da5cb5b116100d05780638da5cb5b146104c657806395d89b41146104f0578063a8aa1b311461051a578063a9059cbb14610544576101cc565b8063768dc710146104365780638a8c523c146104725780638c0b5e221461049c576101cc565b8063313ce5671161016357806351bc3c851161013d57806351bc3c85146103a65780635d64616b146103bc57806370a08231146103e4578063715018a614610420576101cc565b8063313ce5671461032a57806336fddb04146103545780634f7041a51461037c576101cc565b80630a368e181161019f5780630a368e181461026057806318160ddd1461028857806323b872dd146102b257806328c61f41146102ee576101cc565b80630445b667146101d057806306fdde03146101fa578063095ea7b314610224576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e46106c8565b6040516101f19190612340565b60405180910390f35b348015610205575f80fd5b5061020e6106ce565b60405161021b91906123e3565b60405180910390f35b34801561022f575f80fd5b5061024a6004803603810190610245919061248b565b61070b565b60405161025791906124e3565b60405180910390f35b34801561026b575f80fd5b5061028660048036038101906102819190612526565b610728565b005b348015610293575f80fd5b5061029c6107fc565b6040516102a99190612340565b60405180910390f35b3480156102bd575f80fd5b506102d860048036038101906102d39190612564565b610805565b6040516102e591906124e3565b60405180910390f35b3480156102f9575f80fd5b50610314600480360381019061030f91906125b4565b6108b8565b60405161032191906124e3565b60405180910390f35b348015610335575f80fd5b5061033e6108d5565b60405161034b91906125fa565b60405180910390f35b34801561035f575f80fd5b5061037a60048036038101906103759190612526565b6108dd565b005b348015610387575f80fd5b506103906109b1565b60405161039d91906125fa565b60405180910390f35b3480156103b1575f80fd5b506103ba6109c3565b005b3480156103c7575f80fd5b506103e260048036038101906103dd919061263d565b610b39565b005b3480156103ef575f80fd5b5061040a600480360381019061040591906125b4565b610c71565b6040516104179190612340565b60405180910390f35b34801561042b575f80fd5b50610434610cb7565b005b348015610441575f80fd5b5061045c600480360381019061045791906125b4565b610d3e565b60405161046991906124e3565b60405180910390f35b34801561047d575f80fd5b50610486610d5b565b60405161049391906124e3565b60405180910390f35b3480156104a7575f80fd5b506104b0610d6e565b6040516104bd9190612340565b60405180910390f35b3480156104d1575f80fd5b506104da610d74565b6040516104e7919061268a565b60405180910390f35b3480156104fb575f80fd5b50610504610d9b565b60405161051191906123e3565b60405180910390f35b348015610525575f80fd5b5061052e610dd8565b60405161053b919061268a565b60405180910390f35b34801561054f575f80fd5b5061056a6004803603810190610565919061248b565b610dfd565b60405161057791906124e3565b60405180910390f35b34801561058b575f80fd5b506105a660048036038101906105a191906126a3565b610e1a565b005b3480156105b3575f80fd5b506105ce60048036038101906105c991906126ce565b610eb8565b005b3480156105db575f80fd5b506105e4610ffd565b005b3480156105f1575f80fd5b506105fa6110e6565b60405161060791906125fa565b60405180910390f35b34801561061b575f80fd5b506106366004803603810190610631919061270c565b6110f9565b6040516106439190612340565b60405180910390f35b348015610657575f80fd5b50610672600480360381019061066d91906125b4565b61117b565b005b34801561067f575f80fd5b50610688611271565b60405161069591906127a5565b60405180910390f35b3480156106a9575f80fd5b506106b2611296565b6040516106bf9190612340565b60405180910390f35b60085481565b60606040518060400160405280600881526020017f4f7264696e616c58000000000000000000000000000000000000000000000000815250905090565b5f61071e61071761129c565b84846112a3565b6001905092915050565b61073061129c565b73ffffffffffffffffffffffffffffffffffffffff1661074e610d74565b73ffffffffffffffffffffffffffffffffffffffff16146107a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079b90612808565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600754905090565b5f610811848484611466565b6108ad8461081d61129c565b8460045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61086461129c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108a89190612853565b6112a3565b600190509392505050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f6009905090565b6108e561129c565b73ffffffffffffffffffffffffffffffffffffffff16610903610d74565b73ffffffffffffffffffffffffffffffffffffffff1614610959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095090612808565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600b5f9054906101000a900460ff1681565b6001600b60176101000a81548160ff021916908315150217905550600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a37575f80fd5b5f610a4130610c71565b90505f811115610ac8575f610a5582611686565b90505f811115610ac657600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610ac4573d5f803e3d5ffd5b505b505b5f471115610b1c57610b1b47600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118d290919063ffffffff16565b5b505f600b60176101000a81548160ff021916908315150217905550565b610b4161129c565b73ffffffffffffffffffffffffffffffffffffffff16610b5f610d74565b73ffffffffffffffffffffffffffffffffffffffff1614610bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bac90612808565b60405180910390fd5b60238260ff1611158015610bcd575060638160ff1611155b610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c03906128d0565b60405180910390fd5b81600b5f6101000a81548160ff021916908360ff16021790555080600b60016101000a81548160ff021916908360ff1602179055507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a15050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cbf61129c565b73ffffffffffffffffffffffffffffffffffffffff16610cdd610d74565b73ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90612808565b60405180910390fd5b610d3c5f6119c2565b565b6005602052805f5260405f205f915054906101000a900460ff1681565b600b60169054906101000a900460ff1681565b60095481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4f52445800000000000000000000000000000000000000000000000000000000815250905090565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610e10610e0961129c565b8484611466565b6001905092915050565b610e2261129c565b73ffffffffffffffffffffffffffffffffffffffff16610e40610d74565b73ffffffffffffffffffffffffffffffffffffffff1614610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d90612808565b60405180910390fd5b6009600a610ea49190612a1d565b81610eaf9190612a67565b60088190555050565b610ec061129c565b73ffffffffffffffffffffffffffffffffffffffff16610ede610d74565b73ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90612808565b60405180910390fd5b5f6009600a610f439190612a1d565b6103e86005600754610f559190612a67565b610f5f9190612ad5565b610f699190612ad5565b9050808310158015610f7b5750808210155b610fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb190612b4f565b60405180910390fd5b6009600a610fc89190612a1d565b83610fd39190612a67565b6009819055506009600a610fe79190612a1d565b82610ff29190612a67565b600a81905550505050565b61100561129c565b73ffffffffffffffffffffffffffffffffffffffff16611023610d74565b73ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090612808565b60405180910390fd5b600b60169054906101000a900460ff16156110c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c090612bb7565b60405180910390fd5b6001600b60166101000a81548160ff021916908315150217905550565b600b60019054906101000a900460ff1681565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61118361129c565b73ffffffffffffffffffffffffffffffffffffffff166111a1610d74565b73ffffffffffffffffffffffffffffffffffffffff16146111f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ee90612808565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125c90612c45565b60405180910390fd5b61126e816119c2565b50565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612cd3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690612d61565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114599190612340565b60405180910390a3505050565b611471838383611a83565b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546114bd9190612853565b925050819055505f81905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611566575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115c8576115c5828560025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614611ec7565b90505b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116149190612d7f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116789190612340565b60405180910390a350505050565b5f804790505f600267ffffffffffffffff8111156116a7576116a6612db2565b5b6040519080825280602002602001820160405280156116d55781602001602082028036833780820191505090505b50905030815f815181106116ec576116eb612ddf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611790573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b49190612e20565b816001815181106117c8576117c7612ddf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061182e3060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866112a3565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8430426040518663ffffffff1660e01b8152600401611890959493929190612f3b565b5f604051808303815f87803b1580156118a7575f80fd5b505af11580156118b9573d5f803e3d5ffd5b5050505081476118c99190612853565b92505050919050565b80471015611915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190c90612fdd565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168260405161193a90613028565b5f6040518083038185875af1925050503d805f8114611974576040519150601f19603f3d011682016040523d82523d5f602084013e611979565b606091505b50509050806119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906130ac565b60405180910390fd5b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae89061313a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b56906131c8565b60405180910390fd5b5f8111611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9890613256565b60405180910390fd5b60095481111580611bf8575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e906132e4565b60405180910390fd5b600b60169054906101000a900460ff16611cf75760065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611cee575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b611cf6575f80fd5b5b60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611d9e57600a5481611d5284610c71565b611d5c9190612d7f565b1115611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9490613372565b60405180910390fd5b5b600854611daa30610c71565b10158015611dc55750600b60179054906101000a900460ff16155b8015611ddd5750600b60169054906101000a900460ff165b8015611e36575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e755750611e45610d74565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eb45750611e84610d74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ec257611ec1611ffe565b5b505050565b5f806064600b5f9054906101000a900460ff1660ff1686611ee89190612a67565b611ef29190612ad5565b90508215611f27576064600b60019054906101000a900460ff1660ff1686611f1a9190612a67565b611f249190612ad5565b90505b5f811115611fe8578060035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f7b9190612d7f565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fdf9190612340565b60405180910390a35b8085611ff49190612853565b9150509392505050565b6001600b60176101000a81548160ff0219169083151502179055505f60648060085461202a9190612a67565b6120349190612ad5565b90505f60645f6008546120479190612a67565b6120519190612ad5565b90505f8211156120d8575f61206583611686565b90505f8111156120d657600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120d4573d5f803e3d5ffd5b505b505b5f811115612122575f6002826120ee9190612ad5565b90505f81836120fd9190612853565b90505f61210983611686565b90505f81111561211e5761211d82826121c0565b5b5050505b5f4711156121765761217547600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118d290919063ffffffff16565b5b7fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003060405160405180910390a150505f600b60176101000a81548160ff021916908315150217905550565b6121ec3060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112a3565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330865f80600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161227496959493929190613390565b60606040518083038185885af1158015612290573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906122b59190613403565b509150505f81836122c69190612853565b11156123235761232281836122db9190612853565b600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118d290919063ffffffff16565b5b505050565b5f819050919050565b61233a81612328565b82525050565b5f6020820190506123535f830184612331565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612390578082015181840152602081019050612375565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123b582612359565b6123bf8185612363565b93506123cf818560208601612373565b6123d88161239b565b840191505092915050565b5f6020820190508181035f8301526123fb81846123ab565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61243082612407565b9050919050565b61244081612426565b811461244a575f80fd5b50565b5f8135905061245b81612437565b92915050565b61246a81612328565b8114612474575f80fd5b50565b5f8135905061248581612461565b92915050565b5f80604083850312156124a1576124a0612403565b5b5f6124ae8582860161244d565b92505060206124bf85828601612477565b9150509250929050565b5f8115159050919050565b6124dd816124c9565b82525050565b5f6020820190506124f65f8301846124d4565b92915050565b612505816124c9565b811461250f575f80fd5b50565b5f81359050612520816124fc565b92915050565b5f806040838503121561253c5761253b612403565b5b5f6125498582860161244d565b925050602061255a85828601612512565b9150509250929050565b5f805f6060848603121561257b5761257a612403565b5b5f6125888682870161244d565b93505060206125998682870161244d565b92505060406125aa86828701612477565b9150509250925092565b5f602082840312156125c9576125c8612403565b5b5f6125d68482850161244d565b91505092915050565b5f60ff82169050919050565b6125f4816125df565b82525050565b5f60208201905061260d5f8301846125eb565b92915050565b61261c816125df565b8114612626575f80fd5b50565b5f8135905061263781612613565b92915050565b5f806040838503121561265357612652612403565b5b5f61266085828601612629565b925050602061267185828601612629565b9150509250929050565b61268481612426565b82525050565b5f60208201905061269d5f83018461267b565b92915050565b5f602082840312156126b8576126b7612403565b5b5f6126c584828501612477565b91505092915050565b5f80604083850312156126e4576126e3612403565b5b5f6126f185828601612477565b925050602061270285828601612477565b9150509250929050565b5f806040838503121561272257612721612403565b5b5f61272f8582860161244d565b92505060206127408582860161244d565b9150509250929050565b5f819050919050565b5f61276d61276861276384612407565b61274a565b612407565b9050919050565b5f61277e82612753565b9050919050565b5f61278f82612774565b9050919050565b61279f81612785565b82525050565b5f6020820190506127b85f830184612796565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127f2602083612363565b91506127fd826127be565b602082019050919050565b5f6020820190508181035f83015261281f816127e6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61285d82612328565b915061286883612328565b92508282039050818111156128805761287f612826565b5b92915050565b7f54617865732063616e27742065786365656420746865206c696d69742e0000005f82015250565b5f6128ba601d83612363565b91506128c582612886565b602082019050919050565b5f6020820190508181035f8301526128e7816128ae565b9050919050565b5f8160011c9050919050565b5f808291508390505b60018511156129435780860481111561291f5761291e612826565b5b600185161561292e5780820291505b808102905061293c856128ee565b9450612903565b94509492505050565b5f8261295b5760019050612a16565b81612968575f9050612a16565b816001811461297e5760028114612988576129b7565b6001915050612a16565b60ff84111561299a57612999612826565b5b8360020a9150848211156129b1576129b0612826565b5b50612a16565b5060208310610133831016604e8410600b84101617156129ec5782820a9050838111156129e7576129e6612826565b5b612a16565b6129f984848460016128fa565b92509050818404811115612a1057612a0f612826565b5b81810290505b9392505050565b5f612a2782612328565b9150612a32836125df565b9250612a5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461294c565b905092915050565b5f612a7182612328565b9150612a7c83612328565b9250828202612a8a81612328565b91508282048414831517612aa157612aa0612826565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612adf82612328565b9150612aea83612328565b925082612afa57612af9612aa8565b5b828204905092915050565b7f496e76616c69642053657474696e6773000000000000000000000000000000005f82015250565b5f612b39601083612363565b9150612b4482612b05565b602082019050919050565b5f6020820190508181035f830152612b6681612b2d565b9050919050565b7f43616e206f6e6c79206265206f70656e6564206f6e63650000000000000000005f82015250565b5f612ba1601783612363565b9150612bac82612b6d565b602082019050919050565b5f6020820190508181035f830152612bce81612b95565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612c2f602683612363565b9150612c3a82612bd5565b604082019050919050565b5f6020820190508181035f830152612c5c81612c23565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cbd602483612363565b9150612cc882612c63565b604082019050919050565b5f6020820190508181035f830152612cea81612cb1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d4b602283612363565b9150612d5682612cf1565b604082019050919050565b5f6020820190508181035f830152612d7881612d3f565b9050919050565b5f612d8982612328565b9150612d9483612328565b9250828201905080821115612dac57612dab612826565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612e1a81612437565b92915050565b5f60208284031215612e3557612e34612403565b5b5f612e4284828501612e0c565b91505092915050565b5f819050919050565b5f612e6e612e69612e6484612e4b565b61274a565b612328565b9050919050565b612e7e81612e54565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612eb681612426565b82525050565b5f612ec78383612ead565b60208301905092915050565b5f602082019050919050565b5f612ee982612e84565b612ef38185612e8e565b9350612efe83612e9e565b805f5b83811015612f2e578151612f158882612ebc565b9750612f2083612ed3565b925050600181019050612f01565b5085935050505092915050565b5f60a082019050612f4e5f830188612331565b612f5b6020830187612e75565b8181036040830152612f6d8186612edf565b9050612f7c606083018561267b565b612f896080830184612331565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f612fc7601d83612363565b9150612fd282612f93565b602082019050919050565b5f6020820190508181035f830152612ff481612fbb565b9050919050565b5f81905092915050565b50565b5f6130135f83612ffb565b915061301e82613005565b5f82019050919050565b5f61303282613008565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f613096603a83612363565b91506130a18261303c565b604082019050919050565b5f6020820190508181035f8301526130c38161308a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613124602583612363565b915061312f826130ca565b604082019050919050565b5f6020820190508181035f83015261315181613118565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131b2602383612363565b91506131bd82613158565b604082019050919050565b5f6020820190508181035f8301526131df816131a6565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613240602983612363565b915061324b826131e6565b604082019050919050565b5f6020820190508181035f83015261326d81613234565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d61785f8201527f5478416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b5f6132ce602983612363565b91506132d982613274565b604082019050919050565b5f6020820190508181035f8301526132fb816132c2565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178575f8201527f616c6c65742e0000000000000000000000000000000000000000000000000000602082015250565b5f61335c602683612363565b915061336782613302565b604082019050919050565b5f6020820190508181035f83015261338981613350565b9050919050565b5f60c0820190506133a35f83018961267b565b6133b06020830188612331565b6133bd6040830187612e75565b6133ca6060830186612e75565b6133d7608083018561267b565b6133e460a0830184612331565b979650505050505050565b5f815190506133fd81612461565b92915050565b5f805f6060848603121561341a57613419612403565b5b5f613427868287016133ef565b9350506020613438868287016133ef565b9250506040613449868287016133ef565b915050925092509256fea2646970667358221220453c2d035643fe8bd0a9aafc6c3238e1169b7e102b7ebaa9571140c94bf6a06b64736f6c63430008140033

Deployed Bytecode Sourcemap

3698:9094:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4207:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5692:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6523:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8439:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5969:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6692:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4036:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5878:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8285:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4490:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8586:473;;;;;;;;;;;;;:::i;:::-;;7498:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6072:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1685:94;;;;;;;;;;;;;:::i;:::-;;3978:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4646:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4270:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1462:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5783;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3819:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6197:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8138:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7749:381;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7350:140;;;;;;;;;;;;;:::i;:::-;;4522:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6372:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1787:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3791:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4330:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4207:55;;;;:::o;5692:83::-;5729:13;5762:5;;;;;;;;;;;;;;;;;5755:12;;5692:83;:::o;6523:161::-;6598:4;6615:39;6624:12;:10;:12::i;:::-;6638:7;6647:6;6615:8;:39::i;:::-;6672:4;6665:11;;6523:161;;;;:::o;8439:139::-;1608:12;:10;:12::i;:::-;1597:23;;:7;:5;:7::i;:::-;:23;;;1589:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8560:10:::1;8530:18;:27;8549:7;8530:27;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;8439:139:::0;;:::o;5969:95::-;6022:7;6049;;6042:14;;5969:95;:::o;6692:266::-;6790:4;6807:36;6817:6;6825:9;6836:6;6807:9;:36::i;:::-;6854:74;6863:6;6871:12;:10;:12::i;:::-;6921:6;6885:11;:19;6897:6;6885:19;;;;;;;;;;;;;;;:33;6905:12;:10;:12::i;:::-;6885:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;6854:8;:74::i;:::-;6946:4;6939:11;;6692:266;;;;;:::o;4036:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;5878:83::-;5919:5;4138:1;5937:16;;5878:83;:::o;8285:146::-;1608:12;:10;:12::i;:::-;1597:23;;:7;:5;:7::i;:::-;:23;;;1589:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8413:10:::1;8376:25;:34;8402:7;8376:34;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;8285:146:::0;;:::o;4490:24::-;;;;;;;;;;;;;:::o;8586:473::-;4757:4;4746:8;;:15;;;;;;;;;;;;;;;;;;8661::::1;;;;;;;;;;;8647:29;;:10;:29;;;8639:38;;;::::0;::::1;;8688:20;8711:24;8729:4;8711:9;:24::i;:::-;8688:47;;8764:1;8749:12;:16;8746:194;;;8781:18;8802:30;8819:12;8802:16;:30::i;:::-;8781:51;;8863:1;8850:10;:14;8847:81;;;8891:15;;;;;;;;;;;8883:33;;:45;8917:10;8883:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8847:81;8766:174;8746:194;8978:1;8954:21;:25;8950:101;;;8994:57;9029:21;9002:15;;;;;;;;;;;8994:34;;;;:57;;;;:::i;:::-;8950:101;8628:431;4795:5:::0;4784:8;;:16;;;;;;;;;;;;;;;;;;8586:473::o;7498:243::-;1608:12;:10;:12::i;:::-;1597:23;;:7;:5;:7::i;:::-;:23;;;1589:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7603:2:::1;7592:7;:13;;;;:30;;;;;7620:2;7609:8;:13;;;;7592:30;7584:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7676:7;7667:6;;:16;;;;;;;;;;;;;;;;;;7695:8;7685:7;;:18;;;;;;;;;;;;;;;;;;7719:14;;;;;;;;;;7498:243:::0;;:::o;6072:117::-;6138:7;6165;:16;6173:7;6165:16;;;;;;;;;;;;;;;;6158:23;;6072:117;;;:::o;1685:94::-;1608:12;:10;:12::i;:::-;1597:23;;:7;:5;:7::i;:::-;:23;;;1589:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1750:21:::1;1768:1;1750:9;:21::i;:::-;1685:94::o:0;3978:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;4646:33::-;;;;;;;;;;;;;:::o;4270:53::-;;;;:::o;1462:87::-;1508:7;1535:6;;;;;;;;;;;1528:13;;1462:87;:::o;5783:::-;5822:13;5855:7;;;;;;;;;;;;;;;;;5848:14;;5783:87;:::o;3819:19::-;;;;;;;;;;;;;:::o;6197:167::-;6275:4;6292:42;6302:12;:10;:12::i;:::-;6316:9;6327:6;6292:9;:42::i;:::-;6352:4;6345:11;;6197:167;;;;:::o;8138:139::-;1608:12;:10;:12::i;:::-;1597:23;;:7;:5;:7::i;:::-;:23;;;1589:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4138:1:::1;8255:2;:13;;;;:::i;:::-;8232:19;:37;;;;:::i;:::-;8216:13;:53;;;;8138:139:::0;:::o;7749:381::-;1608:12;:10;:12::i;:::-;1597:23;;:7;:5;:7::i;:::-;:23;;;1589:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7843:20:::1;4138:1;7890:2;:13;;;;:::i;:::-;7881:4;7877:1;7867:7;;:11;;;;:::i;:::-;:18;;;;:::i;:::-;7866:38;;;;:::i;:::-;7843:61;;7938:15;7923:11;:30;;:68;;;;;7976:15;7957;:34;;7923:68;7915:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4138:1;8052:2;:13;;;;:::i;:::-;8037:11;:29;;;;:::i;:::-;8023:11;:43;;;;4138:1;8108:2;:13;;;;:::i;:::-;8089:15;:33;;;;:::i;:::-;8077:9;:45;;;;7832:298;7749:381:::0;;:::o;7350:140::-;1608:12;:10;:12::i;:::-;1597:23;;:7;:5;:7::i;:::-;:23;;;1589:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7411:13:::1;;;;;;;;;;;7410:14;7402:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7478:4;7462:13;;:20;;;;;;;;;;;;;;;;;;7350:140::o:0;4522:25::-;;;;;;;;;;;;;:::o;6372:143::-;6453:7;6480:11;:18;6492:5;6480:18;;;;;;;;;;;;;;;:27;6499:7;6480:27;;;;;;;;;;;;;;;;6473:34;;6372:143;;;;:::o;1787:192::-;1608:12;:10;:12::i;:::-;1597:23;;:7;:5;:7::i;:::-;:23;;;1589:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1896:1:::1;1876:22;;:8;:22;;::::0;1868:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1952:19;1962:8;1952:9;:19::i;:::-;1787:192:::0;:::o;3791:21::-;;;;;;;;;;;;;:::o;4330:52::-;;;;:::o;987:115::-;1040:15;1083:10;1068:26;;987:115;:::o;6966:335::-;7076:1;7059:19;;:5;:19;;;7051:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7157:1;7138:21;;:7;:21;;;7130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7239:6;7209:11;:18;7221:5;7209:18;;;;;;;;;;;;;;;:27;7228:7;7209:27;;;;;;;;;;;;;;;:36;;;;7277:7;7261:32;;7270:5;7261:32;;;7286:6;7261:32;;;;;;:::i;:::-;;;;;;;;6966:335;;;:::o;10362:436::-;10440:35;10458:4;10464:2;10468:6;10440:17;:35::i;:::-;10503:6;10486:7;:13;10494:4;10486:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;10520:22;10545:6;10520:31;;10566:18;:24;10585:4;10566:24;;;;;;;;;;;;;;;;;;;;;;;;;10565:25;:52;;;;;10595:18;:22;10614:2;10595:22;;;;;;;;;;;;;;;;;;;;;;;;;10594:23;10565:52;10562:139;;;10650:39;10664:6;10672:4;10684;;;;;;;;;;;10678:10;;:2;:10;;;10650:13;:39::i;:::-;10633:56;;10562:139;10726:14;10711:7;:11;10719:2;10711:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;10771:2;10756:34;;10765:4;10756:34;;;10775:14;10756:34;;;;;;:::i;:::-;;;;;;;;10429:369;10362:436;;;:::o;11676:581::-;11740:7;11760:22;11785:21;11760:46;;11817:21;11855:1;11841:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11817:40;;11886:4;11868;11873:1;11868:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11912:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11902:4;11907:1;11902:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11938:53;11955:4;11970:6;;;;;;;;;;;11979:11;11938:8;:53::i;:::-;12004:6;;;;;;;;;;;:57;;;12076:11;12102:1;12118:4;12145;12165:15;12004:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12234:14;12210:21;:38;;;;:::i;:::-;12202:47;;;;11676:581;;;:::o;630:317::-;745:6;720:21;:31;;712:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;799:12;817:9;:14;;839:6;817:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;798:52;;;869:7;861:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;701:246;630:317;;:::o;1987:173::-;2043:16;2062:6;;;;;;;;;;;2043:25;;2088:8;2079:6;;:17;;;;;;;;;;;;;;;;;;2143:8;2112:40;;2133:8;2112:40;;;;;;;;;;;;2032:128;1987:173;:::o;9067:860::-;9177:1;9161:18;;:4;:18;;;9153:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9254:1;9240:16;;:2;:16;;;9232:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9324:1;9315:6;:10;9307:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9400:11;;9390:6;:21;;:56;;;;9415:25;:31;9441:4;9415:31;;;;;;;;;;;;;;;;;;;;;;;;;9390:56;9382:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9509:13;;;;;;;;;;;9505:88;;9545:25;:31;9571:4;9545:31;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;;9588:4;;;;;;;;;;;9580:12;;:4;:12;;;;9545:47;9537:56;;;;;;9505:88;9610:25;:29;9636:2;9610:29;;;;;;;;;;;;;;;;;;;;;;;;;9606:134;;9688:9;;9678:6;9662:13;9672:2;9662:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;9654:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;9606:134;9793:13;;9765:24;9783:4;9765:9;:24::i;:::-;:41;;:54;;;;;9811:8;;;;;;;;;;;9810:9;9765:54;:71;;;;;9823:13;;;;;;;;;;;9765:71;:87;;;;;9848:4;;;;;;;;;;;9840:12;;:4;:12;;;;9765:87;:106;;;;;9864:7;:5;:7::i;:::-;9856:15;;:4;:15;;;;9765:106;:123;;;;;9881:7;:5;:7::i;:::-;9875:13;;:2;:13;;;;9765:123;9761:158;;;9903:16;:14;:16::i;:::-;9761:158;9067:860;;;:::o;9935:419::-;10014:7;10033:19;10073:3;10064:6;;;;;;;;;;;10055:15;;:6;:15;;;;:::i;:::-;:21;;;;:::i;:::-;10033:43;;10090:6;10087:60;;;10144:3;10134:7;;;;;;;;;;;10125:16;;:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;10111:36;;10087:60;10178:1;10164:11;:15;10160:147;;;10221:11;10195:7;:22;10211:4;10195:22;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;10276:4;10252:43;;10262:4;10252:43;;;10283:11;10252:43;;;;;;:::i;:::-;;;;;;;;10160:147;10334:11;10325:6;:20;;;;:::i;:::-;10317:29;;;9935:419;;;;;:::o;10806:862::-;4757:4;4746:8;;:15;;;;;;;;;;;;;;;;;;10864:26:::1;10915:3;10909::::0;10893:13:::1;;:19;;;;:::i;:::-;:25;;;;:::i;:::-;10864:54;;10929:26;10978:3;10974:1;10958:13;;:17;;;;:::i;:::-;:23;;;;:::i;:::-;10929:52;;11026:1;11005:18;:22;11002:206;;;11043:18;11064:36;11081:18;11064:16;:36::i;:::-;11043:57;;11131:1;11118:10;:14;11115:81;;;11159:15;;;;;;;;;;;11151:33;;:45;11185:10;11151:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11115:81;11028:180;11002:206;11244:1;11223:18;:22;11220:283;;;11261:9;11294:1;11273:18;:22;;;;:::i;:::-;11261:34;;11310:14;11348:4;11327:18;:25;;;;:::i;:::-;11310:42;;11367:14;11384:22;11401:4;11384:16;:22::i;:::-;11367:39;;11437:1;11425:9;:13;11421:70;;;11457:34;11470:9;11481;11457:12;:34::i;:::-;11421:70;11246:257;;;11220:283;11543:1;11519:21;:25;11515:101;;;11559:57;11594:21;11567:15;;;;;;;;;;;11559:34;;;;:57;;;;:::i;:::-;11515:101;11642:16;;;;;;;;;;10851:817;;4795:5:::0;4784:8;;:16;;;;;;;;;;;;;;;;;;10806:862::o;12265:522::-;12346:53;12363:4;12378:6;;;;;;;;;;;12387:11;12346:8;:53::i;:::-;12414:24;12443:6;;;;;;;;;;;:22;;;12474:9;12508:4;12528:11;12554:1;12570;12586:15;;;;;;;;;;;12616;12443:199;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12412:230;;;;12698:1;12679:16;12667:9;:28;;;;:::i;:::-;:32;12663:116;;;12714:65;12762:16;12750:9;:28;;;;:::i;:::-;12722:15;;;;;;;;;;;12714:34;;;;:65;;;;:::i;:::-;12663:116;12335:452;12265:522;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:468::-;4124:6;4132;4181:2;4169:9;4160:7;4156:23;4152:32;4149:119;;;4187:79;;:::i;:::-;4149:119;4307:1;4332:53;4377:7;4368:6;4357:9;4353:22;4332:53;:::i;:::-;4322:63;;4278:117;4434:2;4460:50;4502:7;4493:6;4482:9;4478:22;4460:50;:::i;:::-;4450:60;;4405:115;4059:468;;;;;:::o;4533:619::-;4610:6;4618;4626;4675:2;4663:9;4654:7;4650:23;4646:32;4643:119;;;4681:79;;:::i;:::-;4643:119;4801:1;4826:53;4871:7;4862:6;4851:9;4847:22;4826:53;:::i;:::-;4816:63;;4772:117;4928:2;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4899:118;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;4533:619;;;;;:::o;5158:329::-;5217:6;5266:2;5254:9;5245:7;5241:23;5237:32;5234:119;;;5272:79;;:::i;:::-;5234:119;5392:1;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5363:117;5158:329;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:112::-;5668:22;5684:5;5668:22;:::i;:::-;5663:3;5656:35;5585:112;;:::o;5703:214::-;5792:4;5830:2;5819:9;5815:18;5807:26;;5843:67;5907:1;5896:9;5892:17;5883:6;5843:67;:::i;:::-;5703:214;;;;:::o;5923:118::-;5994:22;6010:5;5994:22;:::i;:::-;5987:5;5984:33;5974:61;;6031:1;6028;6021:12;5974:61;5923:118;:::o;6047:135::-;6091:5;6129:6;6116:20;6107:29;;6145:31;6170:5;6145:31;:::i;:::-;6047:135;;;;:::o;6188:466::-;6252:6;6260;6309:2;6297:9;6288:7;6284:23;6280:32;6277:119;;;6315:79;;:::i;:::-;6277:119;6435:1;6460:51;6503:7;6494:6;6483:9;6479:22;6460:51;:::i;:::-;6450:61;;6406:115;6560:2;6586:51;6629:7;6620:6;6609:9;6605:22;6586:51;:::i;:::-;6576:61;;6531:116;6188:466;;;;;:::o;6660:118::-;6747:24;6765:5;6747:24;:::i;:::-;6742:3;6735:37;6660:118;;:::o;6784:222::-;6877:4;6915:2;6904:9;6900:18;6892:26;;6928:71;6996:1;6985:9;6981:17;6972:6;6928:71;:::i;:::-;6784:222;;;;:::o;7012:329::-;7071:6;7120:2;7108:9;7099:7;7095:23;7091:32;7088:119;;;7126:79;;:::i;:::-;7088:119;7246:1;7271:53;7316:7;7307:6;7296:9;7292:22;7271:53;:::i;:::-;7261:63;;7217:117;7012:329;;;;:::o;7347:474::-;7415:6;7423;7472:2;7460:9;7451:7;7447:23;7443:32;7440:119;;;7478:79;;:::i;:::-;7440:119;7598:1;7623:53;7668:7;7659:6;7648:9;7644:22;7623:53;:::i;:::-;7613:63;;7569:117;7725:2;7751:53;7796:7;7787:6;7776:9;7772:22;7751:53;:::i;:::-;7741:63;;7696:118;7347:474;;;;;:::o;7827:::-;7895:6;7903;7952:2;7940:9;7931:7;7927:23;7923:32;7920:119;;;7958:79;;:::i;:::-;7920:119;8078:1;8103:53;8148:7;8139:6;8128:9;8124:22;8103:53;:::i;:::-;8093:63;;8049:117;8205:2;8231:53;8276:7;8267:6;8256:9;8252:22;8231:53;:::i;:::-;8221:63;;8176:118;7827:474;;;;;:::o;8307:60::-;8335:3;8356:5;8349:12;;8307:60;;;:::o;8373:142::-;8423:9;8456:53;8474:34;8483:24;8501:5;8483:24;:::i;:::-;8474:34;:::i;:::-;8456:53;:::i;:::-;8443:66;;8373:142;;;:::o;8521:126::-;8571:9;8604:37;8635:5;8604:37;:::i;:::-;8591:50;;8521:126;;;:::o;8653:141::-;8718:9;8751:37;8782:5;8751:37;:::i;:::-;8738:50;;8653:141;;;:::o;8800:161::-;8902:52;8948:5;8902:52;:::i;:::-;8897:3;8890:65;8800:161;;:::o;8967:252::-;9075:4;9113:2;9102:9;9098:18;9090:26;;9126:86;9209:1;9198:9;9194:17;9185:6;9126:86;:::i;:::-;8967:252;;;;:::o;9225:182::-;9365:34;9361:1;9353:6;9349:14;9342:58;9225:182;:::o;9413:366::-;9555:3;9576:67;9640:2;9635:3;9576:67;:::i;:::-;9569:74;;9652:93;9741:3;9652:93;:::i;:::-;9770:2;9765:3;9761:12;9754:19;;9413:366;;;:::o;9785:419::-;9951:4;9989:2;9978:9;9974:18;9966:26;;10038:9;10032:4;10028:20;10024:1;10013:9;10009:17;10002:47;10066:131;10192:4;10066:131;:::i;:::-;10058:139;;9785:419;;;:::o;10210:180::-;10258:77;10255:1;10248:88;10355:4;10352:1;10345:15;10379:4;10376:1;10369:15;10396:194;10436:4;10456:20;10474:1;10456:20;:::i;:::-;10451:25;;10490:20;10508:1;10490:20;:::i;:::-;10485:25;;10534:1;10531;10527:9;10519:17;;10558:1;10552:4;10549:11;10546:37;;;10563:18;;:::i;:::-;10546:37;10396:194;;;;:::o;10596:179::-;10736:31;10732:1;10724:6;10720:14;10713:55;10596:179;:::o;10781:366::-;10923:3;10944:67;11008:2;11003:3;10944:67;:::i;:::-;10937:74;;11020:93;11109:3;11020:93;:::i;:::-;11138:2;11133:3;11129:12;11122:19;;10781:366;;;:::o;11153:419::-;11319:4;11357:2;11346:9;11342:18;11334:26;;11406:9;11400:4;11396:20;11392:1;11381:9;11377:17;11370:47;11434:131;11560:4;11434:131;:::i;:::-;11426:139;;11153:419;;;:::o;11578:102::-;11620:8;11667:5;11664:1;11660:13;11639:34;;11578:102;;;:::o;11686:848::-;11747:5;11754:4;11778:6;11769:15;;11802:5;11793:14;;11816:712;11837:1;11827:8;11824:15;11816:712;;;11932:4;11927:3;11923:14;11917:4;11914:24;11911:50;;;11941:18;;:::i;:::-;11911:50;11991:1;11981:8;11977:16;11974:451;;;12406:4;12399:5;12395:16;12386:25;;11974:451;12456:4;12450;12446:15;12438:23;;12486:32;12509:8;12486:32;:::i;:::-;12474:44;;11816:712;;;11686:848;;;;;;;:::o;12540:1073::-;12594:5;12785:8;12775:40;;12806:1;12797:10;;12808:5;;12775:40;12834:4;12824:36;;12851:1;12842:10;;12853:5;;12824:36;12920:4;12968:1;12963:27;;;;13004:1;12999:191;;;;12913:277;;12963:27;12981:1;12972:10;;12983:5;;;12999:191;13044:3;13034:8;13031:17;13028:43;;;13051:18;;:::i;:::-;13028:43;13100:8;13097:1;13093:16;13084:25;;13135:3;13128:5;13125:14;13122:40;;;13142:18;;:::i;:::-;13122:40;13175:5;;;12913:277;;13299:2;13289:8;13286:16;13280:3;13274:4;13271:13;13267:36;13249:2;13239:8;13236:16;13231:2;13225:4;13222:12;13218:35;13202:111;13199:246;;;13355:8;13349:4;13345:19;13336:28;;13390:3;13383:5;13380:14;13377:40;;;13397:18;;:::i;:::-;13377:40;13430:5;;13199:246;13470:42;13508:3;13498:8;13492:4;13489:1;13470:42;:::i;:::-;13455:57;;;;13544:4;13539:3;13535:14;13528:5;13525:25;13522:51;;;13553:18;;:::i;:::-;13522:51;13602:4;13595:5;13591:16;13582:25;;12540:1073;;;;;;:::o;13619:281::-;13677:5;13701:23;13719:4;13701:23;:::i;:::-;13693:31;;13745:25;13761:8;13745:25;:::i;:::-;13733:37;;13789:104;13826:66;13816:8;13810:4;13789:104;:::i;:::-;13780:113;;13619:281;;;;:::o;13906:410::-;13946:7;13969:20;13987:1;13969:20;:::i;:::-;13964:25;;14003:20;14021:1;14003:20;:::i;:::-;13998:25;;14058:1;14055;14051:9;14080:30;14098:11;14080:30;:::i;:::-;14069:41;;14259:1;14250:7;14246:15;14243:1;14240:22;14220:1;14213:9;14193:83;14170:139;;14289:18;;:::i;:::-;14170:139;13954:362;13906:410;;;;:::o;14322:180::-;14370:77;14367:1;14360:88;14467:4;14464:1;14457:15;14491:4;14488:1;14481:15;14508:185;14548:1;14565:20;14583:1;14565:20;:::i;:::-;14560:25;;14599:20;14617:1;14599:20;:::i;:::-;14594:25;;14638:1;14628:35;;14643:18;;:::i;:::-;14628:35;14685:1;14682;14678:9;14673:14;;14508:185;;;;:::o;14699:166::-;14839:18;14835:1;14827:6;14823:14;14816:42;14699:166;:::o;14871:366::-;15013:3;15034:67;15098:2;15093:3;15034:67;:::i;:::-;15027:74;;15110:93;15199:3;15110:93;:::i;:::-;15228:2;15223:3;15219:12;15212:19;;14871:366;;;:::o;15243:419::-;15409:4;15447:2;15436:9;15432:18;15424:26;;15496:9;15490:4;15486:20;15482:1;15471:9;15467:17;15460:47;15524:131;15650:4;15524:131;:::i;:::-;15516:139;;15243:419;;;:::o;15668:173::-;15808:25;15804:1;15796:6;15792:14;15785:49;15668:173;:::o;15847:366::-;15989:3;16010:67;16074:2;16069:3;16010:67;:::i;:::-;16003:74;;16086:93;16175:3;16086:93;:::i;:::-;16204:2;16199:3;16195:12;16188:19;;15847:366;;;:::o;16219:419::-;16385:4;16423:2;16412:9;16408:18;16400:26;;16472:9;16466:4;16462:20;16458:1;16447:9;16443:17;16436:47;16500:131;16626:4;16500:131;:::i;:::-;16492:139;;16219:419;;;:::o;16644:225::-;16784:34;16780:1;16772:6;16768:14;16761:58;16853:8;16848:2;16840:6;16836:15;16829:33;16644:225;:::o;16875:366::-;17017:3;17038:67;17102:2;17097:3;17038:67;:::i;:::-;17031:74;;17114:93;17203:3;17114:93;:::i;:::-;17232:2;17227:3;17223:12;17216:19;;16875:366;;;:::o;17247:419::-;17413:4;17451:2;17440:9;17436:18;17428:26;;17500:9;17494:4;17490:20;17486:1;17475:9;17471:17;17464:47;17528:131;17654:4;17528:131;:::i;:::-;17520:139;;17247:419;;;:::o;17672:223::-;17812:34;17808:1;17800:6;17796:14;17789:58;17881:6;17876:2;17868:6;17864:15;17857:31;17672:223;:::o;17901:366::-;18043:3;18064:67;18128:2;18123:3;18064:67;:::i;:::-;18057:74;;18140:93;18229:3;18140:93;:::i;:::-;18258:2;18253:3;18249:12;18242:19;;17901:366;;;:::o;18273:419::-;18439:4;18477:2;18466:9;18462:18;18454:26;;18526:9;18520:4;18516:20;18512:1;18501:9;18497:17;18490:47;18554:131;18680:4;18554:131;:::i;:::-;18546:139;;18273:419;;;:::o;18698:221::-;18838:34;18834:1;18826:6;18822:14;18815:58;18907:4;18902:2;18894:6;18890:15;18883:29;18698:221;:::o;18925:366::-;19067:3;19088:67;19152:2;19147:3;19088:67;:::i;:::-;19081:74;;19164:93;19253:3;19164:93;:::i;:::-;19282:2;19277:3;19273:12;19266:19;;18925:366;;;:::o;19297:419::-;19463:4;19501:2;19490:9;19486:18;19478:26;;19550:9;19544:4;19540:20;19536:1;19525:9;19521:17;19514:47;19578:131;19704:4;19578:131;:::i;:::-;19570:139;;19297:419;;;:::o;19722:191::-;19762:3;19781:20;19799:1;19781:20;:::i;:::-;19776:25;;19815:20;19833:1;19815:20;:::i;:::-;19810:25;;19858:1;19855;19851:9;19844:16;;19879:3;19876:1;19873:10;19870:36;;;19886:18;;:::i;:::-;19870:36;19722:191;;;;:::o;19919:180::-;19967:77;19964:1;19957:88;20064:4;20061:1;20054:15;20088:4;20085:1;20078:15;20105:180;20153:77;20150:1;20143:88;20250:4;20247:1;20240:15;20274:4;20271:1;20264:15;20291:143;20348:5;20379:6;20373:13;20364:22;;20395:33;20422:5;20395:33;:::i;:::-;20291:143;;;;:::o;20440:351::-;20510:6;20559:2;20547:9;20538:7;20534:23;20530:32;20527:119;;;20565:79;;:::i;:::-;20527:119;20685:1;20710:64;20766:7;20757:6;20746:9;20742:22;20710:64;:::i;:::-;20700:74;;20656:128;20440:351;;;;:::o;20797:85::-;20842:7;20871:5;20860:16;;20797:85;;;:::o;20888:158::-;20946:9;20979:61;20997:42;21006:32;21032:5;21006:32;:::i;:::-;20997:42;:::i;:::-;20979:61;:::i;:::-;20966:74;;20888:158;;;:::o;21052:147::-;21147:45;21186:5;21147:45;:::i;:::-;21142:3;21135:58;21052:147;;:::o;21205:114::-;21272:6;21306:5;21300:12;21290:22;;21205:114;;;:::o;21325:184::-;21424:11;21458:6;21453:3;21446:19;21498:4;21493:3;21489:14;21474:29;;21325:184;;;;:::o;21515:132::-;21582:4;21605:3;21597:11;;21635:4;21630:3;21626:14;21618:22;;21515:132;;;:::o;21653:108::-;21730:24;21748:5;21730:24;:::i;:::-;21725:3;21718:37;21653:108;;:::o;21767:179::-;21836:10;21857:46;21899:3;21891:6;21857:46;:::i;:::-;21935:4;21930:3;21926:14;21912:28;;21767:179;;;;:::o;21952:113::-;22022:4;22054;22049:3;22045:14;22037:22;;21952:113;;;:::o;22101:732::-;22220:3;22249:54;22297:5;22249:54;:::i;:::-;22319:86;22398:6;22393:3;22319:86;:::i;:::-;22312:93;;22429:56;22479:5;22429:56;:::i;:::-;22508:7;22539:1;22524:284;22549:6;22546:1;22543:13;22524:284;;;22625:6;22619:13;22652:63;22711:3;22696:13;22652:63;:::i;:::-;22645:70;;22738:60;22791:6;22738:60;:::i;:::-;22728:70;;22584:224;22571:1;22568;22564:9;22559:14;;22524:284;;;22528:14;22824:3;22817:10;;22225:608;;;22101:732;;;;:::o;22839:831::-;23102:4;23140:3;23129:9;23125:19;23117:27;;23154:71;23222:1;23211:9;23207:17;23198:6;23154:71;:::i;:::-;23235:80;23311:2;23300:9;23296:18;23287:6;23235:80;:::i;:::-;23362:9;23356:4;23352:20;23347:2;23336:9;23332:18;23325:48;23390:108;23493:4;23484:6;23390:108;:::i;:::-;23382:116;;23508:72;23576:2;23565:9;23561:18;23552:6;23508:72;:::i;:::-;23590:73;23658:3;23647:9;23643:19;23634:6;23590:73;:::i;:::-;22839:831;;;;;;;;:::o;23676:179::-;23816:31;23812:1;23804:6;23800:14;23793:55;23676:179;:::o;23861:366::-;24003:3;24024:67;24088:2;24083:3;24024:67;:::i;:::-;24017:74;;24100:93;24189:3;24100:93;:::i;:::-;24218:2;24213:3;24209:12;24202:19;;23861:366;;;:::o;24233:419::-;24399:4;24437:2;24426:9;24422:18;24414:26;;24486:9;24480:4;24476:20;24472:1;24461:9;24457:17;24450:47;24514:131;24640:4;24514:131;:::i;:::-;24506:139;;24233:419;;;:::o;24658:147::-;24759:11;24796:3;24781:18;;24658:147;;;;:::o;24811:114::-;;:::o;24931:398::-;25090:3;25111:83;25192:1;25187:3;25111:83;:::i;:::-;25104:90;;25203:93;25292:3;25203:93;:::i;:::-;25321:1;25316:3;25312:11;25305:18;;24931:398;;;:::o;25335:379::-;25519:3;25541:147;25684:3;25541:147;:::i;:::-;25534:154;;25705:3;25698:10;;25335:379;;;:::o;25720:245::-;25860:34;25856:1;25848:6;25844:14;25837:58;25929:28;25924:2;25916:6;25912:15;25905:53;25720:245;:::o;25971:366::-;26113:3;26134:67;26198:2;26193:3;26134:67;:::i;:::-;26127:74;;26210:93;26299:3;26210:93;:::i;:::-;26328:2;26323:3;26319:12;26312:19;;25971:366;;;:::o;26343:419::-;26509:4;26547:2;26536:9;26532:18;26524:26;;26596:9;26590:4;26586:20;26582:1;26571:9;26567:17;26560:47;26624:131;26750:4;26624:131;:::i;:::-;26616:139;;26343:419;;;:::o;26768:224::-;26908:34;26904:1;26896:6;26892:14;26885:58;26977:7;26972:2;26964:6;26960:15;26953:32;26768:224;:::o;26998:366::-;27140:3;27161:67;27225:2;27220:3;27161:67;:::i;:::-;27154:74;;27237:93;27326:3;27237:93;:::i;:::-;27355:2;27350:3;27346:12;27339:19;;26998:366;;;:::o;27370:419::-;27536:4;27574:2;27563:9;27559:18;27551:26;;27623:9;27617:4;27613:20;27609:1;27598:9;27594:17;27587:47;27651:131;27777:4;27651:131;:::i;:::-;27643:139;;27370:419;;;:::o;27795:222::-;27935:34;27931:1;27923:6;27919:14;27912:58;28004:5;27999:2;27991:6;27987:15;27980:30;27795:222;:::o;28023:366::-;28165:3;28186:67;28250:2;28245:3;28186:67;:::i;:::-;28179:74;;28262:93;28351:3;28262:93;:::i;:::-;28380:2;28375:3;28371:12;28364:19;;28023:366;;;:::o;28395:419::-;28561:4;28599:2;28588:9;28584:18;28576:26;;28648:9;28642:4;28638:20;28634:1;28623:9;28619:17;28612:47;28676:131;28802:4;28676:131;:::i;:::-;28668:139;;28395:419;;;:::o;28820:228::-;28960:34;28956:1;28948:6;28944:14;28937:58;29029:11;29024:2;29016:6;29012:15;29005:36;28820:228;:::o;29054:366::-;29196:3;29217:67;29281:2;29276:3;29217:67;:::i;:::-;29210:74;;29293:93;29382:3;29293:93;:::i;:::-;29411:2;29406:3;29402:12;29395:19;;29054:366;;;:::o;29426:419::-;29592:4;29630:2;29619:9;29615:18;29607:26;;29679:9;29673:4;29669:20;29665:1;29654:9;29650:17;29643:47;29707:131;29833:4;29707:131;:::i;:::-;29699:139;;29426:419;;;:::o;29851:228::-;29991:34;29987:1;29979:6;29975:14;29968:58;30060:11;30055:2;30047:6;30043:15;30036:36;29851:228;:::o;30085:366::-;30227:3;30248:67;30312:2;30307:3;30248:67;:::i;:::-;30241:74;;30324:93;30413:3;30324:93;:::i;:::-;30442:2;30437:3;30433:12;30426:19;;30085:366;;;:::o;30457:419::-;30623:4;30661:2;30650:9;30646:18;30638:26;;30710:9;30704:4;30700:20;30696:1;30685:9;30681:17;30674:47;30738:131;30864:4;30738:131;:::i;:::-;30730:139;;30457:419;;;:::o;30882:225::-;31022:34;31018:1;31010:6;31006:14;30999:58;31091:8;31086:2;31078:6;31074:15;31067:33;30882:225;:::o;31113:366::-;31255:3;31276:67;31340:2;31335:3;31276:67;:::i;:::-;31269:74;;31352:93;31441:3;31352:93;:::i;:::-;31470:2;31465:3;31461:12;31454:19;;31113:366;;;:::o;31485:419::-;31651:4;31689:2;31678:9;31674:18;31666:26;;31738:9;31732:4;31728:20;31724:1;31713:9;31709:17;31702:47;31766:131;31892:4;31766:131;:::i;:::-;31758:139;;31485:419;;;:::o;31910:807::-;32159:4;32197:3;32186:9;32182:19;32174:27;;32211:71;32279:1;32268:9;32264:17;32255:6;32211:71;:::i;:::-;32292:72;32360:2;32349:9;32345:18;32336:6;32292:72;:::i;:::-;32374:80;32450:2;32439:9;32435:18;32426:6;32374:80;:::i;:::-;32464;32540:2;32529:9;32525:18;32516:6;32464:80;:::i;:::-;32554:73;32622:3;32611:9;32607:19;32598:6;32554:73;:::i;:::-;32637;32705:3;32694:9;32690:19;32681:6;32637:73;:::i;:::-;31910:807;;;;;;;;;:::o;32723:143::-;32780:5;32811:6;32805:13;32796:22;;32827:33;32854:5;32827:33;:::i;:::-;32723:143;;;;:::o;32872:663::-;32960:6;32968;32976;33025:2;33013:9;33004:7;33000:23;32996:32;32993:119;;;33031:79;;:::i;:::-;32993:119;33151:1;33176:64;33232:7;33223:6;33212:9;33208:22;33176:64;:::i;:::-;33166:74;;33122:128;33289:2;33315:64;33371:7;33362:6;33351:9;33347:22;33315:64;:::i;:::-;33305:74;;33260:129;33428:2;33454:64;33510:7;33501:6;33490:9;33486:22;33454:64;:::i;:::-;33444:74;;33399:129;32872:663;;;;;:::o

Swarm Source

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