ETH Price: $2,520.70 (+0.60%)

Token

Meru AI (MERU)
 

Overview

Max Total Supply

100,000,000 MERU

Holders

120

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
42,880.158952784 MERU

Value
$0.00
0x5d53076d42eecc1cb76b3cf5823d36955942267a
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:
Meru

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

    Website: https://meruai.net/
    Docs: https://docs.meruai.net/
    Twitter: https://twitter.com/meru_ai_app
    Telegram: https://t.me/meru_ai_app

**/


// SPDX-License-Identifier: MIT

pragma solidity 0.8.25;

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

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;
        return c;
    }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

contract Meru is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private  _taxWallet;
    address private uniswapV2Pair;
    IUniswapV2Router02 private uniswapV2Router;

    uint256 private constant _initialBuyTax =25;
    uint256 private constant _initialSellTax=25;
    uint256 private constant _reduceBuyTaxAt=35;
    uint256 private constant _reduceSellTaxAt=41;
    uint256 private constant _preventSwapBefore=37;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _buyCount=0;
    uint256 private _countTax;
    
    string  private constant _name   = unicode"Meru AI";
    string  private constant _symbol = unicode"MERU";
    uint8   private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    uint256 private constant _countTrigger = 81000 * 10**_decimals;
    uint256 public  constant _taxSwapThreshold = 200000 * 10**_decimals;
    uint256 public  constant _maxTaxSwap = 1000000 * 10**_decimals;
    uint256 public _maxTxAmount = 1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000 * 10**_decimals;   

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event FinalTax (uint256 _valueBuy, uint256 _valueSell);
    event TradingActive (bool _tradingOpen,bool _swapEnabled);
    event maxAmount(uint256 _value);

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

    constructor (address taxWallet) {
         _taxWallet = payable(taxWallet);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[address(this)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0) && to != address(0), "ERC20: transfer the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) { 

            if(!tradingOpen){
                require(
                    _isExcludedFromFee[to] || _isExcludedFromFee[from],
                    "trading not yet open"
                );
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }
            
            if ( to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax)/100;    
            } 
            else if (from == uniswapV2Pair && to!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax)/100;
            }

            _countTax += taxAmount;
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap && 
                to == uniswapV2Pair && 
                swapEnabled && 
                contractTokenBalance > _taxSwapThreshold && 
                _buyCount > _preventSwapBefore &&
                _countTax > _countTrigger
            ){
                uint256 getMinValue = (contractTokenBalance > _maxTaxSwap)?_maxTaxSwap:contractTokenBalance;
                swapTokensForEth((amount > getMinValue)?getMinValue:amount);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                _countTax = 0;
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _initialize () external onlyOwner {
        require(!tradingOpen,"init already called");
        uint256 tokenAmount = balanceOf(address(this)).sub(_tTotal.mul(_initialBuyTax).div(100));
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(
            uniswapV2Router.factory())
            .createPair(address(this), 
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance} (
            address(this),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 
    }

    function _openTrading () external onlyOwner {
        require(!tradingOpen,"trading already open");
        swapEnabled = true;
        tradingOpen = true;
        emit TradingActive (tradingOpen,swapEnabled);
    }

    function _removeLimits () external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit maxAmount (_tTotal);
    }
    
    function _setFinalTax (uint256 _valueBuy, uint256 _valueSell) external onlyOwner {
        require(_valueBuy <= 30 && _valueSell <= 30 && tradingOpen, "Exceeds value");
        _finalBuyTax = _valueBuy;
        _finalSellTax = _valueSell;
        emit FinalTax(_valueBuy, _valueSell);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"taxWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"FinalTax","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":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"TradingActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"maxAmount","type":"event"},{"inputs":[],"name":"_initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"_setFinalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600560075560056008555f6009556009600a6100209190610567565b620f424061002e91906105b1565b600b556009600a61003f9190610567565b620f424061004d91906105b1565b600c555f600d60016101000a81548160ff0219169083151502179055505f600d60026101000a81548160ff02191690831515021790555034801561008f575f80fd5b506040516137de3803806137de83398181016040528101906100b19190610650565b5f6100c06103c860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101aa9190610567565b6305f5e1006101b991906105b1565b60015f6101ca6103c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61021a6103cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103426103c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61039e9190610567565b6305f5e1006103ad91906105b1565b6040516103ba919061068a565b60405180910390a3506106a3565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561047857808604811115610454576104536103f6565b5b60018516156104635780820291505b808102905061047185610423565b9450610438565b94509492505050565b5f82610490576001905061054b565b8161049d575f905061054b565b81600181146104b357600281146104bd576104ec565b600191505061054b565b60ff8411156104cf576104ce6103f6565b5b8360020a9150848211156104e6576104e56103f6565b5b5061054b565b5060208310610133831016604e8410600b84101617156105215782820a90508381111561051c5761051b6103f6565b5b61054b565b61052e848484600161042f565b92509050818404811115610545576105446103f6565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61057182610552565b915061057c8361055b565b92506105a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610481565b905092915050565b5f6105bb82610552565b91506105c683610552565b92508282026105d481610552565b915082820484148315176105eb576105ea6103f6565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61061f826105f6565b9050919050565b61062f81610615565b8114610639575f80fd5b50565b5f8151905061064a81610626565b92915050565b5f60208284031215610665576106646105f2565b5b5f6106728482850161063c565b91505092915050565b61068481610552565b82525050565b5f60208201905061069d5f83018461067b565b92915050565b61312e806106b05f395ff3fe608060405260043610610117575f3560e01c806370a082311161009f5780638f9a55c0116100635780638f9a55c01461035257806395d89b411461037c578063a9059cbb146103a6578063bf474bed146103e2578063dd62ed3e1461040c5761011e565b806370a0823114610296578063715018a6146102d25780637d1db4a5146102e857806380ae4ebc146103125780638da5cb5b146103285761011e565b80631c1702f3116100e65780631c1702f3146101dc57806323b872dd146101f2578063313ce5671461022e5780634a30b3861461025857806361df9f981461026e5761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610448565b6040516101439190612278565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612329565b610485565b60405161017f9190612381565b60405180910390f35b348015610193575f80fd5b5061019c6104a2565b6040516101a991906123a9565b60405180910390f35b3480156101bd575f80fd5b506101c66104c1565b6040516101d391906123a9565b60405180910390f35b3480156101e7575f80fd5b506101f06104e4565b005b3480156101fd575f80fd5b50610218600480360381019061021391906123c2565b610654565b6040516102259190612381565b60405180910390f35b348015610239575f80fd5b50610242610728565b60405161024f919061242d565b60405180910390f35b348015610263575f80fd5b5061026c610730565b005b348015610279575f80fd5b50610294600480360381019061028f9190612446565b61085f565b005b3480156102a1575f80fd5b506102bc60048036038101906102b79190612484565b6109a6565b6040516102c991906123a9565b60405180910390f35b3480156102dd575f80fd5b506102e66109ec565b005b3480156102f3575f80fd5b506102fc610b3a565b60405161030991906123a9565b60405180910390f35b34801561031d575f80fd5b50610326610b40565b005b348015610333575f80fd5b5061033c611084565b60405161034991906124be565b60405180910390f35b34801561035d575f80fd5b506103666110ab565b60405161037391906123a9565b60405180910390f35b348015610387575f80fd5b506103906110b1565b60405161039d9190612278565b60405180910390f35b3480156103b1575f80fd5b506103cc60048036038101906103c79190612329565b6110ee565b6040516103d99190612381565b60405180910390f35b3480156103ed575f80fd5b506103f661110b565b60405161040391906123a9565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d91906124d7565b61112a565b60405161043f91906123a9565b60405180910390f35b60606040518060400160405280600781526020017f4d65727520414900000000000000000000000000000000000000000000000000815250905090565b5f6104986104916111ac565b84846111b3565b6001905092915050565b6009600a6104b09190612671565b620f42406104be91906126bb565b81565b5f6009600a6104d09190612671565b6305f5e1006104df91906126bb565b905090565b6104ec6111ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056f90612746565b60405180910390fd5b600d5f9054906101000a900460ff16156105c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105be906127ae565b60405180910390fd5b6001600d60026101000a81548160ff0219169083151502179055506001600d5f6101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600d5f9054906101000a900460ff16600d60029054906101000a900460ff1660405161064a9291906127cc565b60405180910390a1565b5f610660848484611341565b61071d8461066c6111ac565b610718856040518060600160405280602881526020016130d16028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106cf6111ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0c9092919063ffffffff16565b6111b3565b600190509392505050565b5f6009905090565b6107386111ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bb90612746565b60405180910390fd5b6009600a6107d29190612671565b6305f5e1006107e191906126bb565b600b819055506009600a6107f59190612671565b6305f5e10061080491906126bb565b600c819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96009600a6108399190612671565b6305f5e10061084891906126bb565b60405161085591906123a9565b60405180910390a1565b6108676111ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ea90612746565b60405180910390fd5b601e82111580156109055750601e8111155b801561091c5750600d5f9054906101000a900460ff165b61095b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109529061283d565b60405180910390fd5b81600781905550806008819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f4828260405161099a92919061285b565b60405180910390a15050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109f46111ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790612746565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b610b486111ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb90612746565b60405180910390fd5b600d5f9054906101000a900460ff1615610c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1a906128cc565b60405180910390fd5b5f610c81610c6a6064610c5c60196009600a610c3f9190612671565b6305f5e100610c4e91906126bb565b611d6e90919063ffffffff16565b611de590919063ffffffff16565b610c73306109a6565b611e2e90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d1f3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d0b9190612671565b6305f5e100610d1a91906126bb565b6111b3565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dad91906128fe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5791906128fe565b6040518363ffffffff1660e01b8152600401610e74929190612929565b6020604051808303815f875af1158015610e90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb491906128fe565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80610f3d6111ac565b426040518863ffffffff1660e01b8152600401610f5f96959493929190612992565b60606040518083038185885af1158015610f7b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fa09190612a05565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611040929190612a55565b6020604051808303815f875af115801561105c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110809190612aa6565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600481526020017f4d45525500000000000000000000000000000000000000000000000000000000815250905090565b5f6111016110fa6111ac565b8484611341565b6001905092915050565b6009600a6111199190612671565b62030d4061112791906126bb565b81565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561121b57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61125a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125190612b1b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133491906123a9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113a957505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612b83565b60405180910390fd5b5f811161142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142190612c11565b60405180910390fd5b5f611433611084565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114a15750611471611084565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a5c57600d5f9054906101000a900460ff166115945760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611554575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90612c79565b60405180910390fd5b5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561163d575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611690575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561174a57600b548211156116da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d190612ce1565b60405180910390fd5b600c54826116e7856109a6565b6116f19190612cff565b1115611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612d7c565b60405180910390fd5b60095f81548092919061174490612d9a565b91905055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117d257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118115760646118006029600954116117ed5760196117f1565b6008545b84611d6e90919063ffffffff16565b61180a9190612e0e565b90506118d5565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561189957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118d45760646118c76023600954116118b45760196118b8565b6007545b84611d6e90919063ffffffff16565b6118d19190612e0e565b90505b5b80600a5f8282546118e69190612cff565b925050819055505f6118f7306109a6565b9050600d60019054906101000a900460ff16158015611962575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561197a5750600d60029054906101000a900460ff165b80156119a057506009600a61198f9190612671565b62030d4061199d91906126bb565b81115b80156119ae57506025600954115b80156119d657506009600a6119c39190612671565b62013c686119d191906126bb565b600a54115b15611a5a575f6009600a6119ea9190612671565b620f42406119f891906126bb565b8211611a045781611a21565b6009600a611a129190612671565b620f4240611a2091906126bb565b5b9050611a3a818511611a335784611a35565b815b611e77565b5f4790505f811115611a5057611a4f476120e2565b5b5f600a8190555050505b505b5f811115611b5b57611ab48160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461214a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5291906123a9565b60405180910390a35b611bab8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e2e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c4e611c028284611e2e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461214a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611cf18486611e2e90919063ffffffff16565b604051611cfe91906123a9565b60405180910390a350505050565b5f838311158290611d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4a9190612278565b60405180910390fd5b505f8385611d619190612e3e565b9050809150509392505050565b5f808303611d7e575f9050611ddf565b5f8284611d8b91906126bb565b9050828482611d9a9190612e0e565b14611dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd190612ee1565b60405180910390fd5b809150505b92915050565b5f611e2683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121a7565b905092915050565b5f611e6f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d0c565b905092915050565b6001600d60016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611eae57611ead612eff565b5b604051908082528060200260200182016040528015611edc5781602001602082028036833780820191505090505b50905030815f81518110611ef357611ef2612f2c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbb91906128fe565b81600181518110611fcf57611fce612f2c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120353060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111b3565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612097959493929190613010565b5f604051808303815f87803b1580156120ae575f80fd5b505af11580156120c0573d5f803e3d5ffd5b50505050505f600d60016101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612146573d5f803e3d5ffd5b5050565b5f8082846121589190612cff565b90508381101561219d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612194906130b2565b60405180910390fd5b8091505092915050565b5f80831182906121ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e49190612278565b60405180910390fd5b505f83856121fb9190612e0e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61224a82612208565b6122548185612212565b9350612264818560208601612222565b61226d81612230565b840191505092915050565b5f6020820190508181035f8301526122908184612240565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122c58261229c565b9050919050565b6122d5816122bb565b81146122df575f80fd5b50565b5f813590506122f0816122cc565b92915050565b5f819050919050565b612308816122f6565b8114612312575f80fd5b50565b5f81359050612323816122ff565b92915050565b5f806040838503121561233f5761233e612298565b5b5f61234c858286016122e2565b925050602061235d85828601612315565b9150509250929050565b5f8115159050919050565b61237b81612367565b82525050565b5f6020820190506123945f830184612372565b92915050565b6123a3816122f6565b82525050565b5f6020820190506123bc5f83018461239a565b92915050565b5f805f606084860312156123d9576123d8612298565b5b5f6123e6868287016122e2565b93505060206123f7868287016122e2565b925050604061240886828701612315565b9150509250925092565b5f60ff82169050919050565b61242781612412565b82525050565b5f6020820190506124405f83018461241e565b92915050565b5f806040838503121561245c5761245b612298565b5b5f61246985828601612315565b925050602061247a85828601612315565b9150509250929050565b5f6020828403121561249957612498612298565b5b5f6124a6848285016122e2565b91505092915050565b6124b8816122bb565b82525050565b5f6020820190506124d15f8301846124af565b92915050565b5f80604083850312156124ed576124ec612298565b5b5f6124fa858286016122e2565b925050602061250b858286016122e2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125975780860481111561257357612572612515565b5b60018516156125825780820291505b808102905061259085612542565b9450612557565b94509492505050565b5f826125af576001905061266a565b816125bc575f905061266a565b81600181146125d257600281146125dc5761260b565b600191505061266a565b60ff8411156125ee576125ed612515565b5b8360020a91508482111561260557612604612515565b5b5061266a565b5060208310610133831016604e8410600b84101617156126405782820a90508381111561263b5761263a612515565b5b61266a565b61264d848484600161254e565b9250905081840481111561266457612663612515565b5b81810290505b9392505050565b5f61267b826122f6565b915061268683612412565b92506126b37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125a0565b905092915050565b5f6126c5826122f6565b91506126d0836122f6565b92508282026126de816122f6565b915082820484148315176126f5576126f4612515565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612730602083612212565b915061273b826126fc565b602082019050919050565b5f6020820190508181035f83015261275d81612724565b9050919050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f612798601483612212565b91506127a382612764565b602082019050919050565b5f6020820190508181035f8301526127c58161278c565b9050919050565b5f6040820190506127df5f830185612372565b6127ec6020830184612372565b9392505050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612827600d83612212565b9150612832826127f3565b602082019050919050565b5f6020820190508181035f8301526128548161281b565b9050919050565b5f60408201905061286e5f83018561239a565b61287b602083018461239a565b9392505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f6128b6601383612212565b91506128c182612882565b602082019050919050565b5f6020820190508181035f8301526128e3816128aa565b9050919050565b5f815190506128f8816122cc565b92915050565b5f6020828403121561291357612912612298565b5b5f612920848285016128ea565b91505092915050565b5f60408201905061293c5f8301856124af565b61294960208301846124af565b9392505050565b5f819050919050565b5f819050919050565b5f61297c61297761297284612950565b612959565b6122f6565b9050919050565b61298c81612962565b82525050565b5f60c0820190506129a55f8301896124af565b6129b2602083018861239a565b6129bf6040830187612983565b6129cc6060830186612983565b6129d960808301856124af565b6129e660a083018461239a565b979650505050505050565b5f815190506129ff816122ff565b92915050565b5f805f60608486031215612a1c57612a1b612298565b5b5f612a29868287016129f1565b9350506020612a3a868287016129f1565b9250506040612a4b868287016129f1565b9150509250925092565b5f604082019050612a685f8301856124af565b612a75602083018461239a565b9392505050565b612a8581612367565b8114612a8f575f80fd5b50565b5f81519050612aa081612a7c565b92915050565b5f60208284031215612abb57612aba612298565b5b5f612ac884828501612a92565b91505092915050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f612b05601f83612212565b9150612b1082612ad1565b602082019050919050565b5f6020820190508181035f830152612b3281612af9565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f612b6d602083612212565b9150612b7882612b39565b602082019050919050565b5f6020820190508181035f830152612b9a81612b61565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bfb602983612212565b9150612c0682612ba1565b604082019050919050565b5f6020820190508181035f830152612c2881612bef565b9050919050565b7f74726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f612c63601483612212565b9150612c6e82612c2f565b602082019050919050565b5f6020820190508181035f830152612c9081612c57565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612ccb601983612212565b9150612cd682612c97565b602082019050919050565b5f6020820190508181035f830152612cf881612cbf565b9050919050565b5f612d09826122f6565b9150612d14836122f6565b9250828201905080821115612d2c57612d2b612515565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d66601a83612212565b9150612d7182612d32565b602082019050919050565b5f6020820190508181035f830152612d9381612d5a565b9050919050565b5f612da4826122f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612dd657612dd5612515565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e18826122f6565b9150612e23836122f6565b925082612e3357612e32612de1565b5b828204905092915050565b5f612e48826122f6565b9150612e53836122f6565b9250828203905081811115612e6b57612e6a612515565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ecb602183612212565b9150612ed682612e71565b604082019050919050565b5f6020820190508181035f830152612ef881612ebf565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f8b816122bb565b82525050565b5f612f9c8383612f82565b60208301905092915050565b5f602082019050919050565b5f612fbe82612f59565b612fc88185612f63565b9350612fd383612f73565b805f5b83811015613003578151612fea8882612f91565b9750612ff583612fa8565b925050600181019050612fd6565b5085935050505092915050565b5f60a0820190506130235f83018861239a565b6130306020830187612983565b81810360408301526130428186612fb4565b905061305160608301856124af565b61305e608083018461239a565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61309c601b83612212565b91506130a782613068565b602082019050919050565b5f6020820190508181035f8301526130c981613090565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122098a515fd3086e59e1d36f04e1877dd9fc6ba8659ed19ac029f3b2a72d8a5260f64736f6c63430008190033000000000000000000000000d14275b2b52652462d07c29beaba74675990ce3f

Deployed Bytecode

0x608060405260043610610117575f3560e01c806370a082311161009f5780638f9a55c0116100635780638f9a55c01461035257806395d89b411461037c578063a9059cbb146103a6578063bf474bed146103e2578063dd62ed3e1461040c5761011e565b806370a0823114610296578063715018a6146102d25780637d1db4a5146102e857806380ae4ebc146103125780638da5cb5b146103285761011e565b80631c1702f3116100e65780631c1702f3146101dc57806323b872dd146101f2578063313ce5671461022e5780634a30b3861461025857806361df9f981461026e5761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610448565b6040516101439190612278565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612329565b610485565b60405161017f9190612381565b60405180910390f35b348015610193575f80fd5b5061019c6104a2565b6040516101a991906123a9565b60405180910390f35b3480156101bd575f80fd5b506101c66104c1565b6040516101d391906123a9565b60405180910390f35b3480156101e7575f80fd5b506101f06104e4565b005b3480156101fd575f80fd5b50610218600480360381019061021391906123c2565b610654565b6040516102259190612381565b60405180910390f35b348015610239575f80fd5b50610242610728565b60405161024f919061242d565b60405180910390f35b348015610263575f80fd5b5061026c610730565b005b348015610279575f80fd5b50610294600480360381019061028f9190612446565b61085f565b005b3480156102a1575f80fd5b506102bc60048036038101906102b79190612484565b6109a6565b6040516102c991906123a9565b60405180910390f35b3480156102dd575f80fd5b506102e66109ec565b005b3480156102f3575f80fd5b506102fc610b3a565b60405161030991906123a9565b60405180910390f35b34801561031d575f80fd5b50610326610b40565b005b348015610333575f80fd5b5061033c611084565b60405161034991906124be565b60405180910390f35b34801561035d575f80fd5b506103666110ab565b60405161037391906123a9565b60405180910390f35b348015610387575f80fd5b506103906110b1565b60405161039d9190612278565b60405180910390f35b3480156103b1575f80fd5b506103cc60048036038101906103c79190612329565b6110ee565b6040516103d99190612381565b60405180910390f35b3480156103ed575f80fd5b506103f661110b565b60405161040391906123a9565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d91906124d7565b61112a565b60405161043f91906123a9565b60405180910390f35b60606040518060400160405280600781526020017f4d65727520414900000000000000000000000000000000000000000000000000815250905090565b5f6104986104916111ac565b84846111b3565b6001905092915050565b6009600a6104b09190612671565b620f42406104be91906126bb565b81565b5f6009600a6104d09190612671565b6305f5e1006104df91906126bb565b905090565b6104ec6111ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056f90612746565b60405180910390fd5b600d5f9054906101000a900460ff16156105c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105be906127ae565b60405180910390fd5b6001600d60026101000a81548160ff0219169083151502179055506001600d5f6101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600d5f9054906101000a900460ff16600d60029054906101000a900460ff1660405161064a9291906127cc565b60405180910390a1565b5f610660848484611341565b61071d8461066c6111ac565b610718856040518060600160405280602881526020016130d16028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106cf6111ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0c9092919063ffffffff16565b6111b3565b600190509392505050565b5f6009905090565b6107386111ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bb90612746565b60405180910390fd5b6009600a6107d29190612671565b6305f5e1006107e191906126bb565b600b819055506009600a6107f59190612671565b6305f5e10061080491906126bb565b600c819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96009600a6108399190612671565b6305f5e10061084891906126bb565b60405161085591906123a9565b60405180910390a1565b6108676111ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ea90612746565b60405180910390fd5b601e82111580156109055750601e8111155b801561091c5750600d5f9054906101000a900460ff165b61095b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109529061283d565b60405180910390fd5b81600781905550806008819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f4828260405161099a92919061285b565b60405180910390a15050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109f46111ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790612746565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b610b486111ac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb90612746565b60405180910390fd5b600d5f9054906101000a900460ff1615610c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1a906128cc565b60405180910390fd5b5f610c81610c6a6064610c5c60196009600a610c3f9190612671565b6305f5e100610c4e91906126bb565b611d6e90919063ffffffff16565b611de590919063ffffffff16565b610c73306109a6565b611e2e90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d1f3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d0b9190612671565b6305f5e100610d1a91906126bb565b6111b3565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dad91906128fe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5791906128fe565b6040518363ffffffff1660e01b8152600401610e74929190612929565b6020604051808303815f875af1158015610e90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb491906128fe565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80610f3d6111ac565b426040518863ffffffff1660e01b8152600401610f5f96959493929190612992565b60606040518083038185885af1158015610f7b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fa09190612a05565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611040929190612a55565b6020604051808303815f875af115801561105c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110809190612aa6565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600481526020017f4d45525500000000000000000000000000000000000000000000000000000000815250905090565b5f6111016110fa6111ac565b8484611341565b6001905092915050565b6009600a6111199190612671565b62030d4061112791906126bb565b81565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561121b57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61125a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125190612b1b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133491906123a9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113a957505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612b83565b60405180910390fd5b5f811161142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142190612c11565b60405180910390fd5b5f611433611084565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114a15750611471611084565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a5c57600d5f9054906101000a900460ff166115945760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611554575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90612c79565b60405180910390fd5b5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561163d575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611690575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561174a57600b548211156116da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d190612ce1565b60405180910390fd5b600c54826116e7856109a6565b6116f19190612cff565b1115611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612d7c565b60405180910390fd5b60095f81548092919061174490612d9a565b91905055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117d257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118115760646118006029600954116117ed5760196117f1565b6008545b84611d6e90919063ffffffff16565b61180a9190612e0e565b90506118d5565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561189957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118d45760646118c76023600954116118b45760196118b8565b6007545b84611d6e90919063ffffffff16565b6118d19190612e0e565b90505b5b80600a5f8282546118e69190612cff565b925050819055505f6118f7306109a6565b9050600d60019054906101000a900460ff16158015611962575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561197a5750600d60029054906101000a900460ff165b80156119a057506009600a61198f9190612671565b62030d4061199d91906126bb565b81115b80156119ae57506025600954115b80156119d657506009600a6119c39190612671565b62013c686119d191906126bb565b600a54115b15611a5a575f6009600a6119ea9190612671565b620f42406119f891906126bb565b8211611a045781611a21565b6009600a611a129190612671565b620f4240611a2091906126bb565b5b9050611a3a818511611a335784611a35565b815b611e77565b5f4790505f811115611a5057611a4f476120e2565b5b5f600a8190555050505b505b5f811115611b5b57611ab48160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461214a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5291906123a9565b60405180910390a35b611bab8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e2e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c4e611c028284611e2e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461214a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611cf18486611e2e90919063ffffffff16565b604051611cfe91906123a9565b60405180910390a350505050565b5f838311158290611d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4a9190612278565b60405180910390fd5b505f8385611d619190612e3e565b9050809150509392505050565b5f808303611d7e575f9050611ddf565b5f8284611d8b91906126bb565b9050828482611d9a9190612e0e565b14611dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd190612ee1565b60405180910390fd5b809150505b92915050565b5f611e2683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121a7565b905092915050565b5f611e6f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d0c565b905092915050565b6001600d60016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611eae57611ead612eff565b5b604051908082528060200260200182016040528015611edc5781602001602082028036833780820191505090505b50905030815f81518110611ef357611ef2612f2c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbb91906128fe565b81600181518110611fcf57611fce612f2c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120353060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111b3565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612097959493929190613010565b5f604051808303815f87803b1580156120ae575f80fd5b505af11580156120c0573d5f803e3d5ffd5b50505050505f600d60016101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612146573d5f803e3d5ffd5b5050565b5f8082846121589190612cff565b90508381101561219d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612194906130b2565b60405180910390fd5b8091505092915050565b5f80831182906121ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e49190612278565b60405180910390fd5b505f83856121fb9190612e0e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61224a82612208565b6122548185612212565b9350612264818560208601612222565b61226d81612230565b840191505092915050565b5f6020820190508181035f8301526122908184612240565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122c58261229c565b9050919050565b6122d5816122bb565b81146122df575f80fd5b50565b5f813590506122f0816122cc565b92915050565b5f819050919050565b612308816122f6565b8114612312575f80fd5b50565b5f81359050612323816122ff565b92915050565b5f806040838503121561233f5761233e612298565b5b5f61234c858286016122e2565b925050602061235d85828601612315565b9150509250929050565b5f8115159050919050565b61237b81612367565b82525050565b5f6020820190506123945f830184612372565b92915050565b6123a3816122f6565b82525050565b5f6020820190506123bc5f83018461239a565b92915050565b5f805f606084860312156123d9576123d8612298565b5b5f6123e6868287016122e2565b93505060206123f7868287016122e2565b925050604061240886828701612315565b9150509250925092565b5f60ff82169050919050565b61242781612412565b82525050565b5f6020820190506124405f83018461241e565b92915050565b5f806040838503121561245c5761245b612298565b5b5f61246985828601612315565b925050602061247a85828601612315565b9150509250929050565b5f6020828403121561249957612498612298565b5b5f6124a6848285016122e2565b91505092915050565b6124b8816122bb565b82525050565b5f6020820190506124d15f8301846124af565b92915050565b5f80604083850312156124ed576124ec612298565b5b5f6124fa858286016122e2565b925050602061250b858286016122e2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125975780860481111561257357612572612515565b5b60018516156125825780820291505b808102905061259085612542565b9450612557565b94509492505050565b5f826125af576001905061266a565b816125bc575f905061266a565b81600181146125d257600281146125dc5761260b565b600191505061266a565b60ff8411156125ee576125ed612515565b5b8360020a91508482111561260557612604612515565b5b5061266a565b5060208310610133831016604e8410600b84101617156126405782820a90508381111561263b5761263a612515565b5b61266a565b61264d848484600161254e565b9250905081840481111561266457612663612515565b5b81810290505b9392505050565b5f61267b826122f6565b915061268683612412565b92506126b37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125a0565b905092915050565b5f6126c5826122f6565b91506126d0836122f6565b92508282026126de816122f6565b915082820484148315176126f5576126f4612515565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612730602083612212565b915061273b826126fc565b602082019050919050565b5f6020820190508181035f83015261275d81612724565b9050919050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f612798601483612212565b91506127a382612764565b602082019050919050565b5f6020820190508181035f8301526127c58161278c565b9050919050565b5f6040820190506127df5f830185612372565b6127ec6020830184612372565b9392505050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612827600d83612212565b9150612832826127f3565b602082019050919050565b5f6020820190508181035f8301526128548161281b565b9050919050565b5f60408201905061286e5f83018561239a565b61287b602083018461239a565b9392505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f6128b6601383612212565b91506128c182612882565b602082019050919050565b5f6020820190508181035f8301526128e3816128aa565b9050919050565b5f815190506128f8816122cc565b92915050565b5f6020828403121561291357612912612298565b5b5f612920848285016128ea565b91505092915050565b5f60408201905061293c5f8301856124af565b61294960208301846124af565b9392505050565b5f819050919050565b5f819050919050565b5f61297c61297761297284612950565b612959565b6122f6565b9050919050565b61298c81612962565b82525050565b5f60c0820190506129a55f8301896124af565b6129b2602083018861239a565b6129bf6040830187612983565b6129cc6060830186612983565b6129d960808301856124af565b6129e660a083018461239a565b979650505050505050565b5f815190506129ff816122ff565b92915050565b5f805f60608486031215612a1c57612a1b612298565b5b5f612a29868287016129f1565b9350506020612a3a868287016129f1565b9250506040612a4b868287016129f1565b9150509250925092565b5f604082019050612a685f8301856124af565b612a75602083018461239a565b9392505050565b612a8581612367565b8114612a8f575f80fd5b50565b5f81519050612aa081612a7c565b92915050565b5f60208284031215612abb57612aba612298565b5b5f612ac884828501612a92565b91505092915050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f612b05601f83612212565b9150612b1082612ad1565b602082019050919050565b5f6020820190508181035f830152612b3281612af9565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f612b6d602083612212565b9150612b7882612b39565b602082019050919050565b5f6020820190508181035f830152612b9a81612b61565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bfb602983612212565b9150612c0682612ba1565b604082019050919050565b5f6020820190508181035f830152612c2881612bef565b9050919050565b7f74726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f612c63601483612212565b9150612c6e82612c2f565b602082019050919050565b5f6020820190508181035f830152612c9081612c57565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612ccb601983612212565b9150612cd682612c97565b602082019050919050565b5f6020820190508181035f830152612cf881612cbf565b9050919050565b5f612d09826122f6565b9150612d14836122f6565b9250828201905080821115612d2c57612d2b612515565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d66601a83612212565b9150612d7182612d32565b602082019050919050565b5f6020820190508181035f830152612d9381612d5a565b9050919050565b5f612da4826122f6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612dd657612dd5612515565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e18826122f6565b9150612e23836122f6565b925082612e3357612e32612de1565b5b828204905092915050565b5f612e48826122f6565b9150612e53836122f6565b9250828203905081811115612e6b57612e6a612515565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ecb602183612212565b9150612ed682612e71565b604082019050919050565b5f6020820190508181035f830152612ef881612ebf565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f8b816122bb565b82525050565b5f612f9c8383612f82565b60208301905092915050565b5f602082019050919050565b5f612fbe82612f59565b612fc88185612f63565b9350612fd383612f73565b805f5b83811015613003578151612fea8882612f91565b9750612ff583612fa8565b925050600181019050612fd6565b5085935050505092915050565b5f60a0820190506130235f83018861239a565b6130306020830187612983565b81810360408301526130428186612fb4565b905061305160608301856124af565b61305e608083018461239a565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61309c601b83612212565b91506130a782613068565b602082019050919050565b5f6020820190508181035f8301526130c981613090565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122098a515fd3086e59e1d36f04e1877dd9fc6ba8659ed19ac029f3b2a72d8a5260f64736f6c63430008190033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000d14275b2b52652462d07c29beaba74675990ce3f

-----Decoded View---------------
Arg [0] : taxWallet (address): 0xd14275B2B52652462d07c29beABa74675990cE3F

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d14275b2b52652462d07c29beaba74675990ce3f


Deployed Bytecode Sourcemap

3643:8322:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5726:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6559:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4813:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6003:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11234:220;;;;;;;;;;;;;:::i;:::-;;6728:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5912:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11462:156;;;;;;;;;;;;;:::i;:::-;;11630:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6106:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2726:148;;;;;;;;;;;;;:::i;:::-;;4882:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10379:847;;;;;;;;;;;;;:::i;:::-;;2512:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4942:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5817:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6233:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4739:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6408:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5726:83;5763:13;5796:5;;;;;;;;;;;;;;;;;5789:12;;5726:83;:::o;6559:161::-;6634:4;6651:39;6660:12;:10;:12::i;:::-;6674:7;6683:6;6651:8;:39::i;:::-;6708:4;6701:11;;6559:161;;;;:::o;4813:62::-;4595:1;4862:2;:13;;;;:::i;:::-;4852:7;:23;;;;:::i;:::-;4813:62;:::o;6003:95::-;6056:7;4595:1;4650:2;:13;;;;:::i;:::-;4638:9;:25;;;;:::i;:::-;6076:14;;6003:95;:::o;11234:220::-;2649:12;:10;:12::i;:::-;2639:22;;:6;;;;;;;;;;:22;;;2631:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11298:11:::1;;;;;;;;;;;11297:12;11289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11358:4;11344:11;;:18;;;;;;;;;;;;;;;;;;11387:4;11373:11;;:18;;;;;;;;;;;;;;;;;;11407:39;11422:11;;;;;;;;;;;11434;;;;;;;;;;;11407:39;;;;;;;:::i;:::-;;;;;;;;11234:220::o:0;6728:313::-;6826:4;6843:36;6853:6;6861:9;6872:6;6843:9;:36::i;:::-;6890:121;6899:6;6907:12;:10;:12::i;:::-;6921:89;6959:6;6921:89;;;;;;;;;;;;;;;;;:11;:19;6933:6;6921:19;;;;;;;;;;;;;;;:33;6941:12;:10;:12::i;:::-;6921:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6890:8;:121::i;:::-;7029:4;7022:11;;6728:313;;;;;:::o;5912:83::-;5953:5;4595:1;5971:16;;5912:83;:::o;11462:156::-;2649:12;:10;:12::i;:::-;2639:22;;:6;;;;;;;;;;:22;;;2631:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4595:1:::1;4650:2;:13;;;;:::i;:::-;4638:9;:25;;;;:::i;:::-;11518:12;:22;;;;4595:1;4650:2;:13;;;;:::i;:::-;4638:9;:25;;;;:::i;:::-;11551:14;:24;;;;11591:19;4595:1;4650:2;:13;;;;:::i;:::-;4638:9;:25;;;;:::i;:::-;11591:19;;;;;;:::i;:::-;;;;;;;;11462:156::o:0;11630:295::-;2649:12;:10;:12::i;:::-;2639:22;;:6;;;;;;;;;;:22;;;2631:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11743:2:::1;11730:9;:15;;:35;;;;;11763:2;11749:10;:16;;11730:35;:50;;;;;11769:11;;;;;;;;;;;11730:50;11722:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;11824:9;11809:12;:24;;;;11860:10;11844:13;:26;;;;11886:31;11895:9;11906:10;11886:31;;;;;;;:::i;:::-;;;;;;;;11630:295:::0;;:::o;6106:119::-;6172:7;6199:9;:18;6209:7;6199:18;;;;;;;;;;;;;;;;6192:25;;6106:119;;;:::o;2726:148::-;2649:12;:10;:12::i;:::-;2639:22;;:6;;;;;;;;;;:22;;;2631:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2833:1:::1;2796:40;;2817:6;::::0;::::1;;;;;;;;2796:40;;;;;;;;;;;;2864:1;2847:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2726:148::o:0;4882:53::-;;;;:::o;10379:847::-;2649:12;:10;:12::i;:::-;2639:22;;:6;;;;;;;;;;:22;;;2631:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10442:11:::1;;;;;;;;;;;10441:12;10433:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10487:19;10509:66;10538:36;10570:3;10538:27;4085:2;4595:1;4650:2;:13;;;;:::i;:::-;4638:9;:25;;;;:::i;:::-;10538:11;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;10509:24;10527:4;10509:9;:24::i;:::-;:28;;:66;;;;:::i;:::-;10487:88;;10623:42;10586:15;;:80;;;;;;;;;;;;;;;;;;10677:58;10694:4;10709:15;;;;;;;;;;;4595:1;4650:2;:13;;;;:::i;:::-;4638:9;:25;;;;:::i;:::-;10677:8;:58::i;:::-;10794:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10762:83;;;10854:4;10875:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10762:146;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10746:13;;:162;;;;;;;;;;;;;;;;;;10919:15;;;;;;;;;;;:31;;;10958:21;11004:4;11024:11;11050:1;11066::::0;11082:12:::1;:10;:12::i;:::-;11109:15;10919:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11153:13;;;;;;;;;;;11146:29;;;11184:15;;;;;;;;;;;11202:14;11146:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10422:804;10379:847::o:0;2512:79::-;2550:7;2577:6;;;;;;;;;;;2570:13;;2512:79;:::o;4942:55::-;;;;:::o;5817:87::-;5856:13;5889:7;;;;;;;;;;;;;;;;;5882:14;;5817:87;:::o;6233:167::-;6311:4;6328:42;6338:12;:10;:12::i;:::-;6352:9;6363:6;6328:9;:42::i;:::-;6388:4;6381:11;;6233:167;;;;:::o;4739:67::-;4595:1;4793:2;:13;;;;:::i;:::-;4784:6;:22;;;;:::i;:::-;4739:67;:::o;6408:143::-;6489:7;6516:11;:18;6528:5;6516:18;;;;;;;;;;;;;;;:27;6535:7;6516:27;;;;;;;;;;;;;;;;6509:34;;6408:143;;;;:::o;269:98::-;322:7;349:10;342:17;;269:98;:::o;7049:276::-;7159:1;7142:19;;:5;:19;;;;:44;;;;;7184:1;7165:21;;:7;:21;;;;7142:44;7134:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;7263:6;7233:11;:18;7245:5;7233:18;;;;;;;;;;;;;;;:27;7252:7;7233:27;;;;;;;;;;;;;;;:36;;;;7301:7;7285:32;;7294:5;7285:32;;;7310:6;7285:32;;;;;;:::i;:::-;;;;;;;;7049:276;;;:::o;7333:2447::-;7437:1;7421:18;;:4;:18;;;;:38;;;;;7457:1;7443:16;;:2;:16;;;;7421:38;7413:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;7524:1;7515:6;:10;7507:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7582:17;7626:7;:5;:7::i;:::-;7618:15;;:4;:15;;;;:32;;;;;7643:7;:5;:7::i;:::-;7637:13;;:2;:13;;;;7618:32;7614:1810;;;7674:11;;;;;;;;;;;7670:195;;7735:18;:22;7754:2;7735:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;7761:18;:24;7780:4;7761:24;;;;;;;;;;;;;;;;;;;;;;;;;7735:50;7705:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;7670:195;7893:13;;;;;;;;;;;7885:21;;:4;:21;;;:55;;;;;7924:15;;;;;;;;;;;7910:30;;:2;:30;;;;7885:55;:83;;;;;7946:18;:22;7965:2;7946:22;;;;;;;;;;;;;;;;;;;;;;;;;7944:24;7885:83;7881:313;;;8008:12;;7998:6;:22;;7990:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8103:14;;8093:6;8077:13;8087:2;8077:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8069:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8167:9;;:11;;;;;;;;;:::i;:::-;;;;;;7881:313;8233:13;;;;;;;;;;;8227:19;;:2;:19;;;:43;;;;;8265:4;8250:20;;:4;:20;;;;8227:43;8222:362;;;8374:3;8303:70;4236:2;8315:9;;:26;8314:58;;4135:2;8314:58;;;8343:13;;8314:58;8303:6;:10;;:70;;;;:::i;:::-;:74;;;;:::i;:::-;8291:86;;8222:362;;;8429:13;;;;;;;;;;;8421:21;;:4;:21;;;:43;;;;;8459:4;8446:18;;:2;:18;;;;8421:43;8417:167;;;8565:3;8497:67;4185:2;8509:9;;:25;8508:55;;4085:2;8508:55;;;8536:12;;8508:55;8497:6;:10;;:67;;;;:::i;:::-;:71;;;;:::i;:::-;8485:83;;8417:167;8222:362;8613:9;8600;;:22;;;;;;;:::i;:::-;;;;;;;;8637:28;8668:24;8686:4;8668:9;:24::i;:::-;8637:55;;8730:6;;;;;;;;;;;8729:7;:48;;;;;8764:13;;;;;;;;;;;8758:19;;:2;:19;;;8729:48;:81;;;;;8799:11;;;;;;;;;;;8729:81;:143;;;;;4595:1;4793:2;:13;;;;:::i;:::-;4784:6;:22;;;;:::i;:::-;8832:20;:40;8729:143;:195;;;;;4289:2;8894:9;;:30;8729:195;:241;;;;;4595:1;4719:2;:13;;;;:::i;:::-;4711:5;:21;;;;:::i;:::-;8945:9;;:25;8729:241;8707:706;;;9004:19;4595:1;4862:2;:13;;;;:::i;:::-;4852:7;:23;;;;:::i;:::-;9027:20;:34;9026:69;;9075:20;9026:69;;;4595:1;4862:2;:13;;;;:::i;:::-;4852:7;:23;;;;:::i;:::-;9026:69;9004:91;;9114:59;9141:11;9132:6;:20;9131:41;;9166:6;9131:41;;;9154:11;9131:41;9114:16;:59::i;:::-;9192:26;9221:21;9192:50;;9285:1;9264:18;:22;9261:105;;;9311:35;9324:21;9311:12;:35::i;:::-;9261:105;9396:1;9384:9;:13;;;;8985:428;;8707:706;7652:1772;7614:1810;9449:1;9439:9;:11;9436:161;;;9489:39;9518:9;9489;:24;9507:4;9489:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9464:9;:24;9482:4;9464:24;;;;;;;;;;;;;;;:64;;;;9569:4;9546:39;;9555:4;9546:39;;;9575:9;9546:39;;;;;;:::i;:::-;;;;;;;;9436:161;9623:27;9643:6;9623:9;:15;9633:4;9623:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9607:9;:15;9617:4;9607:15;;;;;;;;;;;;;;;:43;;;;9675:40;9693:21;9704:9;9693:6;:10;;:21;;;;:::i;:::-;9675:9;:13;9685:2;9675:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9661:9;:13;9671:2;9661:13;;;;;;;;;;;;;;;:54;;;;9746:2;9731:41;;9740:4;9731:41;;;9750:21;9761:9;9750:6;:10;;:21;;;;:::i;:::-;9731:41;;;;;;:::i;:::-;;;;;;;;7402:2378;7333:2447;;;:::o;1406:190::-;1492:7;1525:1;1520;:6;;1528:12;1512:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1552:9;1568:1;1564;:5;;;;:::i;:::-;1552:17;;1587:1;1580:8;;;1406:190;;;;;:::o;1604:246::-;1662:7;1691:1;1686;:6;1682:47;;1716:1;1709:8;;;;1682:47;1739:9;1755:1;1751;:5;;;;:::i;:::-;1739:17;;1784:1;1779;1775;:5;;;;:::i;:::-;:10;1767:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1841:1;1834:8;;;1604:246;;;;;:::o;1858:132::-;1916:7;1943:39;1947:1;1950;1943:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1936:46;;1858:132;;;;:::o;1262:136::-;1320:7;1347:43;1351:1;1354;1347:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1340:50;;1262:136;;;;:::o;9888:483::-;5321:4;5312:6;;:13;;;;;;;;;;;;;;;;;;9966:21:::1;10004:1;9990:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9966:40;;10035:4;10017;10022:1;10017:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10061:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10051:4;10056:1;10051:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10094:62;10111:4;10126:15;;;;;;;;;;;10144:11;10094:8;:62::i;:::-;10167:15;;;;;;;;;;;:66;;;10248:11;10274:1;10290:4;10317;10337:15;10167:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9955:416;5357:5:::0;5348:6;;:14;;;;;;;;;;;;;;;;;;9888:483;:::o;9788:92::-;9845:10;;;;;;;;;;;:19;;:27;9865:6;9845:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9788:92;:::o;1075:179::-;1133:7;1153:9;1169:1;1165;:5;;;;:::i;:::-;1153:17;;1194:1;1189;:6;;1181:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1245:1;1238:8;;;1075:179;;;;:::o;1998:189::-;2084:7;2116:1;2112;:5;2119:12;2104:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2143:9;2159:1;2155;:5;;;;:::i;:::-;2143:17;;2178:1;2171:8;;;1998:189;;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:474::-;4814:6;4822;4871:2;4859:9;4850:7;4846:23;4842:32;4839:119;;;4877:79;;:::i;:::-;4839:119;4997:1;5022:53;5067:7;5058:6;5047:9;5043:22;5022:53;:::i;:::-;5012:63;;4968:117;5124:2;5150:53;5195:7;5186:6;5175:9;5171:22;5150:53;:::i;:::-;5140:63;;5095:118;4746:474;;;;;:::o;5226:329::-;5285:6;5334:2;5322:9;5313:7;5309:23;5305:32;5302:119;;;5340:79;;:::i;:::-;5302:119;5460:1;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5431:117;5226:329;;;;:::o;5561:118::-;5648:24;5666:5;5648:24;:::i;:::-;5643:3;5636:37;5561:118;;:::o;5685:222::-;5778:4;5816:2;5805:9;5801:18;5793:26;;5829:71;5897:1;5886:9;5882:17;5873:6;5829:71;:::i;:::-;5685:222;;;;:::o;5913:474::-;5981:6;5989;6038:2;6026:9;6017:7;6013:23;6009:32;6006:119;;;6044:79;;:::i;:::-;6006:119;6164:1;6189:53;6234:7;6225:6;6214:9;6210:22;6189:53;:::i;:::-;6179:63;;6135:117;6291:2;6317:53;6362:7;6353:6;6342:9;6338:22;6317:53;:::i;:::-;6307:63;;6262:118;5913:474;;;;;:::o;6393:180::-;6441:77;6438:1;6431:88;6538:4;6535:1;6528:15;6562:4;6559:1;6552:15;6579:102;6621:8;6668:5;6665:1;6661:13;6640:34;;6579:102;;;:::o;6687:848::-;6748:5;6755:4;6779:6;6770:15;;6803:5;6794:14;;6817:712;6838:1;6828:8;6825:15;6817:712;;;6933:4;6928:3;6924:14;6918:4;6915:24;6912:50;;;6942:18;;:::i;:::-;6912:50;6992:1;6982:8;6978:16;6975:451;;;7407:4;7400:5;7396:16;7387:25;;6975:451;7457:4;7451;7447:15;7439:23;;7487:32;7510:8;7487:32;:::i;:::-;7475:44;;6817:712;;;6687:848;;;;;;;:::o;7541:1073::-;7595:5;7786:8;7776:40;;7807:1;7798:10;;7809:5;;7776:40;7835:4;7825:36;;7852:1;7843:10;;7854:5;;7825:36;7921:4;7969:1;7964:27;;;;8005:1;8000:191;;;;7914:277;;7964:27;7982:1;7973:10;;7984:5;;;8000:191;8045:3;8035:8;8032:17;8029:43;;;8052:18;;:::i;:::-;8029:43;8101:8;8098:1;8094:16;8085:25;;8136:3;8129:5;8126:14;8123:40;;;8143:18;;:::i;:::-;8123:40;8176:5;;;7914:277;;8300:2;8290:8;8287:16;8281:3;8275:4;8272:13;8268:36;8250:2;8240:8;8237:16;8232:2;8226:4;8223:12;8219:35;8203:111;8200:246;;;8356:8;8350:4;8346:19;8337:28;;8391:3;8384:5;8381:14;8378:40;;;8398:18;;:::i;:::-;8378:40;8431:5;;8200:246;8471:42;8509:3;8499:8;8493:4;8490:1;8471:42;:::i;:::-;8456:57;;;;8545:4;8540:3;8536:14;8529:5;8526:25;8523:51;;;8554:18;;:::i;:::-;8523:51;8603:4;8596:5;8592:16;8583:25;;7541:1073;;;;;;:::o;8620:281::-;8678:5;8702:23;8720:4;8702:23;:::i;:::-;8694:31;;8746:25;8762:8;8746:25;:::i;:::-;8734:37;;8790:104;8827:66;8817:8;8811:4;8790:104;:::i;:::-;8781:113;;8620:281;;;;:::o;8907:410::-;8947:7;8970:20;8988:1;8970:20;:::i;:::-;8965:25;;9004:20;9022:1;9004:20;:::i;:::-;8999:25;;9059:1;9056;9052:9;9081:30;9099:11;9081:30;:::i;:::-;9070:41;;9260:1;9251:7;9247:15;9244:1;9241:22;9221:1;9214:9;9194:83;9171:139;;9290:18;;:::i;:::-;9171:139;8955:362;8907:410;;;;:::o;9323:182::-;9463:34;9459:1;9451:6;9447:14;9440:58;9323:182;:::o;9511:366::-;9653:3;9674:67;9738:2;9733:3;9674:67;:::i;:::-;9667:74;;9750:93;9839:3;9750:93;:::i;:::-;9868:2;9863:3;9859:12;9852:19;;9511:366;;;:::o;9883:419::-;10049:4;10087:2;10076:9;10072:18;10064:26;;10136:9;10130:4;10126:20;10122:1;10111:9;10107:17;10100:47;10164:131;10290:4;10164:131;:::i;:::-;10156:139;;9883:419;;;:::o;10308:170::-;10448:22;10444:1;10436:6;10432:14;10425:46;10308:170;:::o;10484:366::-;10626:3;10647:67;10711:2;10706:3;10647:67;:::i;:::-;10640:74;;10723:93;10812:3;10723:93;:::i;:::-;10841:2;10836:3;10832:12;10825:19;;10484:366;;;:::o;10856:419::-;11022:4;11060:2;11049:9;11045:18;11037:26;;11109:9;11103:4;11099:20;11095:1;11084:9;11080:17;11073:47;11137:131;11263:4;11137:131;:::i;:::-;11129:139;;10856:419;;;:::o;11281:308::-;11390:4;11428:2;11417:9;11413:18;11405:26;;11441:65;11503:1;11492:9;11488:17;11479:6;11441:65;:::i;:::-;11516:66;11578:2;11567:9;11563:18;11554:6;11516:66;:::i;:::-;11281:308;;;;;:::o;11595:163::-;11735:15;11731:1;11723:6;11719:14;11712:39;11595:163;:::o;11764:366::-;11906:3;11927:67;11991:2;11986:3;11927:67;:::i;:::-;11920:74;;12003:93;12092:3;12003:93;:::i;:::-;12121:2;12116:3;12112:12;12105:19;;11764:366;;;:::o;12136:419::-;12302:4;12340:2;12329:9;12325:18;12317:26;;12389:9;12383:4;12379:20;12375:1;12364:9;12360:17;12353:47;12417:131;12543:4;12417:131;:::i;:::-;12409:139;;12136:419;;;:::o;12561:332::-;12682:4;12720:2;12709:9;12705:18;12697:26;;12733:71;12801:1;12790:9;12786:17;12777:6;12733:71;:::i;:::-;12814:72;12882:2;12871:9;12867:18;12858:6;12814:72;:::i;:::-;12561:332;;;;;:::o;12899:169::-;13039:21;13035:1;13027:6;13023:14;13016:45;12899:169;:::o;13074:366::-;13216:3;13237:67;13301:2;13296:3;13237:67;:::i;:::-;13230:74;;13313:93;13402:3;13313:93;:::i;:::-;13431:2;13426:3;13422:12;13415:19;;13074:366;;;:::o;13446:419::-;13612:4;13650:2;13639:9;13635:18;13627:26;;13699:9;13693:4;13689:20;13685:1;13674:9;13670:17;13663:47;13727:131;13853:4;13727:131;:::i;:::-;13719:139;;13446:419;;;:::o;13871:143::-;13928:5;13959:6;13953:13;13944:22;;13975:33;14002:5;13975:33;:::i;:::-;13871:143;;;;:::o;14020:351::-;14090:6;14139:2;14127:9;14118:7;14114:23;14110:32;14107:119;;;14145:79;;:::i;:::-;14107:119;14265:1;14290:64;14346:7;14337:6;14326:9;14322:22;14290:64;:::i;:::-;14280:74;;14236:128;14020:351;;;;:::o;14377:332::-;14498:4;14536:2;14525:9;14521:18;14513:26;;14549:71;14617:1;14606:9;14602:17;14593:6;14549:71;:::i;:::-;14630:72;14698:2;14687:9;14683:18;14674:6;14630:72;:::i;:::-;14377:332;;;;;:::o;14715:85::-;14760:7;14789:5;14778:16;;14715:85;;;:::o;14806:60::-;14834:3;14855:5;14848:12;;14806:60;;;:::o;14872:158::-;14930:9;14963:61;14981:42;14990:32;15016:5;14990:32;:::i;:::-;14981:42;:::i;:::-;14963:61;:::i;:::-;14950:74;;14872:158;;;:::o;15036:147::-;15131:45;15170:5;15131:45;:::i;:::-;15126:3;15119:58;15036:147;;:::o;15189:807::-;15438:4;15476:3;15465:9;15461:19;15453:27;;15490:71;15558:1;15547:9;15543:17;15534:6;15490:71;:::i;:::-;15571:72;15639:2;15628:9;15624:18;15615:6;15571:72;:::i;:::-;15653:80;15729:2;15718:9;15714:18;15705:6;15653:80;:::i;:::-;15743;15819:2;15808:9;15804:18;15795:6;15743:80;:::i;:::-;15833:73;15901:3;15890:9;15886:19;15877:6;15833:73;:::i;:::-;15916;15984:3;15973:9;15969:19;15960:6;15916:73;:::i;:::-;15189:807;;;;;;;;;:::o;16002:143::-;16059:5;16090:6;16084:13;16075:22;;16106:33;16133:5;16106:33;:::i;:::-;16002:143;;;;:::o;16151:663::-;16239:6;16247;16255;16304:2;16292:9;16283:7;16279:23;16275:32;16272:119;;;16310:79;;:::i;:::-;16272:119;16430:1;16455:64;16511:7;16502:6;16491:9;16487:22;16455:64;:::i;:::-;16445:74;;16401:128;16568:2;16594:64;16650:7;16641:6;16630:9;16626:22;16594:64;:::i;:::-;16584:74;;16539:129;16707:2;16733:64;16789:7;16780:6;16769:9;16765:22;16733:64;:::i;:::-;16723:74;;16678:129;16151:663;;;;;:::o;16820:332::-;16941:4;16979:2;16968:9;16964:18;16956:26;;16992:71;17060:1;17049:9;17045:17;17036:6;16992:71;:::i;:::-;17073:72;17141:2;17130:9;17126:18;17117:6;17073:72;:::i;:::-;16820:332;;;;;:::o;17158:116::-;17228:21;17243:5;17228:21;:::i;:::-;17221:5;17218:32;17208:60;;17264:1;17261;17254:12;17208:60;17158:116;:::o;17280:137::-;17334:5;17365:6;17359:13;17350:22;;17381:30;17405:5;17381:30;:::i;:::-;17280:137;;;;:::o;17423:345::-;17490:6;17539:2;17527:9;17518:7;17514:23;17510:32;17507:119;;;17545:79;;:::i;:::-;17507:119;17665:1;17690:61;17743:7;17734:6;17723:9;17719:22;17690:61;:::i;:::-;17680:71;;17636:125;17423:345;;;;:::o;17774:181::-;17914:33;17910:1;17902:6;17898:14;17891:57;17774:181;:::o;17961:366::-;18103:3;18124:67;18188:2;18183:3;18124:67;:::i;:::-;18117:74;;18200:93;18289:3;18200:93;:::i;:::-;18318:2;18313:3;18309:12;18302:19;;17961:366;;;:::o;18333:419::-;18499:4;18537:2;18526:9;18522:18;18514:26;;18586:9;18580:4;18576:20;18572:1;18561:9;18557:17;18550:47;18614:131;18740:4;18614:131;:::i;:::-;18606:139;;18333:419;;;:::o;18758:182::-;18898:34;18894:1;18886:6;18882:14;18875:58;18758:182;:::o;18946:366::-;19088:3;19109:67;19173:2;19168:3;19109:67;:::i;:::-;19102:74;;19185:93;19274:3;19185:93;:::i;:::-;19303:2;19298:3;19294:12;19287:19;;18946:366;;;:::o;19318:419::-;19484:4;19522:2;19511:9;19507:18;19499:26;;19571:9;19565:4;19561:20;19557:1;19546:9;19542:17;19535:47;19599:131;19725:4;19599:131;:::i;:::-;19591:139;;19318:419;;;:::o;19743:228::-;19883:34;19879:1;19871:6;19867:14;19860:58;19952:11;19947:2;19939:6;19935:15;19928:36;19743:228;:::o;19977:366::-;20119:3;20140:67;20204:2;20199:3;20140:67;:::i;:::-;20133:74;;20216:93;20305:3;20216:93;:::i;:::-;20334:2;20329:3;20325:12;20318:19;;19977:366;;;:::o;20349:419::-;20515:4;20553:2;20542:9;20538:18;20530:26;;20602:9;20596:4;20592:20;20588:1;20577:9;20573:17;20566:47;20630:131;20756:4;20630:131;:::i;:::-;20622:139;;20349:419;;;:::o;20774:170::-;20914:22;20910:1;20902:6;20898:14;20891:46;20774:170;:::o;20950:366::-;21092:3;21113:67;21177:2;21172:3;21113:67;:::i;:::-;21106:74;;21189:93;21278:3;21189:93;:::i;:::-;21307:2;21302:3;21298:12;21291:19;;20950:366;;;:::o;21322:419::-;21488:4;21526:2;21515:9;21511:18;21503:26;;21575:9;21569:4;21565:20;21561:1;21550:9;21546:17;21539:47;21603:131;21729:4;21603:131;:::i;:::-;21595:139;;21322:419;;;:::o;21747:175::-;21887:27;21883:1;21875:6;21871:14;21864:51;21747:175;:::o;21928:366::-;22070:3;22091:67;22155:2;22150:3;22091:67;:::i;:::-;22084:74;;22167:93;22256:3;22167:93;:::i;:::-;22285:2;22280:3;22276:12;22269:19;;21928:366;;;:::o;22300:419::-;22466:4;22504:2;22493:9;22489:18;22481:26;;22553:9;22547:4;22543:20;22539:1;22528:9;22524:17;22517:47;22581:131;22707:4;22581:131;:::i;:::-;22573:139;;22300:419;;;:::o;22725:191::-;22765:3;22784:20;22802:1;22784:20;:::i;:::-;22779:25;;22818:20;22836:1;22818:20;:::i;:::-;22813:25;;22861:1;22858;22854:9;22847:16;;22882:3;22879:1;22876:10;22873:36;;;22889:18;;:::i;:::-;22873:36;22725:191;;;;:::o;22922:176::-;23062:28;23058:1;23050:6;23046:14;23039:52;22922:176;:::o;23104:366::-;23246:3;23267:67;23331:2;23326:3;23267:67;:::i;:::-;23260:74;;23343:93;23432:3;23343:93;:::i;:::-;23461:2;23456:3;23452:12;23445:19;;23104:366;;;:::o;23476:419::-;23642:4;23680:2;23669:9;23665:18;23657:26;;23729:9;23723:4;23719:20;23715:1;23704:9;23700:17;23693:47;23757:131;23883:4;23757:131;:::i;:::-;23749:139;;23476:419;;;:::o;23901:233::-;23940:3;23963:24;23981:5;23963:24;:::i;:::-;23954:33;;24009:66;24002:5;23999:77;23996:103;;24079:18;;:::i;:::-;23996:103;24126:1;24119:5;24115:13;24108:20;;23901:233;;;:::o;24140:180::-;24188:77;24185:1;24178:88;24285:4;24282:1;24275:15;24309:4;24306:1;24299:15;24326:185;24366:1;24383:20;24401:1;24383:20;:::i;:::-;24378:25;;24417:20;24435:1;24417:20;:::i;:::-;24412:25;;24456:1;24446:35;;24461:18;;:::i;:::-;24446:35;24503:1;24500;24496:9;24491:14;;24326:185;;;;:::o;24517:194::-;24557:4;24577:20;24595:1;24577:20;:::i;:::-;24572:25;;24611:20;24629:1;24611:20;:::i;:::-;24606:25;;24655:1;24652;24648:9;24640:17;;24679:1;24673:4;24670:11;24667:37;;;24684:18;;:::i;:::-;24667:37;24517:194;;;;:::o;24717:220::-;24857:34;24853:1;24845:6;24841:14;24834:58;24926:3;24921:2;24913:6;24909:15;24902:28;24717:220;:::o;24943:366::-;25085:3;25106:67;25170:2;25165:3;25106:67;:::i;:::-;25099:74;;25182:93;25271:3;25182:93;:::i;:::-;25300:2;25295:3;25291:12;25284:19;;24943:366;;;:::o;25315:419::-;25481:4;25519:2;25508:9;25504:18;25496:26;;25568:9;25562:4;25558:20;25554:1;25543:9;25539:17;25532:47;25596:131;25722:4;25596:131;:::i;:::-;25588:139;;25315:419;;;:::o;25740:180::-;25788:77;25785:1;25778:88;25885:4;25882:1;25875:15;25909:4;25906:1;25899:15;25926:180;25974:77;25971:1;25964:88;26071:4;26068:1;26061:15;26095:4;26092:1;26085:15;26112:114;26179:6;26213:5;26207:12;26197:22;;26112:114;;;:::o;26232:184::-;26331:11;26365:6;26360:3;26353:19;26405:4;26400:3;26396:14;26381:29;;26232:184;;;;:::o;26422:132::-;26489:4;26512:3;26504:11;;26542:4;26537:3;26533:14;26525:22;;26422:132;;;:::o;26560:108::-;26637:24;26655:5;26637:24;:::i;:::-;26632:3;26625:37;26560:108;;:::o;26674:179::-;26743:10;26764:46;26806:3;26798:6;26764:46;:::i;:::-;26842:4;26837:3;26833:14;26819:28;;26674:179;;;;:::o;26859:113::-;26929:4;26961;26956:3;26952:14;26944:22;;26859:113;;;:::o;27008:732::-;27127:3;27156:54;27204:5;27156:54;:::i;:::-;27226:86;27305:6;27300:3;27226:86;:::i;:::-;27219:93;;27336:56;27386:5;27336:56;:::i;:::-;27415:7;27446:1;27431:284;27456:6;27453:1;27450:13;27431:284;;;27532:6;27526:13;27559:63;27618:3;27603:13;27559:63;:::i;:::-;27552:70;;27645:60;27698:6;27645:60;:::i;:::-;27635:70;;27491:224;27478:1;27475;27471:9;27466:14;;27431:284;;;27435:14;27731:3;27724:10;;27132:608;;;27008:732;;;;:::o;27746:831::-;28009:4;28047:3;28036:9;28032:19;28024:27;;28061:71;28129:1;28118:9;28114:17;28105:6;28061:71;:::i;:::-;28142:80;28218:2;28207:9;28203:18;28194:6;28142:80;:::i;:::-;28269:9;28263:4;28259:20;28254:2;28243:9;28239:18;28232:48;28297:108;28400:4;28391:6;28297:108;:::i;:::-;28289:116;;28415:72;28483:2;28472:9;28468:18;28459:6;28415:72;:::i;:::-;28497:73;28565:3;28554:9;28550:19;28541:6;28497:73;:::i;:::-;27746:831;;;;;;;;:::o;28583:177::-;28723:29;28719:1;28711:6;28707:14;28700:53;28583:177;:::o;28766:366::-;28908:3;28929:67;28993:2;28988:3;28929:67;:::i;:::-;28922:74;;29005:93;29094:3;29005:93;:::i;:::-;29123:2;29118:3;29114:12;29107:19;;28766:366;;;:::o;29138:419::-;29304:4;29342:2;29331:9;29327:18;29319:26;;29391:9;29385:4;29381:20;29377:1;29366:9;29362:17;29355:47;29419:131;29545:4;29419:131;:::i;:::-;29411:139;;29138:419;;;:::o

Swarm Source

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