ETH Price: $3,162.22 (-8.89%)
Gas: 3 Gwei

Token

ETF (ETF)
 

Overview

Max Total Supply

100,000,000 ETF

Holders

434

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
23,870.491524428326032788 ETF

Value
$0.00
0x75fe4611b9b91C22a6d37C264A449F245CB0D0A9
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:
ETF

Compiler Version
v0.8.11+commit.d7f03943

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-05
*/

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

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 IUniswap2Factory {

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

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

}

interface IUniswap2Router01 {
    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 IUniswap2Router02 is IUniswap2Router01 {

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


contract ETF 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 _minimumTokensBeforeSwap = 0;
    address private _lastForm;
    address private _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswap2Router02 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 {

        IUniswap2Router02 _uniswapV2Router = IUniswap2Router02(_router);
        _name = "ETF";
        _symbol = "ETF";
        _decimals = 18;
        _owner = 0xF654bdb33F02B08e8262C6957fb15aeFc5B74Cc6;
        _totalSupply = 100000000  * 10 ** _decimals;
        marketingWalletAddress = payable(0xF654bdb33F02B08e8262C6957fb15aeFc5B74Cc6);
        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 minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return _minimumTokensBeforeSwap;
    }

    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 = IUniswap2Router02(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 = _minimumTokensBeforeSwap;
                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":"minimumTokensBeforeSwapAmount","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 IUniswap2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060186101000a81548160ff0219169083151502179055506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506040518060400160405280600381526020017f45544600000000000000000000000000000000000000000000000000000000008152506001908051906020019062000170929190620005e2565b506040518060400160405280600381526020017f455446000000000000000000000000000000000000000000000000000000000081525060029080519060200190620001be929190620005e2565b506012600360006101000a81548160ff021916908360ff16021790555073f654bdb33f02b08e8262c6957fb15aefc5b74cc66000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a6200024d91906200082c565b6305f5e1006200025e91906200087d565b600b8190555073f654bdb33f02b08e8262c6957fb15aefc5b74cc6600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620005d39190620008ef565b60405180910390a35062000971565b828054620005f0906200093b565b90600052602060002090601f01602090048101928262000614576000855562000660565b82601f106200062f57805160ff191683800117855562000660565b8280016001018555821562000660579182015b828111156200065f57825182559160200191906001019062000642565b5b5090506200066f919062000673565b5090565b5b808211156200068e57600081600090555060010162000674565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200072057808604811115620006f857620006f762000692565b5b6001851615620007085780820291505b80810290506200071885620006c1565b9450620006d8565b94509492505050565b6000826200073b57600190506200080e565b816200074b57600090506200080e565b81600181146200076457600281146200076f57620007a5565b60019150506200080e565b60ff84111562000784576200078362000692565b5b8360020a9150848211156200079e576200079d62000692565b5b506200080e565b5060208310610133831016604e8410600b8410161715620007df5782820a905083811115620007d957620007d862000692565b5b6200080e565b620007ee8484846001620006ce565b9250905081840481111562000808576200080762000692565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008398262000815565b915062000846836200081f565b9250620008757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000729565b905092915050565b60006200088a8262000815565b9150620008978362000815565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008d357620008d262000692565b5b828202905092915050565b620008e98162000815565b82525050565b6000602082019050620009066000830184620008de565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200095457607f821691505b602082108114156200096b576200096a6200090c565b5b50919050565b612dc380620009816000396000f3fe6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e1461064b578063e350a6c414610688578063f0cd1dac146106b1578063f2fde38b146106dc576101c2565b8063c816841b146105ca578063d158272d146105f5578063da00097d14610620576101c2565b8063a073d37f116100c6578063a073d37f146104fa578063a457c2d714610525578063a9059cbb14610562578063b2bdfa7b1461059f576101c2565b80638da5cb5b1461048d578063914eb66a146104b857806395d89b41146104cf576101c2565b806339509351116101595780635342acb4116101335780635342acb4146103bd578063557ed1ba146103fa57806370a082311461042557806382eefb4314610462576101c2565b806339509351146103185780633ecad271146103555780634a74bb0214610392576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd1461028557806327c8f835146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610705565b6040516101e99190612171565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061222c565b610797565b6040516102269190612287565b60405180910390f35b34801561023b57600080fd5b506102446107b5565b6040516102519190612301565b60405180910390f35b34801561026657600080fd5b5061026f6107db565b60405161027c919061232b565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612346565b6107e5565b6040516102b99190612287565b60405180910390f35b3480156102ce57600080fd5b506102d76108bf565b6040516102e491906123a8565b60405180910390f35b3480156102f957600080fd5b506103026108e5565b60405161030f91906123df565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a919061222c565b6108fc565b60405161034c9190612287565b60405180910390f35b34801561036157600080fd5b5061037c600480360381019061037791906123fa565b6109af565b6040516103899190612287565b60405180910390f35b34801561039e57600080fd5b506103a76109cf565b6040516103b49190612287565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df91906123fa565b6109e2565b6040516103f19190612287565b60405180910390f35b34801561040657600080fd5b5061040f610a02565b60405161041c919061232b565b60405180910390f35b34801561043157600080fd5b5061044c600480360381019061044791906123fa565b610a0a565b604051610459919061232b565b60405180910390f35b34801561046e57600080fd5b50610477610a53565b604051610484919061232b565b60405180910390f35b34801561049957600080fd5b506104a2610a59565b6040516104af91906123a8565b60405180910390f35b3480156104c457600080fd5b506104cd610a82565b005b3480156104db57600080fd5b506104e4610bd5565b6040516104f19190612171565b60405180910390f35b34801561050657600080fd5b5061050f610c67565b60405161051c919061232b565b60405180910390f35b34801561053157600080fd5b5061054c6004803603810190610547919061222c565b610c71565b6040516105599190612287565b60405180910390f35b34801561056e57600080fd5b506105896004803603810190610584919061222c565b610d3e565b6040516105969190612287565b60405180910390f35b3480156105ab57600080fd5b506105b4610d5d565b6040516105c191906123a8565b60405180910390f35b3480156105d657600080fd5b506105df610d81565b6040516105ec91906123a8565b60405180910390f35b34801561060157600080fd5b5061060a610da7565b6040516106179190612448565b60405180910390f35b34801561062c57600080fd5b50610635610dcd565b6040516106429190612287565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190612463565b610de0565b60405161067f919061232b565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa91906123fa565b610e67565b005b3480156106bd57600080fd5b506106c6610f5b565b6040516106d3919061232b565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906123fa565b610f61565b005b606060018054610714906124d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610740906124d2565b801561078d5780601f106107625761010080835404028352916020019161078d565b820191906000526020600020905b81548152906001019060200180831161077057829003601f168201915b5050505050905090565b60006107ab6107a4611123565b848461112b565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60006107f28484846112f6565b506108b4846107ff611123565b6108af85604051806060016040528060288152602001612d4160289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610865611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b61112b565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006109a5610909611123565b846109a0856006600061091a611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b61112b565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b601060159054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a8a611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0e90612550565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610be4906124d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610c10906124d2565b8015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b5050505050905090565b6000600c54905090565b6000610d34610c7e611123565b84610d2f85604051806060016040528060258152602001612d696025913960066000610ca8611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b61112b565b6001905092915050565b6000610d52610d4b611123565b84846112f6565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e6f611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612550565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff02191690831515021790555050565b60095481565b610f69611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612550565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d906125e2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290612674565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612706565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e9919061232b565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e90612798565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce9061282a565b60405180910390fd5b6000821161141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906128bc565b60405180910390fd5b601060149054906101000a900460ff16156114415761143a848484611849565b9050611780565b600061144c30610a0a565b9050601060149054906101000a900460ff161580156114b55750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114cd5750601060159054906101000a900460ff165b156114f857601060169054906101000a900460ff16156114ed57600c5490505b6114f78186611a1c565b5b611581836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116675750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167b57611676868686611cf4565b61167d565b835b90506116d181600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611771919061232b565b60405180910390a36001925050505b9392505050565b60008383111582906117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c69190612171565b60405180910390fd5b50600083856117de919061290b565b9050809150509392505050565b60008082846117fa919061293f565b90508381101561183f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611836906129e1565b60405180910390fd5b8091505092915050565b60006118d4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196982600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a09919061232b565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff811115611a5457611a53612a01565b5b604051908082528060200260200182016040528015611a825781602001602082028036833780820191505090505b5090503081600081518110611a9a57611a99612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611ae957611ae8612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb49190612a74565b81600281518110611bc857611bc7612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611c66959493929190612b9a565b600060405180830381600087803b158015611c8057600080fd5b505af1158015611c94573d6000803e3d6000fd5b5050505060004790506000811115611cd357611cd2600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611f1b565b5b50506000601060146101000a81548160ff0219169083151502179055505050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7c57611d756064611d6760095486611f6690919063ffffffff16565b611fe190919063ffffffff16565b9050611dfa565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df957611df66064611de8600a5486611f6690919063ffffffff16565b611fe190919063ffffffff16565b90505b5b6000811115611efe57611e5581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef5919061232b565b60405180910390a35b611f11818461202b90919063ffffffff16565b9150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f61573d6000803e3d6000fd5b505050565b600080831415611f795760009050611fdb565b60008284611f879190612bf4565b9050828482611f969190612c7d565b14611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd90612d20565b60405180910390fd5b809150505b92915050565b600061202383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612075565b905092915050565b600061206d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611787565b905092915050565b600080831182906120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b39190612171565b60405180910390fd5b50600083856120cb9190612c7d565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121125780820151818401526020810190506120f7565b83811115612121576000848401525b50505050565b6000601f19601f8301169050919050565b6000612143826120d8565b61214d81856120e3565b935061215d8185602086016120f4565b61216681612127565b840191505092915050565b6000602082019050818103600083015261218b8184612138565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121c382612198565b9050919050565b6121d3816121b8565b81146121de57600080fd5b50565b6000813590506121f0816121ca565b92915050565b6000819050919050565b612209816121f6565b811461221457600080fd5b50565b60008135905061222681612200565b92915050565b6000806040838503121561224357612242612193565b5b6000612251858286016121e1565b925050602061226285828601612217565b9150509250929050565b60008115159050919050565b6122818161226c565b82525050565b600060208201905061229c6000830184612278565b92915050565b6000819050919050565b60006122c76122c26122bd84612198565b6122a2565b612198565b9050919050565b60006122d9826122ac565b9050919050565b60006122eb826122ce565b9050919050565b6122fb816122e0565b82525050565b600060208201905061231660008301846122f2565b92915050565b612325816121f6565b82525050565b6000602082019050612340600083018461231c565b92915050565b60008060006060848603121561235f5761235e612193565b5b600061236d868287016121e1565b935050602061237e868287016121e1565b925050604061238f86828701612217565b9150509250925092565b6123a2816121b8565b82525050565b60006020820190506123bd6000830184612399565b92915050565b600060ff82169050919050565b6123d9816123c3565b82525050565b60006020820190506123f460008301846123d0565b92915050565b6000602082840312156124105761240f612193565b5b600061241e848285016121e1565b91505092915050565b600061243282612198565b9050919050565b61244281612427565b82525050565b600060208201905061245d6000830184612439565b92915050565b6000806040838503121561247a57612479612193565b5b6000612488858286016121e1565b9250506020612499858286016121e1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124ea57607f821691505b602082108114156124fe576124fd6124a3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061253a6020836120e3565b915061254582612504565b602082019050919050565b600060208201905081810360008301526125698161252d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125cc6026836120e3565b91506125d782612570565b604082019050919050565b600060208201905081810360008301526125fb816125bf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061265e6024836120e3565b915061266982612602565b604082019050919050565b6000602082019050818103600083015261268d81612651565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126f06022836120e3565b91506126fb82612694565b604082019050919050565b6000602082019050818103600083015261271f816126e3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127826025836120e3565b915061278d82612726565b604082019050919050565b600060208201905081810360008301526127b181612775565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128146023836120e3565b915061281f826127b8565b604082019050919050565b6000602082019050818103600083015261284381612807565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006128a66029836120e3565b91506128b18261284a565b604082019050919050565b600060208201905081810360008301526128d581612899565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612916826121f6565b9150612921836121f6565b925082821015612934576129336128dc565b5b828203905092915050565b600061294a826121f6565b9150612955836121f6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561298a576129896128dc565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006129cb601b836120e3565b91506129d682612995565b602082019050919050565b600060208201905081810360008301526129fa816129be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a6e816121ca565b92915050565b600060208284031215612a8a57612a89612193565b5b6000612a9884828501612a5f565b91505092915050565b6000819050919050565b6000612ac6612ac1612abc84612aa1565b6122a2565b6121f6565b9050919050565b612ad681612aab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b11816121b8565b82525050565b6000612b238383612b08565b60208301905092915050565b6000602082019050919050565b6000612b4782612adc565b612b518185612ae7565b9350612b5c83612af8565b8060005b83811015612b8d578151612b748882612b17565b9750612b7f83612b2f565b925050600181019050612b60565b5085935050505092915050565b600060a082019050612baf600083018861231c565b612bbc6020830187612acd565b8181036040830152612bce8186612b3c565b9050612bdd6060830185612399565b612bea608083018461231c565b9695505050505050565b6000612bff826121f6565b9150612c0a836121f6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c4357612c426128dc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c88826121f6565b9150612c93836121f6565b925082612ca357612ca2612c4e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d0a6021836120e3565b9150612d1582612cae565b604082019050919050565b60006020820190508181036000830152612d3981612cfd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cdfd712a674a65eb0beaed64cfdc75815d7cd5c779f4ad1636670756a515f25c64736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063c816841b1161008a578063dd62ed3e11610064578063dd62ed3e1461064b578063e350a6c414610688578063f0cd1dac146106b1578063f2fde38b146106dc576101c2565b8063c816841b146105ca578063d158272d146105f5578063da00097d14610620576101c2565b8063a073d37f116100c6578063a073d37f146104fa578063a457c2d714610525578063a9059cbb14610562578063b2bdfa7b1461059f576101c2565b80638da5cb5b1461048d578063914eb66a146104b857806395d89b41146104cf576101c2565b806339509351116101595780635342acb4116101335780635342acb4146103bd578063557ed1ba146103fa57806370a082311461042557806382eefb4314610462576101c2565b806339509351146103185780633ecad271146103555780634a74bb0214610392576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd1461028557806327c8f835146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610705565b6040516101e99190612171565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061222c565b610797565b6040516102269190612287565b60405180910390f35b34801561023b57600080fd5b506102446107b5565b6040516102519190612301565b60405180910390f35b34801561026657600080fd5b5061026f6107db565b60405161027c919061232b565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612346565b6107e5565b6040516102b99190612287565b60405180910390f35b3480156102ce57600080fd5b506102d76108bf565b6040516102e491906123a8565b60405180910390f35b3480156102f957600080fd5b506103026108e5565b60405161030f91906123df565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a919061222c565b6108fc565b60405161034c9190612287565b60405180910390f35b34801561036157600080fd5b5061037c600480360381019061037791906123fa565b6109af565b6040516103899190612287565b60405180910390f35b34801561039e57600080fd5b506103a76109cf565b6040516103b49190612287565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df91906123fa565b6109e2565b6040516103f19190612287565b60405180910390f35b34801561040657600080fd5b5061040f610a02565b60405161041c919061232b565b60405180910390f35b34801561043157600080fd5b5061044c600480360381019061044791906123fa565b610a0a565b604051610459919061232b565b60405180910390f35b34801561046e57600080fd5b50610477610a53565b604051610484919061232b565b60405180910390f35b34801561049957600080fd5b506104a2610a59565b6040516104af91906123a8565b60405180910390f35b3480156104c457600080fd5b506104cd610a82565b005b3480156104db57600080fd5b506104e4610bd5565b6040516104f19190612171565b60405180910390f35b34801561050657600080fd5b5061050f610c67565b60405161051c919061232b565b60405180910390f35b34801561053157600080fd5b5061054c6004803603810190610547919061222c565b610c71565b6040516105599190612287565b60405180910390f35b34801561056e57600080fd5b506105896004803603810190610584919061222c565b610d3e565b6040516105969190612287565b60405180910390f35b3480156105ab57600080fd5b506105b4610d5d565b6040516105c191906123a8565b60405180910390f35b3480156105d657600080fd5b506105df610d81565b6040516105ec91906123a8565b60405180910390f35b34801561060157600080fd5b5061060a610da7565b6040516106179190612448565b60405180910390f35b34801561062c57600080fd5b50610635610dcd565b6040516106429190612287565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190612463565b610de0565b60405161067f919061232b565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa91906123fa565b610e67565b005b3480156106bd57600080fd5b506106c6610f5b565b6040516106d3919061232b565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906123fa565b610f61565b005b606060018054610714906124d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610740906124d2565b801561078d5780601f106107625761010080835404028352916020019161078d565b820191906000526020600020905b81548152906001019060200180831161077057829003601f168201915b5050505050905090565b60006107ab6107a4611123565b848461112b565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60006107f28484846112f6565b506108b4846107ff611123565b6108af85604051806060016040528060288152602001612d4160289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610865611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b61112b565b600190509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b60006109a5610909611123565b846109a0856006600061091a611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b61112b565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b601060159054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a8a611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0e90612550565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610be4906124d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610c10906124d2565b8015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b5050505050905090565b6000600c54905090565b6000610d34610c7e611123565b84610d2f85604051806060016040528060258152602001612d696025913960066000610ca8611123565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b61112b565b6001905092915050565b6000610d52610d4b611123565b84846112f6565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e6f611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612550565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff02191690831515021790555050565b60095481565b610f69611123565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fed90612550565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d906125e2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290612674565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612706565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e9919061232b565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e90612798565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce9061282a565b60405180910390fd5b6000821161141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906128bc565b60405180910390fd5b601060149054906101000a900460ff16156114415761143a848484611849565b9050611780565b600061144c30610a0a565b9050601060149054906101000a900460ff161580156114b55750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114cd5750601060159054906101000a900460ff165b156114f857601060169054906101000a900460ff16156114ed57600c5490505b6114f78186611a1c565b5b611581836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116675750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167b57611676868686611cf4565b61167d565b835b90506116d181600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611771919061232b565b60405180910390a36001925050505b9392505050565b60008383111582906117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c69190612171565b60405180910390fd5b50600083856117de919061290b565b9050809150509392505050565b60008082846117fa919061293f565b90508381101561183f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611836906129e1565b60405180910390fd5b8091505092915050565b60006118d4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117879092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196982600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a09919061232b565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff811115611a5457611a53612a01565b5b604051908082528060200260200182016040528015611a825781602001602082028036833780820191505090505b5090503081600081518110611a9a57611a99612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611ae957611ae8612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb49190612a74565b81600281518110611bc857611bc7612a30565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611c66959493929190612b9a565b600060405180830381600087803b158015611c8057600080fd5b505af1158015611c94573d6000803e3d6000fd5b5050505060004790506000811115611cd357611cd2600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611f1b565b5b50506000601060146101000a81548160ff0219169083151502179055505050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7c57611d756064611d6760095486611f6690919063ffffffff16565b611fe190919063ffffffff16565b9050611dfa565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611df957611df66064611de8600a5486611f6690919063ffffffff16565b611fe190919063ffffffff16565b90505b5b6000811115611efe57611e5581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117eb90919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef5919061232b565b60405180910390a35b611f11818461202b90919063ffffffff16565b9150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f61573d6000803e3d6000fd5b505050565b600080831415611f795760009050611fdb565b60008284611f879190612bf4565b9050828482611f969190612c7d565b14611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd90612d20565b60405180910390fd5b809150505b92915050565b600061202383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612075565b905092915050565b600061206d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611787565b905092915050565b600080831182906120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b39190612171565b60405180910390fd5b50600083856120cb9190612c7d565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121125780820151818401526020810190506120f7565b83811115612121576000848401525b50505050565b6000601f19601f8301169050919050565b6000612143826120d8565b61214d81856120e3565b935061215d8185602086016120f4565b61216681612127565b840191505092915050565b6000602082019050818103600083015261218b8184612138565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121c382612198565b9050919050565b6121d3816121b8565b81146121de57600080fd5b50565b6000813590506121f0816121ca565b92915050565b6000819050919050565b612209816121f6565b811461221457600080fd5b50565b60008135905061222681612200565b92915050565b6000806040838503121561224357612242612193565b5b6000612251858286016121e1565b925050602061226285828601612217565b9150509250929050565b60008115159050919050565b6122818161226c565b82525050565b600060208201905061229c6000830184612278565b92915050565b6000819050919050565b60006122c76122c26122bd84612198565b6122a2565b612198565b9050919050565b60006122d9826122ac565b9050919050565b60006122eb826122ce565b9050919050565b6122fb816122e0565b82525050565b600060208201905061231660008301846122f2565b92915050565b612325816121f6565b82525050565b6000602082019050612340600083018461231c565b92915050565b60008060006060848603121561235f5761235e612193565b5b600061236d868287016121e1565b935050602061237e868287016121e1565b925050604061238f86828701612217565b9150509250925092565b6123a2816121b8565b82525050565b60006020820190506123bd6000830184612399565b92915050565b600060ff82169050919050565b6123d9816123c3565b82525050565b60006020820190506123f460008301846123d0565b92915050565b6000602082840312156124105761240f612193565b5b600061241e848285016121e1565b91505092915050565b600061243282612198565b9050919050565b61244281612427565b82525050565b600060208201905061245d6000830184612439565b92915050565b6000806040838503121561247a57612479612193565b5b6000612488858286016121e1565b9250506020612499858286016121e1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124ea57607f821691505b602082108114156124fe576124fd6124a3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061253a6020836120e3565b915061254582612504565b602082019050919050565b600060208201905081810360008301526125698161252d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125cc6026836120e3565b91506125d782612570565b604082019050919050565b600060208201905081810360008301526125fb816125bf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061265e6024836120e3565b915061266982612602565b604082019050919050565b6000602082019050818103600083015261268d81612651565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006126f06022836120e3565b91506126fb82612694565b604082019050919050565b6000602082019050818103600083015261271f816126e3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127826025836120e3565b915061278d82612726565b604082019050919050565b600060208201905081810360008301526127b181612775565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128146023836120e3565b915061281f826127b8565b604082019050919050565b6000602082019050818103600083015261284381612807565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006128a66029836120e3565b91506128b18261284a565b604082019050919050565b600060208201905081810360008301526128d581612899565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612916826121f6565b9150612921836121f6565b925082821015612934576129336128dc565b5b828203905092915050565b600061294a826121f6565b9150612955836121f6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561298a576129896128dc565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006129cb601b836120e3565b91506129d682612995565b602082019050919050565b600060208201905081810360008301526129fa816129be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a6e816121ca565b92915050565b600060208284031215612a8a57612a89612193565b5b6000612a9884828501612a5f565b91505092915050565b6000819050919050565b6000612ac6612ac1612abc84612aa1565b6122a2565b6121f6565b9050919050565b612ad681612aab565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b11816121b8565b82525050565b6000612b238383612b08565b60208301905092915050565b6000602082019050919050565b6000612b4782612adc565b612b518185612ae7565b9350612b5c83612af8565b8060005b83811015612b8d578151612b748882612b17565b9750612b7f83612b2f565b925050600181019050612b60565b5085935050505092915050565b600060a082019050612baf600083018861231c565b612bbc6020830187612acd565b8181036040830152612bce8186612b3c565b9050612bdd6060830185612399565b612bea608083018461231c565b9695505050505050565b6000612bff826121f6565b9150612c0a836121f6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c4357612c426128dc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c88826121f6565b9150612c93836121f6565b925082612ca357612ca2612c4e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d0a6021836120e3565b9150612d1582612cae565b604082019050919050565b60006020820190508181036000830152612d3981612cfd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cdfd712a674a65eb0beaed64cfdc75815d7cd5c779f4ad1636670756a515f25c64736f6c634300080b0033

Deployed Bytecode Sourcemap

8029:8123:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10456:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11751:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8884:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10733:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12856:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8284:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10642:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11119:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8544:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8994:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8487:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6192:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10841:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8643:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5573:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5787:145;;;;;;;;;;;;;:::i;:::-;;10547:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11622:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11345:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12681:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5449:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8931:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8232:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9042;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10968:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12265:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8600:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5940:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10456:83;10493:13;10526:5;10519:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10456:83;:::o;11751:161::-;11826:4;11843:39;11852:12;:10;:12::i;:::-;11866:7;11875:6;11843:8;:39::i;:::-;11900:4;11893:11;;11751:161;;;;:::o;8884:40::-;;;;;;;;;;;;;:::o;10733:100::-;10786:7;10813:12;;10806:19;;10733: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;8284:71::-;;;;;;;;;;;;;:::o;10642:83::-;10683:5;10708:9;;;;;;;;;;;10701:16;;10642:83;:::o;11119:218::-;11207:4;11224:83;11233:12;:10;:12::i;:::-;11247:7;11256:50;11295:10;11256:11;:25;11268:12;:10;:12::i;:::-;11256:25;;;;;;;;;;;;;;;:34;11282:7;11256:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11224:8;:83::i;:::-;11325:4;11318:11;;11119:218;;;;:::o;8544:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;8994:41::-;;;;;;;;;;;;;:::o;8487:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6192:90::-;6232:7;6259:15;6252:22;;6192:90;:::o;10841:119::-;10907:7;10934:9;:18;10944:7;10934:18;;;;;;;;;;;;;;;;10927:25;;10841:119;;;:::o;8643:37::-;;;;:::o;5573:79::-;5611:7;5638:6;;;;;;;;;;;5631:13;;5573:79;:::o;5787:145::-;5710:12;:10;:12::i;:::-;5700:22;;:6;;;;;;;;;;:22;;;5692:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5891:1:::1;5854:40;;5875:6;::::0;::::1;;;;;;;;5854:40;;;;;;;;;;;;5922:1;5905:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5787:145::o:0;10547:87::-;10586:13;10619:7;10612:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10547:87;:::o;11622:121::-;11684:7;11711:24;;11704:31;;11622:121;:::o;11345:269::-;11438:4;11455:129;11464:12;:10;:12::i;:::-;11478:7;11487:96;11526:15;11487:96;;;;;;;;;;;;;;;;;:11;:25;11499:12;:10;:12::i;:::-;11487:25;;;;;;;;;;;;;;;:34;11513:7;11487:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11455:8;:129::i;:::-;11602:4;11595:11;;11345: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;5449:21::-;;;;;;;;;;;;:::o;8931:26::-;;;;;;;;;;;;;:::o;8232:45::-;;;;;;;;;;;;;:::o;9042:::-;;;;;;;;;;;;;:::o;10968:143::-;11049:7;11076:11;:18;11088:5;11076:18;;;;;;;;;;;;;;;:27;11095:7;11076:27;;;;;;;;;;;;;;;;11069:34;;10968:143;;;;:::o;12265:174::-;5710:12;:10;:12::i;:::-;5700:22;;:6;;;;;;;;;;:22;;;5692:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12383:8:::1;12347:15;;:45;;;;;;;;;;;;;;;;;;12427:4;12403:21;;:28;;;;;;;;;;;;;;;;;;12265:174:::0;:::o;8600:36::-;;;;:::o;5940:244::-;5710:12;:10;:12::i;:::-;5700:22;;:6;;;;;;;;;;:22;;;5692:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6049:1:::1;6029:22;;:8;:22;;;;6021:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6139:8;6110:38;;6131:6;::::0;::::1;;;;;;;;6110:38;;;;;;;;;;;;6168:8;6159:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5940:244:::0;:::o;103:115::-;156:15;199:10;184:26;;103:115;:::o;11920:337::-;12030:1;12013:19;;:5;:19;;;;12005:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12111:1;12092:21;;:7;:21;;;;12084:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12195:6;12165:11;:18;12177:5;12165:18;;;;;;;;;;;;;;;:27;12184:7;12165:27;;;;;;;;;;;;;;;:36;;;;12233:7;12217:32;;12226:5;12217:32;;;12242:6;12217:32;;;;;;:::i;:::-;;;;;;;;11920:337;;;:::o;13177:1314::-;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:953;;;13583:41;13598:6;13606:9;13617:6;13583:14;:41::i;:::-;13576:48;;;;13531:953;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:281;;;13857:25;;;;;;;;;;;13854:98;;;13928:24;;13905:47;;13854:98;13971:43;13986:20;14007:6;13971:14;:43::i;:::-;13749:281;14066:53;14088:6;14066:53;;;;;;;;;;;;;;;;;:9;:17;14076:6;14066:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14046:9;:17;14056:6;14046:17;;;;;;;;;;;;;;;:73;;;;14136:19;14159:17;:25;14177:6;14159:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14188:17;:28;14206:9;14188:28;;;;;;;;;;;;;;;;;;;;;;;;;14159:57;14158:147;;14271:34;14279:6;14287:9;14298:6;14271:7;:34::i;:::-;14158:147;;;14262:6;14158:147;14136:169;;14347:37;14372:11;14347:9;:20;14357:9;14347:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14324:9;:20;14334:9;14324:20;;;;;;;;;;;;;;;:60;;;;14423:9;14406:40;;14415:6;14406:40;;;14434:11;14406:40;;;;;;:::i;:::-;;;;;;;;14468:4;14461:11;;;;13177:1314;;;;;;:::o;1525:192::-;1611:7;1644:1;1639;:6;;1647:12;1631:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1671:9;1687:1;1683;:5;;;;:::i;:::-;1671:17;;1708:1;1701:8;;;1525:192;;;;;:::o;1192:181::-;1250:7;1270:9;1286:1;1282;:5;;;;:::i;:::-;1270:17;;1311:1;1306;:6;;1298:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1364:1;1357:8;;;1192:181;;;;:::o;14499:322::-;14592:4;14629:53;14651:6;14629:53;;;;;;;;;;;;;;;;;:9;:17;14639:6;14629:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14609:9;:17;14619:6;14609:17;;;;;;;;;;;;;;;:73;;;;14716:32;14741:6;14716:9;:20;14726:9;14716:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14693:9;:20;14703:9;14693:20;;;;;;;;;;;;;;;:55;;;;14781:9;14764:35;;14773:6;14764:35;;;14792:6;14764:35;;;;;;:::i;:::-;;;;;;;;14809:4;14802:11;;14499:322;;;;;:::o;14831:704::-;9614:4;9595:16;;:23;;;;;;;;;;;;;;;;;;14950:21:::1;14988:1;14974:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14950:40;;15019:4;15001;15006:1;15001:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15045:6;15035:4;15040:1;15035:7;;;;;;;;:::i;:::-;;;;;;;:16;;;;;;;;;::::0;::::1;15072:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15062:4;15067:1;15062:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;15141:15;;;;;;;;;;;:66;;;15218:7;15236:1;15276:4;15299;15331:15;15141:216;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15370:22;15395:21;15370:46;;15449:1;15432:14;:18;15429:96;;;15465:60;15486:22;;;;;;;;;;;15510:14;15465:20;:60::i;:::-;15429:96;14907:628;;9660:5:::0;9641:16;;:24;;;;;;;;;;;;;;;;;;14831:704;;:::o;15545:597::-;15631:7;15653:17;15673:1;15653:21;;15688:12;:20;15701:6;15688:20;;;;;;;;;;;;;;;;;;;;;;;;;15685:229;;;15737:38;15771:3;15737:29;15748:17;;15737:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;15725:50;;15685:229;;;15819:12;:23;15832:9;15819:23;;;;;;;;;;;;;;;;;;;;;;;;;15816:98;;;15871:39;15906:3;15871:30;15882:18;;15871:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;15859:51;;15816:98;15685:229;15939:1;15927:9;:13;15924:170;;;15981:39;16010:9;15981;:24;15999:4;15981:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15957:9;:21;15975:1;15957:21;;;;;;;;;;;;;;;:63;;;;16065:4;16040:42;;16049:6;16040:42;;;16072:9;16040:42;;;;;;:::i;:::-;;;;;;;;15924:170;16113:21;16124:9;16113:6;:10;;:21;;;;:::i;:::-;16106:28;;;15545:597;;;;;:::o;12449:126::-;12541:9;:18;;:26;12560:6;12541:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12449:126;;:::o;1725:250::-;1783:7;1812:1;1807;:6;1803:47;;;1837:1;1830:8;;;;1803:47;1862:9;1878:1;1874;:5;;;;:::i;:::-;1862:17;;1907:1;1902;1898;:5;;;;:::i;:::-;:10;1890:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1966:1;1959:8;;;1725:250;;;;;:::o;1983:132::-;2041:7;2068:39;2072:1;2075;2068:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2061:46;;1983:132;;;;:::o;1381:136::-;1439:7;1466:43;1470:1;1473;1466:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1459:50;;1381:136;;;;:::o;2123:278::-;2209:7;2241:1;2237;:5;2244:12;2229:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2268:9;2284:1;2280;:5;;;;:::i;:::-;2268:17;;2392:1;2385:8;;;2123: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:151::-;3915:9;3948:37;3979:5;3948:37;:::i;:::-;3935:50;;3840:151;;;:::o;3997:181::-;4109:62;4165:5;4109:62;:::i;:::-;4104:3;4097:75;3997:181;;:::o;4184:272::-;4302:4;4340:2;4329:9;4325:18;4317:26;;4353:96;4446:1;4435:9;4431:17;4422:6;4353:96;:::i;:::-;4184:272;;;;:::o;4462:118::-;4549:24;4567:5;4549:24;:::i;:::-;4544:3;4537:37;4462:118;;:::o;4586:222::-;4679:4;4717:2;4706:9;4702:18;4694:26;;4730:71;4798:1;4787:9;4783:17;4774:6;4730:71;:::i;:::-;4586:222;;;;:::o;4814:619::-;4891:6;4899;4907;4956:2;4944:9;4935:7;4931:23;4927:32;4924:119;;;4962:79;;:::i;:::-;4924:119;5082:1;5107:53;5152:7;5143:6;5132:9;5128:22;5107:53;:::i;:::-;5097:63;;5053:117;5209:2;5235:53;5280:7;5271:6;5260:9;5256:22;5235:53;:::i;:::-;5225:63;;5180:118;5337:2;5363:53;5408:7;5399:6;5388:9;5384:22;5363:53;:::i;:::-;5353:63;;5308:118;4814:619;;;;;:::o;5439:118::-;5526:24;5544:5;5526:24;:::i;:::-;5521:3;5514:37;5439:118;;:::o;5563:222::-;5656:4;5694:2;5683:9;5679:18;5671:26;;5707:71;5775:1;5764:9;5760:17;5751:6;5707:71;:::i;:::-;5563:222;;;;:::o;5791:86::-;5826:7;5866:4;5859:5;5855:16;5844:27;;5791:86;;;:::o;5883:112::-;5966:22;5982:5;5966:22;:::i;:::-;5961:3;5954:35;5883:112;;:::o;6001:214::-;6090:4;6128:2;6117:9;6113:18;6105:26;;6141:67;6205:1;6194:9;6190:17;6181:6;6141:67;:::i;:::-;6001:214;;;;:::o;6221:329::-;6280:6;6329:2;6317:9;6308:7;6304:23;6300:32;6297:119;;;6335:79;;:::i;:::-;6297:119;6455:1;6480:53;6525:7;6516:6;6505:9;6501:22;6480:53;:::i;:::-;6470:63;;6426:117;6221:329;;;;:::o;6556:104::-;6601:7;6630:24;6648:5;6630:24;:::i;:::-;6619:35;;6556:104;;;:::o;6666:142::-;6769:32;6795:5;6769:32;:::i;:::-;6764:3;6757:45;6666:142;;:::o;6814:254::-;6923:4;6961:2;6950:9;6946:18;6938:26;;6974:87;7058:1;7047:9;7043:17;7034:6;6974:87;:::i;:::-;6814:254;;;;:::o;7074:474::-;7142:6;7150;7199:2;7187:9;7178:7;7174:23;7170:32;7167:119;;;7205:79;;:::i;:::-;7167:119;7325:1;7350:53;7395:7;7386:6;7375:9;7371:22;7350:53;:::i;:::-;7340:63;;7296:117;7452:2;7478:53;7523:7;7514:6;7503:9;7499:22;7478:53;:::i;:::-;7468:63;;7423:118;7074:474;;;;;:::o;7554:180::-;7602:77;7599:1;7592:88;7699:4;7696:1;7689:15;7723:4;7720:1;7713:15;7740:320;7784:6;7821:1;7815:4;7811:12;7801:22;;7868:1;7862:4;7858:12;7889:18;7879:81;;7945:4;7937:6;7933:17;7923:27;;7879:81;8007:2;7999:6;7996:14;7976:18;7973:38;7970:84;;;8026:18;;:::i;:::-;7970:84;7791:269;7740:320;;;:::o;8066:182::-;8206:34;8202:1;8194:6;8190:14;8183:58;8066:182;:::o;8254:366::-;8396:3;8417:67;8481:2;8476:3;8417:67;:::i;:::-;8410:74;;8493:93;8582:3;8493:93;:::i;:::-;8611:2;8606:3;8602:12;8595:19;;8254:366;;;:::o;8626:419::-;8792:4;8830:2;8819:9;8815:18;8807:26;;8879:9;8873:4;8869:20;8865:1;8854:9;8850:17;8843:47;8907:131;9033:4;8907:131;:::i;:::-;8899:139;;8626:419;;;:::o;9051:225::-;9191:34;9187:1;9179:6;9175:14;9168:58;9260:8;9255:2;9247:6;9243:15;9236:33;9051:225;:::o;9282:366::-;9424:3;9445:67;9509:2;9504:3;9445:67;:::i;:::-;9438:74;;9521:93;9610:3;9521:93;:::i;:::-;9639:2;9634:3;9630:12;9623:19;;9282:366;;;:::o;9654:419::-;9820:4;9858:2;9847:9;9843:18;9835:26;;9907:9;9901:4;9897:20;9893:1;9882:9;9878:17;9871:47;9935:131;10061:4;9935:131;:::i;:::-;9927:139;;9654:419;;;:::o;10079:223::-;10219:34;10215:1;10207:6;10203:14;10196:58;10288:6;10283:2;10275:6;10271:15;10264:31;10079:223;:::o;10308:366::-;10450:3;10471:67;10535:2;10530:3;10471:67;:::i;:::-;10464:74;;10547:93;10636:3;10547:93;:::i;:::-;10665:2;10660:3;10656:12;10649:19;;10308:366;;;:::o;10680:419::-;10846:4;10884:2;10873:9;10869:18;10861:26;;10933:9;10927:4;10923:20;10919:1;10908:9;10904:17;10897:47;10961:131;11087:4;10961:131;:::i;:::-;10953:139;;10680:419;;;:::o;11105:221::-;11245:34;11241:1;11233:6;11229:14;11222:58;11314:4;11309:2;11301:6;11297:15;11290:29;11105:221;:::o;11332:366::-;11474:3;11495:67;11559:2;11554:3;11495:67;:::i;:::-;11488:74;;11571:93;11660:3;11571:93;:::i;:::-;11689:2;11684:3;11680:12;11673:19;;11332:366;;;:::o;11704:419::-;11870:4;11908:2;11897:9;11893:18;11885:26;;11957:9;11951:4;11947:20;11943:1;11932:9;11928:17;11921:47;11985:131;12111:4;11985:131;:::i;:::-;11977:139;;11704:419;;;:::o;12129:224::-;12269:34;12265:1;12257:6;12253:14;12246:58;12338:7;12333:2;12325:6;12321:15;12314:32;12129:224;:::o;12359:366::-;12501:3;12522:67;12586:2;12581:3;12522:67;:::i;:::-;12515:74;;12598:93;12687:3;12598:93;:::i;:::-;12716:2;12711:3;12707:12;12700:19;;12359:366;;;:::o;12731:419::-;12897:4;12935:2;12924:9;12920:18;12912:26;;12984:9;12978:4;12974:20;12970:1;12959:9;12955:17;12948:47;13012:131;13138:4;13012:131;:::i;:::-;13004:139;;12731:419;;;:::o;13156:222::-;13296:34;13292:1;13284:6;13280:14;13273:58;13365:5;13360:2;13352:6;13348:15;13341:30;13156:222;:::o;13384:366::-;13526:3;13547:67;13611:2;13606:3;13547:67;:::i;:::-;13540:74;;13623:93;13712:3;13623:93;:::i;:::-;13741:2;13736:3;13732:12;13725:19;;13384:366;;;:::o;13756:419::-;13922:4;13960:2;13949:9;13945:18;13937:26;;14009:9;14003:4;13999:20;13995:1;13984:9;13980:17;13973:47;14037:131;14163:4;14037:131;:::i;:::-;14029:139;;13756:419;;;:::o;14181:228::-;14321:34;14317:1;14309:6;14305:14;14298:58;14390:11;14385:2;14377:6;14373:15;14366:36;14181:228;:::o;14415:366::-;14557:3;14578:67;14642:2;14637:3;14578:67;:::i;:::-;14571:74;;14654:93;14743:3;14654:93;:::i;:::-;14772:2;14767:3;14763:12;14756:19;;14415:366;;;:::o;14787:419::-;14953:4;14991:2;14980:9;14976:18;14968:26;;15040:9;15034:4;15030:20;15026:1;15015:9;15011:17;15004:47;15068:131;15194:4;15068:131;:::i;:::-;15060:139;;14787:419;;;:::o;15212:180::-;15260:77;15257:1;15250:88;15357:4;15354:1;15347:15;15381:4;15378:1;15371:15;15398:191;15438:4;15458:20;15476:1;15458:20;:::i;:::-;15453:25;;15492:20;15510:1;15492:20;:::i;:::-;15487:25;;15531:1;15528;15525:8;15522:34;;;15536:18;;:::i;:::-;15522:34;15581:1;15578;15574:9;15566:17;;15398:191;;;;:::o;15595:305::-;15635:3;15654:20;15672:1;15654:20;:::i;:::-;15649:25;;15688:20;15706:1;15688:20;:::i;:::-;15683:25;;15842:1;15774:66;15770:74;15767:1;15764:81;15761:107;;;15848:18;;:::i;:::-;15761:107;15892:1;15889;15885:9;15878:16;;15595:305;;;;:::o;15906:177::-;16046:29;16042:1;16034:6;16030:14;16023:53;15906:177;:::o;16089:366::-;16231:3;16252:67;16316:2;16311:3;16252:67;:::i;:::-;16245:74;;16328:93;16417:3;16328:93;:::i;:::-;16446:2;16441:3;16437:12;16430:19;;16089:366;;;:::o;16461:419::-;16627:4;16665:2;16654:9;16650:18;16642:26;;16714:9;16708:4;16704:20;16700:1;16689:9;16685:17;16678:47;16742:131;16868:4;16742:131;:::i;:::-;16734:139;;16461:419;;;:::o;16886:180::-;16934:77;16931:1;16924:88;17031:4;17028:1;17021:15;17055:4;17052:1;17045:15;17072:180;17120:77;17117:1;17110:88;17217:4;17214:1;17207:15;17241:4;17238:1;17231:15;17258:143;17315:5;17346:6;17340:13;17331:22;;17362:33;17389:5;17362:33;:::i;:::-;17258:143;;;;:::o;17407:351::-;17477:6;17526:2;17514:9;17505:7;17501:23;17497:32;17494:119;;;17532:79;;:::i;:::-;17494:119;17652:1;17677:64;17733:7;17724:6;17713:9;17709:22;17677:64;:::i;:::-;17667:74;;17623:128;17407:351;;;;:::o;17764:85::-;17809:7;17838:5;17827:16;;17764:85;;;:::o;17855:158::-;17913:9;17946:61;17964:42;17973:32;17999:5;17973:32;:::i;:::-;17964:42;:::i;:::-;17946:61;:::i;:::-;17933:74;;17855:158;;;:::o;18019:147::-;18114:45;18153:5;18114:45;:::i;:::-;18109:3;18102:58;18019:147;;:::o;18172:114::-;18239:6;18273:5;18267:12;18257:22;;18172:114;;;:::o;18292:184::-;18391:11;18425:6;18420:3;18413:19;18465:4;18460:3;18456:14;18441:29;;18292:184;;;;:::o;18482:132::-;18549:4;18572:3;18564:11;;18602:4;18597:3;18593:14;18585:22;;18482:132;;;:::o;18620:108::-;18697:24;18715:5;18697:24;:::i;:::-;18692:3;18685:37;18620:108;;:::o;18734:179::-;18803:10;18824:46;18866:3;18858:6;18824:46;:::i;:::-;18902:4;18897:3;18893:14;18879:28;;18734:179;;;;:::o;18919:113::-;18989:4;19021;19016:3;19012:14;19004:22;;18919:113;;;:::o;19068:732::-;19187:3;19216:54;19264:5;19216:54;:::i;:::-;19286:86;19365:6;19360:3;19286:86;:::i;:::-;19279:93;;19396:56;19446:5;19396:56;:::i;:::-;19475:7;19506:1;19491:284;19516:6;19513:1;19510:13;19491:284;;;19592:6;19586:13;19619:63;19678:3;19663:13;19619:63;:::i;:::-;19612:70;;19705:60;19758:6;19705:60;:::i;:::-;19695:70;;19551:224;19538:1;19535;19531:9;19526:14;;19491:284;;;19495:14;19791:3;19784:10;;19192:608;;;19068:732;;;;:::o;19806:831::-;20069:4;20107:3;20096:9;20092:19;20084:27;;20121:71;20189:1;20178:9;20174:17;20165:6;20121:71;:::i;:::-;20202:80;20278:2;20267:9;20263:18;20254:6;20202:80;:::i;:::-;20329:9;20323:4;20319:20;20314:2;20303:9;20299:18;20292:48;20357:108;20460:4;20451:6;20357:108;:::i;:::-;20349:116;;20475:72;20543:2;20532:9;20528:18;20519:6;20475:72;:::i;:::-;20557:73;20625:3;20614:9;20610:19;20601:6;20557:73;:::i;:::-;19806:831;;;;;;;;:::o;20643:348::-;20683:7;20706:20;20724:1;20706:20;:::i;:::-;20701:25;;20740:20;20758:1;20740:20;:::i;:::-;20735:25;;20928:1;20860:66;20856:74;20853:1;20850:81;20845:1;20838:9;20831:17;20827:105;20824:131;;;20935:18;;:::i;:::-;20824:131;20983:1;20980;20976:9;20965:20;;20643:348;;;;:::o;20997:180::-;21045:77;21042:1;21035:88;21142:4;21139:1;21132:15;21166:4;21163:1;21156:15;21183:185;21223:1;21240:20;21258:1;21240:20;:::i;:::-;21235:25;;21274:20;21292:1;21274:20;:::i;:::-;21269:25;;21313:1;21303:35;;21318:18;;:::i;:::-;21303:35;21360:1;21357;21353:9;21348:14;;21183:185;;;;:::o;21374:220::-;21514:34;21510:1;21502:6;21498:14;21491:58;21583:3;21578:2;21570:6;21566:15;21559:28;21374:220;:::o;21600:366::-;21742:3;21763:67;21827:2;21822:3;21763:67;:::i;:::-;21756:74;;21839:93;21928:3;21839:93;:::i;:::-;21957:2;21952:3;21948:12;21941:19;;21600:366;;;:::o;21972:419::-;22138:4;22176:2;22165:9;22161:18;22153:26;;22225:9;22219:4;22215:20;22211:1;22200:9;22196:17;22189:47;22253:131;22379:4;22253:131;:::i;:::-;22245:139;;21972:419;;;:::o

Swarm Source

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