ETH Price: $3,106.11 (+1.10%)
Gas: 7 Gwei

Token

Basenji Inu (BAJINU)
 

Overview

Max Total Supply

1,000,000,000,000,000 BAJINU

Holders

317

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
tsuchida.eth
Balance
553,281,621,126.450838974 BAJINU

Value
$0.00
0xc9928ffaf0771f5f950876ea45595650620de378
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:
BAJINU

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-06-11
*/

// SPDX-License-Identifier: MIT

/**
 * 
 ¦¦¦¦¦¦   ¦¦¦¦¦  ¦¦¦¦¦¦¦ ¦¦¦¦¦¦¦ ¦¦¦    ¦¦      ¦¦ ¦¦     ¦¦ ¦¦¦    ¦¦ ¦¦    ¦¦ 
¦¦   ¦¦ ¦¦   ¦¦ ¦¦      ¦¦      ¦¦¦¦   ¦¦      ¦¦ ¦¦     ¦¦ ¦¦¦¦   ¦¦ ¦¦    ¦¦ 
¦¦¦¦¦¦  ¦¦¦¦¦¦¦ ¦¦¦¦¦¦¦ ¦¦¦¦¦   ¦¦ ¦¦  ¦¦      ¦¦ ¦¦     ¦¦ ¦¦ ¦¦  ¦¦ ¦¦    ¦¦ 
¦¦   ¦¦ ¦¦   ¦¦      ¦¦ ¦¦      ¦¦  ¦¦ ¦¦ ¦¦   ¦¦ ¦¦     ¦¦ ¦¦  ¦¦ ¦¦ ¦¦    ¦¦ 
¦¦¦¦¦¦  ¦¦   ¦¦ ¦¦¦¦¦¦¦ ¦¦¦¦¦¦¦ ¦¦   ¦¦¦¦  ¦¦¦¦¦  ¦¦     ¦¦ ¦¦   ¦¦¦¦  ¦¦¦¦¦¦  
                                                                               
                                                                               
 
   # Basenji Inu

   2% fee auto distribute to all holders
   6% fee auto moved to Charity wallet

 */

pragma solidity ^0.8.4;

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

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

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

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

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

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

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

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

}  

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

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

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

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e15 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private constant _name = "Basenji Inu";
    string private constant _symbol = 'BAJINU';
    uint8 private constant _decimals = 9;

    uint256 private _taxFee = 2;
    uint256 private _charityFee = 6;

    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousCharityFee = _charityFee;
    address private _charityAddress = 0x3BA8B0f69098cb4A27d8019ddf375146bb1B1d2A;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _maxTxAmount = _tTotal;

    event MaxTxAmountUpdated(uint _maxTxAmount);

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

    constructor () {
        _rOwned[_msgSender()] = _rTotal;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_charityAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _charityFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousCharityFee = _charityFee;
        _taxFee = 0;
        _charityFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _charityFee = _previousCharityFee;
    }

    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 _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");

        if (from != owner() && to != owner()) {
            require(amount <= _maxTxAmount);

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToCharity(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
		
        _tokenTransfer(from,to,amount,takeFee);
    }

    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 sendETHToCharity(uint256 amount) private {
        payable(_charityAddress).transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        _maxTxAmount = 5e12 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tCharity) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeCharity(tCharity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeCharity(uint256 tCharity) private {
        uint256 currentRate =  _getRate();
        uint256 rCharity = tCharity.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rCharity);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _charityAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _charityAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToCharity(contractETHBalance);
    }
    
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tCharity) = _getTValues(tAmount, _taxFee, _charityFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tCharity, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tCharity);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 CharityFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tCharity = tAmount.mul(CharityFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tCharity);
        return (tTransferAmount, tFee, tCharity);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tCharity, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rCharity = tCharity.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rCharity);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda10000006000196200001e919062000456565b6000196200002d919062000411565b6008556002600a556006600b55600a54600c55600b54600d55733ba8b0f69098cb4a27d8019ddf375146bb1b1d2a600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff02191690831515021790555069d3c21bcecceda1000000601155348015620000ec57600080fd5b506000620000ff620003b260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060085460026000620001b4620003b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000208620003ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200033b620003b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620003a49190620003f4565b60405180910390a3620004ec565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003ee816200044c565b82525050565b60006020820190506200040b6000830184620003e3565b92915050565b60006200041e826200044c565b91506200042b836200044c565b9250828210156200044157620004406200048e565b5b828203905092915050565b6000819050919050565b600062000463826200044c565b915062000470836200044c565b925082620004835762000482620004bd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b612cea80620004fc6000396000f3fe6080604052600436106100ec5760003560e01c8063715018a61161008a578063c3c8cd8011610059578063c3c8cd80146102f1578063c9567bf914610308578063d543dbeb1461031f578063dd62ed3e14610348576100f3565b8063715018a6146102475780638da5cb5b1461025e57806395d89b4114610289578063a9059cbb146102b4576100f3565b806323b872dd116100c657806323b872dd1461018b578063313ce567146101c85780636fc3eaec146101f357806370a082311461020a576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d610385565b60405161011a91906124f5565b60405180910390f35b34801561012f57600080fd5b5061014a600480360381019061014591906120a5565b6103c2565b60405161015791906124da565b60405180910390f35b34801561016c57600080fd5b506101756103e0565b6040516101829190612677565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad9190612056565b6103f2565b6040516101bf91906124da565b60405180910390f35b3480156101d457600080fd5b506101dd6104cb565b6040516101ea91906126ec565b60405180910390f35b3480156101ff57600080fd5b506102086104d4565b005b34801561021657600080fd5b50610231600480360381019061022c9190611fc8565b610546565b60405161023e9190612677565b60405180910390f35b34801561025357600080fd5b5061025c610597565b005b34801561026a57600080fd5b506102736106ea565b604051610280919061240c565b60405180910390f35b34801561029557600080fd5b5061029e610713565b6040516102ab91906124f5565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d691906120a5565b610750565b6040516102e891906124da565b60405180910390f35b3480156102fd57600080fd5b5061030661076e565b005b34801561031457600080fd5b5061031d6107e8565b005b34801561032b57600080fd5b506103466004803603810190610341919061210a565b610d2c565b005b34801561035457600080fd5b5061036f600480360381019061036a919061201a565b610e76565b60405161037c9190612677565b60405180910390f35b60606040518060400160405280600b81526020017f426173656e6a6920496e75000000000000000000000000000000000000000000815250905090565b60006103d66103cf610efd565b8484610f05565b6001905092915050565b600069d3c21bcecceda1000000905090565b60006103ff8484846110d0565b6104c08461040b610efd565b6104bb85604051806060016040528060288152602001612c8d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610471610efd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113fa9092919063ffffffff16565b610f05565b600190509392505050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610515610efd565b73ffffffffffffffffffffffffffffffffffffffff161461053557600080fd5b60004790506105438161145e565b50565b6000610590600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114ca565b9050919050565b61059f610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610623906125d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f42414a494e550000000000000000000000000000000000000000000000000000815250905090565b600061076461075d610efd565b84846110d0565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107af610efd565b73ffffffffffffffffffffffffffffffffffffffff16146107cf57600080fd5b60006107da30610546565b90506107e581611538565b50565b6107f0610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610874906125d7565b60405180910390fd5b601060149054906101000a900460ff16156108cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c490612657565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061095e30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda1000000610f05565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156109a457600080fd5b505afa1580156109b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109dc9190611ff1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3e57600080fd5b505afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190611ff1565b6040518363ffffffff1660e01b8152600401610a93929190612427565b602060405180830381600087803b158015610aad57600080fd5b505af1158015610ac1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae59190611ff1565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b6e30610546565b600080610b796106ea565b426040518863ffffffff1660e01b8152600401610b9b96959493929190612479565b6060604051808303818588803b158015610bb457600080fd5b505af1158015610bc8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bed9190612133565b5050506001601060166101000a81548160ff02191690831515021790555069010f0cf064dd592000006011819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610cd6929190612450565b602060405180830381600087803b158015610cf057600080fd5b505af1158015610d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2891906120e1565b5050565b610d34610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906125d7565b60405180910390fd5b60008111610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb90612597565b60405180910390fd5b610e346064610e268369d3c21bcecceda100000061183290919063ffffffff16565b6118ad90919063ffffffff16565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601154604051610e6b9190612677565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90612637565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc90612557565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110c39190612677565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113790612617565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a790612517565b60405180910390fd5b600081116111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea906125f7565b60405180910390fd5b6111fb6106ea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561126957506112396106ea565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156113375760115481111561127d57600080fd5b600061128830610546565b9050601060159054906101000a900460ff161580156112f55750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561130d5750601060169054906101000a900460ff165b156113355761131b81611538565b60004790506000811115611333576113324761145e565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113de5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156113e857600090505b6113f4848484846118f7565b50505050565b6000838311158290611442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143991906124f5565b60405180910390fd5b5060008385611451919061283d565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114c6573d6000803e3d6000fd5b5050565b6000600854821115611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890612537565b60405180910390fd5b600061151b611924565b905061153081846118ad90919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611596577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156115c45781602001602082028036833780820191505090505b5090503081600081518110611602577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116a457600080fd5b505afa1580156116b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116dc9190611ff1565b81600181518110611716577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061177d30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f05565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016117e1959493929190612692565b600060405180830381600087803b1580156117fb57600080fd5b505af115801561180f573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b60008083141561184557600090506118a7565b6000828461185391906127e3565b905082848261186291906127b2565b146118a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611899906125b7565b60405180910390fd5b809150505b92915050565b60006118ef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061194f565b905092915050565b80611905576119046119b2565b5b6119108484846119f5565b8061191e5761191d611bc0565b5b50505050565b6000806000611931611bd4565b9150915061194881836118ad90919063ffffffff16565b9250505090565b60008083118290611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d91906124f5565b60405180910390fd5b50600083856119a591906127b2565b9050809150509392505050565b6000600a541480156119c657506000600b54145b156119d0576119f3565b600a54600c81905550600b54600d819055506000600a819055506000600b819055505b565b600080600080600080611a0787611c39565b955095509550955095509550611a6586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611afa85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ceb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4681611d49565b611b508483611e06565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611bad9190612677565b60405180910390a3505050505050505050565b600c54600a81905550600d54600b81905550565b60008060006008549050600069d3c21bcecceda10000009050611c0c69d3c21bcecceda10000006008546118ad90919063ffffffff16565b821015611c2c5760085469d3c21bcecceda1000000935093505050611c35565b81819350935050505b9091565b6000806000806000806000806000611c568a600a54600b54611e40565b9250925092506000611c66611924565b90506000806000611c798e878787611ed6565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611ce383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113fa565b905092915050565b6000808284611cfa919061275c565b905083811015611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3690612577565b60405180910390fd5b8091505092915050565b6000611d53611924565b90506000611d6a828461183290919063ffffffff16565b9050611dbe81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ceb90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611e1b82600854611ca190919063ffffffff16565b600881905550611e3681600954611ceb90919063ffffffff16565b6009819055505050565b600080600080611e6c6064611e5e888a61183290919063ffffffff16565b6118ad90919063ffffffff16565b90506000611e966064611e88888b61183290919063ffffffff16565b6118ad90919063ffffffff16565b90506000611ebf82611eb1858c611ca190919063ffffffff16565b611ca190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611eef858961183290919063ffffffff16565b90506000611f06868961183290919063ffffffff16565b90506000611f1d878961183290919063ffffffff16565b90506000611f4682611f388587611ca190919063ffffffff16565b611ca190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081359050611f6e81612c47565b92915050565b600081519050611f8381612c47565b92915050565b600081519050611f9881612c5e565b92915050565b600081359050611fad81612c75565b92915050565b600081519050611fc281612c75565b92915050565b600060208284031215611fda57600080fd5b6000611fe884828501611f5f565b91505092915050565b60006020828403121561200357600080fd5b600061201184828501611f74565b91505092915050565b6000806040838503121561202d57600080fd5b600061203b85828601611f5f565b925050602061204c85828601611f5f565b9150509250929050565b60008060006060848603121561206b57600080fd5b600061207986828701611f5f565b935050602061208a86828701611f5f565b925050604061209b86828701611f9e565b9150509250925092565b600080604083850312156120b857600080fd5b60006120c685828601611f5f565b92505060206120d785828601611f9e565b9150509250929050565b6000602082840312156120f357600080fd5b600061210184828501611f89565b91505092915050565b60006020828403121561211c57600080fd5b600061212a84828501611f9e565b91505092915050565b60008060006060848603121561214857600080fd5b600061215686828701611fb3565b935050602061216786828701611fb3565b925050604061217886828701611fb3565b9150509250925092565b600061218e838361219a565b60208301905092915050565b6121a381612871565b82525050565b6121b281612871565b82525050565b60006121c382612717565b6121cd818561273a565b93506121d883612707565b8060005b838110156122095781516121f08882612182565b97506121fb8361272d565b9250506001810190506121dc565b5085935050505092915050565b61221f81612883565b82525050565b61222e816128c6565b82525050565b600061223f82612722565b612249818561274b565b93506122598185602086016128d8565b61226281612969565b840191505092915050565b600061227a60238361274b565b91506122858261297a565b604082019050919050565b600061229d602a8361274b565b91506122a8826129c9565b604082019050919050565b60006122c060228361274b565b91506122cb82612a18565b604082019050919050565b60006122e3601b8361274b565b91506122ee82612a67565b602082019050919050565b6000612306601d8361274b565b915061231182612a90565b602082019050919050565b600061232960218361274b565b915061233482612ab9565b604082019050919050565b600061234c60208361274b565b915061235782612b08565b602082019050919050565b600061236f60298361274b565b915061237a82612b31565b604082019050919050565b600061239260258361274b565b915061239d82612b80565b604082019050919050565b60006123b560248361274b565b91506123c082612bcf565b604082019050919050565b60006123d860178361274b565b91506123e382612c1e565b602082019050919050565b6123f7816128af565b82525050565b612406816128b9565b82525050565b600060208201905061242160008301846121a9565b92915050565b600060408201905061243c60008301856121a9565b61244960208301846121a9565b9392505050565b600060408201905061246560008301856121a9565b61247260208301846123ee565b9392505050565b600060c08201905061248e60008301896121a9565b61249b60208301886123ee565b6124a86040830187612225565b6124b56060830186612225565b6124c260808301856121a9565b6124cf60a08301846123ee565b979650505050505050565b60006020820190506124ef6000830184612216565b92915050565b6000602082019050818103600083015261250f8184612234565b905092915050565b600060208201905081810360008301526125308161226d565b9050919050565b6000602082019050818103600083015261255081612290565b9050919050565b60006020820190508181036000830152612570816122b3565b9050919050565b60006020820190508181036000830152612590816122d6565b9050919050565b600060208201905081810360008301526125b0816122f9565b9050919050565b600060208201905081810360008301526125d08161231c565b9050919050565b600060208201905081810360008301526125f08161233f565b9050919050565b6000602082019050818103600083015261261081612362565b9050919050565b6000602082019050818103600083015261263081612385565b9050919050565b60006020820190508181036000830152612650816123a8565b9050919050565b60006020820190508181036000830152612670816123cb565b9050919050565b600060208201905061268c60008301846123ee565b92915050565b600060a0820190506126a760008301886123ee565b6126b46020830187612225565b81810360408301526126c681866121b8565b90506126d560608301856121a9565b6126e260808301846123ee565b9695505050505050565b600060208201905061270160008301846123fd565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612767826128af565b9150612772836128af565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127a7576127a661290b565b5b828201905092915050565b60006127bd826128af565b91506127c8836128af565b9250826127d8576127d761293a565b5b828204905092915050565b60006127ee826128af565b91506127f9836128af565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128325761283161290b565b5b828202905092915050565b6000612848826128af565b9150612853836128af565b9250828210156128665761286561290b565b5b828203905092915050565b600061287c8261288f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006128d1826128af565b9050919050565b60005b838110156128f65780820151818401526020810190506128db565b83811115612905576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612c5081612871565b8114612c5b57600080fd5b50565b612c6781612883565b8114612c7257600080fd5b50565b612c7e816128af565b8114612c8957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bc4210521105fa2354788c6cc91276adcfeebb589d2858b6b5bc0f530489274464736f6c63430008040033

Deployed Bytecode

0x6080604052600436106100ec5760003560e01c8063715018a61161008a578063c3c8cd8011610059578063c3c8cd80146102f1578063c9567bf914610308578063d543dbeb1461031f578063dd62ed3e14610348576100f3565b8063715018a6146102475780638da5cb5b1461025e57806395d89b4114610289578063a9059cbb146102b4576100f3565b806323b872dd116100c657806323b872dd1461018b578063313ce567146101c85780636fc3eaec146101f357806370a082311461020a576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d610385565b60405161011a91906124f5565b60405180910390f35b34801561012f57600080fd5b5061014a600480360381019061014591906120a5565b6103c2565b60405161015791906124da565b60405180910390f35b34801561016c57600080fd5b506101756103e0565b6040516101829190612677565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad9190612056565b6103f2565b6040516101bf91906124da565b60405180910390f35b3480156101d457600080fd5b506101dd6104cb565b6040516101ea91906126ec565b60405180910390f35b3480156101ff57600080fd5b506102086104d4565b005b34801561021657600080fd5b50610231600480360381019061022c9190611fc8565b610546565b60405161023e9190612677565b60405180910390f35b34801561025357600080fd5b5061025c610597565b005b34801561026a57600080fd5b506102736106ea565b604051610280919061240c565b60405180910390f35b34801561029557600080fd5b5061029e610713565b6040516102ab91906124f5565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d691906120a5565b610750565b6040516102e891906124da565b60405180910390f35b3480156102fd57600080fd5b5061030661076e565b005b34801561031457600080fd5b5061031d6107e8565b005b34801561032b57600080fd5b506103466004803603810190610341919061210a565b610d2c565b005b34801561035457600080fd5b5061036f600480360381019061036a919061201a565b610e76565b60405161037c9190612677565b60405180910390f35b60606040518060400160405280600b81526020017f426173656e6a6920496e75000000000000000000000000000000000000000000815250905090565b60006103d66103cf610efd565b8484610f05565b6001905092915050565b600069d3c21bcecceda1000000905090565b60006103ff8484846110d0565b6104c08461040b610efd565b6104bb85604051806060016040528060288152602001612c8d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610471610efd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113fa9092919063ffffffff16565b610f05565b600190509392505050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610515610efd565b73ffffffffffffffffffffffffffffffffffffffff161461053557600080fd5b60004790506105438161145e565b50565b6000610590600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114ca565b9050919050565b61059f610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610623906125d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f42414a494e550000000000000000000000000000000000000000000000000000815250905090565b600061076461075d610efd565b84846110d0565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107af610efd565b73ffffffffffffffffffffffffffffffffffffffff16146107cf57600080fd5b60006107da30610546565b90506107e581611538565b50565b6107f0610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610874906125d7565b60405180910390fd5b601060149054906101000a900460ff16156108cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c490612657565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061095e30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda1000000610f05565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156109a457600080fd5b505afa1580156109b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109dc9190611ff1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3e57600080fd5b505afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190611ff1565b6040518363ffffffff1660e01b8152600401610a93929190612427565b602060405180830381600087803b158015610aad57600080fd5b505af1158015610ac1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae59190611ff1565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b6e30610546565b600080610b796106ea565b426040518863ffffffff1660e01b8152600401610b9b96959493929190612479565b6060604051808303818588803b158015610bb457600080fd5b505af1158015610bc8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bed9190612133565b5050506001601060166101000a81548160ff02191690831515021790555069010f0cf064dd592000006011819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610cd6929190612450565b602060405180830381600087803b158015610cf057600080fd5b505af1158015610d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2891906120e1565b5050565b610d34610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906125d7565b60405180910390fd5b60008111610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb90612597565b60405180910390fd5b610e346064610e268369d3c21bcecceda100000061183290919063ffffffff16565b6118ad90919063ffffffff16565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601154604051610e6b9190612677565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90612637565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc90612557565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110c39190612677565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113790612617565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a790612517565b60405180910390fd5b600081116111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea906125f7565b60405180910390fd5b6111fb6106ea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561126957506112396106ea565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156113375760115481111561127d57600080fd5b600061128830610546565b9050601060159054906101000a900460ff161580156112f55750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561130d5750601060169054906101000a900460ff165b156113355761131b81611538565b60004790506000811115611333576113324761145e565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113de5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156113e857600090505b6113f4848484846118f7565b50505050565b6000838311158290611442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143991906124f5565b60405180910390fd5b5060008385611451919061283d565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114c6573d6000803e3d6000fd5b5050565b6000600854821115611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890612537565b60405180910390fd5b600061151b611924565b905061153081846118ad90919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611596577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156115c45781602001602082028036833780820191505090505b5090503081600081518110611602577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116a457600080fd5b505afa1580156116b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116dc9190611ff1565b81600181518110611716577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061177d30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f05565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016117e1959493929190612692565b600060405180830381600087803b1580156117fb57600080fd5b505af115801561180f573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b60008083141561184557600090506118a7565b6000828461185391906127e3565b905082848261186291906127b2565b146118a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611899906125b7565b60405180910390fd5b809150505b92915050565b60006118ef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061194f565b905092915050565b80611905576119046119b2565b5b6119108484846119f5565b8061191e5761191d611bc0565b5b50505050565b6000806000611931611bd4565b9150915061194881836118ad90919063ffffffff16565b9250505090565b60008083118290611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d91906124f5565b60405180910390fd5b50600083856119a591906127b2565b9050809150509392505050565b6000600a541480156119c657506000600b54145b156119d0576119f3565b600a54600c81905550600b54600d819055506000600a819055506000600b819055505b565b600080600080600080611a0787611c39565b955095509550955095509550611a6586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611afa85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ceb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4681611d49565b611b508483611e06565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611bad9190612677565b60405180910390a3505050505050505050565b600c54600a81905550600d54600b81905550565b60008060006008549050600069d3c21bcecceda10000009050611c0c69d3c21bcecceda10000006008546118ad90919063ffffffff16565b821015611c2c5760085469d3c21bcecceda1000000935093505050611c35565b81819350935050505b9091565b6000806000806000806000806000611c568a600a54600b54611e40565b9250925092506000611c66611924565b90506000806000611c798e878787611ed6565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611ce383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113fa565b905092915050565b6000808284611cfa919061275c565b905083811015611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3690612577565b60405180910390fd5b8091505092915050565b6000611d53611924565b90506000611d6a828461183290919063ffffffff16565b9050611dbe81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ceb90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611e1b82600854611ca190919063ffffffff16565b600881905550611e3681600954611ceb90919063ffffffff16565b6009819055505050565b600080600080611e6c6064611e5e888a61183290919063ffffffff16565b6118ad90919063ffffffff16565b90506000611e966064611e88888b61183290919063ffffffff16565b6118ad90919063ffffffff16565b90506000611ebf82611eb1858c611ca190919063ffffffff16565b611ca190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611eef858961183290919063ffffffff16565b90506000611f06868961183290919063ffffffff16565b90506000611f1d878961183290919063ffffffff16565b90506000611f4682611f388587611ca190919063ffffffff16565b611ca190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081359050611f6e81612c47565b92915050565b600081519050611f8381612c47565b92915050565b600081519050611f9881612c5e565b92915050565b600081359050611fad81612c75565b92915050565b600081519050611fc281612c75565b92915050565b600060208284031215611fda57600080fd5b6000611fe884828501611f5f565b91505092915050565b60006020828403121561200357600080fd5b600061201184828501611f74565b91505092915050565b6000806040838503121561202d57600080fd5b600061203b85828601611f5f565b925050602061204c85828601611f5f565b9150509250929050565b60008060006060848603121561206b57600080fd5b600061207986828701611f5f565b935050602061208a86828701611f5f565b925050604061209b86828701611f9e565b9150509250925092565b600080604083850312156120b857600080fd5b60006120c685828601611f5f565b92505060206120d785828601611f9e565b9150509250929050565b6000602082840312156120f357600080fd5b600061210184828501611f89565b91505092915050565b60006020828403121561211c57600080fd5b600061212a84828501611f9e565b91505092915050565b60008060006060848603121561214857600080fd5b600061215686828701611fb3565b935050602061216786828701611fb3565b925050604061217886828701611fb3565b9150509250925092565b600061218e838361219a565b60208301905092915050565b6121a381612871565b82525050565b6121b281612871565b82525050565b60006121c382612717565b6121cd818561273a565b93506121d883612707565b8060005b838110156122095781516121f08882612182565b97506121fb8361272d565b9250506001810190506121dc565b5085935050505092915050565b61221f81612883565b82525050565b61222e816128c6565b82525050565b600061223f82612722565b612249818561274b565b93506122598185602086016128d8565b61226281612969565b840191505092915050565b600061227a60238361274b565b91506122858261297a565b604082019050919050565b600061229d602a8361274b565b91506122a8826129c9565b604082019050919050565b60006122c060228361274b565b91506122cb82612a18565b604082019050919050565b60006122e3601b8361274b565b91506122ee82612a67565b602082019050919050565b6000612306601d8361274b565b915061231182612a90565b602082019050919050565b600061232960218361274b565b915061233482612ab9565b604082019050919050565b600061234c60208361274b565b915061235782612b08565b602082019050919050565b600061236f60298361274b565b915061237a82612b31565b604082019050919050565b600061239260258361274b565b915061239d82612b80565b604082019050919050565b60006123b560248361274b565b91506123c082612bcf565b604082019050919050565b60006123d860178361274b565b91506123e382612c1e565b602082019050919050565b6123f7816128af565b82525050565b612406816128b9565b82525050565b600060208201905061242160008301846121a9565b92915050565b600060408201905061243c60008301856121a9565b61244960208301846121a9565b9392505050565b600060408201905061246560008301856121a9565b61247260208301846123ee565b9392505050565b600060c08201905061248e60008301896121a9565b61249b60208301886123ee565b6124a86040830187612225565b6124b56060830186612225565b6124c260808301856121a9565b6124cf60a08301846123ee565b979650505050505050565b60006020820190506124ef6000830184612216565b92915050565b6000602082019050818103600083015261250f8184612234565b905092915050565b600060208201905081810360008301526125308161226d565b9050919050565b6000602082019050818103600083015261255081612290565b9050919050565b60006020820190508181036000830152612570816122b3565b9050919050565b60006020820190508181036000830152612590816122d6565b9050919050565b600060208201905081810360008301526125b0816122f9565b9050919050565b600060208201905081810360008301526125d08161231c565b9050919050565b600060208201905081810360008301526125f08161233f565b9050919050565b6000602082019050818103600083015261261081612362565b9050919050565b6000602082019050818103600083015261263081612385565b9050919050565b60006020820190508181036000830152612650816123a8565b9050919050565b60006020820190508181036000830152612670816123cb565b9050919050565b600060208201905061268c60008301846123ee565b92915050565b600060a0820190506126a760008301886123ee565b6126b46020830187612225565b81810360408301526126c681866121b8565b90506126d560608301856121a9565b6126e260808301846123ee565b9695505050505050565b600060208201905061270160008301846123fd565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612767826128af565b9150612772836128af565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127a7576127a661290b565b5b828201905092915050565b60006127bd826128af565b91506127c8836128af565b9250826127d8576127d761293a565b5b828204905092915050565b60006127ee826128af565b91506127f9836128af565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128325761283161290b565b5b828202905092915050565b6000612848826128af565b9150612853836128af565b9250828210156128665761286561290b565b5b828203905092915050565b600061287c8261288f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006128d1826128af565b9050919050565b60005b838110156128f65780820151818401526020810190506128db565b83811115612905576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612c5081612871565b8114612c5b57600080fd5b50565b612c6781612883565b8114612c7257600080fd5b50565b612c7e816128af565b8114612c8957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bc4210521105fa2354788c6cc91276adcfeebb589d2858b6b5bc0f530489274464736f6c63430008040033

Deployed Bytecode Sourcemap

4417:10048:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6110:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6962:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6387:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7131:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6296:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12268:198;;;;;;;;;;;;;:::i;:::-;;6490:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3496:148;;;;;;;;;;;;;:::i;:::-;;3282:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6201:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6636:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12061:195;;;;;;;;;;;;;:::i;:::-;;10062:776;;;;;;;;;;;;;:::i;:::-;;14207:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6811:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6110:83;6147:13;6180:5;;;;;;;;;;;;;;;;;6173:12;;6110:83;:::o;6962:161::-;7037:4;7054:39;7063:12;:10;:12::i;:::-;7077:7;7086:6;7054:8;:39::i;:::-;7111:4;7104:11;;6962:161;;;;:::o;6387:95::-;6440:7;4920:12;6460:14;;6387:95;:::o;7131:313::-;7229:4;7246:36;7256:6;7264:9;7275:6;7246:9;:36::i;:::-;7293:121;7302:6;7310:12;:10;:12::i;:::-;7324:89;7362:6;7324:89;;;;;;;;;;;;;;;;;:11;:19;7336:6;7324:19;;;;;;;;;;;;;;;:33;7344:12;:10;:12::i;:::-;7324:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7293:8;:121::i;:::-;7432:4;7425:11;;7131:313;;;;;:::o;6296:83::-;6337:5;5166:1;6355:16;;6296:83;:::o;12268:198::-;12334:15;;;;;;;;;;;12318:31;;:12;:10;:12::i;:::-;:31;;;12310:40;;;;;;12361:26;12390:21;12361:50;;12422:36;12439:18;12422:16;:36::i;:::-;12268:198;:::o;6490:138::-;6556:7;6583:37;6603:7;:16;6611:7;6603:16;;;;;;;;;;;;;;;;6583:19;:37::i;:::-;6576:44;;6490:138;;;:::o;3496:148::-;3419:12;:10;:12::i;:::-;3409:22;;:6;;;;;;;;;;:22;;;3401:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3603:1:::1;3566:40;;3587:6;::::0;::::1;;;;;;;;3566:40;;;;;;;;;;;;3634:1;3617:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3496:148::o:0;3282:79::-;3320:7;3347:6;;;;;;;;;;;3340:13;;3282:79;:::o;6201:87::-;6240:13;6273:7;;;;;;;;;;;;;;;;;6266:14;;6201:87;:::o;6636:167::-;6714:4;6731:42;6741:12;:10;:12::i;:::-;6755:9;6766:6;6731:9;:42::i;:::-;6791:4;6784:11;;6636:167;;;;:::o;12061:195::-;12127:15;;;;;;;;;;;12111:31;;:12;:10;:12::i;:::-;:31;;;12103:40;;;;;;12154:23;12180:24;12198:4;12180:9;:24::i;:::-;12154:50;;12215:33;12232:15;12215:16;:33::i;:::-;12061:195;:::o;10062:776::-;3419:12;:10;:12::i;:::-;3409:22;;:6;;;;;;;;;;:22;;;3401:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10126:11:::1;;;;;;;;;;;10125:12;10117:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10175:35;10232:42;10175:100;;10304:16;10286:15;;:34;;;;;;;;;;;;;;;;;;10331:58;10348:4;10363:15;;;;;;;;;;;4920:12;10331:8;:58::i;:::-;10434:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10416:56;;;10481:4;10488:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10416:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10400:13;;:112;;;;;;;;;;;;;;;;;;10523:15;;;;;;;;;;;:31;;;10562:21;10593:4;10599:24;10617:4;10599:9;:24::i;:::-;10624:1;10626::::0;10628:7:::1;:5;:7::i;:::-;10636:15;10523:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10677:4;10663:11;;:18;;;;;;;;;;;;;;;;;;10707:12;10692;:27;;;;10744:4;10730:11;;:18;;;;;;;;;;;;;;;;;;10766:13;;;;;;;;;;;10759:29;;;10797:15;;;;;;;;;;;10815:14;10759:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3479:1;10062:776::o:0;14207:255::-;3419:12;:10;:12::i;:::-;3409:22;;:6;;;;;;;;;;:22;;;3401:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14309:1:::1;14294:12;:16;14286:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14370:36;14400:5;14370:25;14382:12;4920;14370:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;14355:12;:51;;;;14422:32;14441:12;;14422:32;;;;;;:::i;:::-;;;;;;;;14207:255:::0;:::o;6811:143::-;6892:7;6919:11;:18;6931:5;6919:18;;;;;;;;;;;;;;;:27;6938:7;6919:27;;;;;;;;;;;;;;;;6912:34;;6811:143;;;;:::o;1000:98::-;1053:7;1080:10;1073:17;;1000:98;:::o;8077:335::-;8187:1;8170:19;;:5;:19;;;;8162:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8268:1;8249:21;;:7;:21;;;;8241:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8350:6;8320:11;:18;8332:5;8320:18;;;;;;;;;;;;;;;:27;8339:7;8320:27;;;;;;;;;;;;;;;:36;;;;8388:7;8372:32;;8381:5;8372:32;;;8397:6;8372:32;;;;;;:::i;:::-;;;;;;;;8077:335;;;:::o;8420:1013::-;8524:1;8508:18;;:4;:18;;;;8500:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8601:1;8587:16;;:2;:16;;;;8579:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:1;8662:6;:10;8654:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8743:7;:5;:7::i;:::-;8735:15;;:4;:15;;;;:32;;;;;8760:7;:5;:7::i;:::-;8754:13;;:2;:13;;;;8735:32;8731:504;;;8802:12;;8792:6;:22;;8784:31;;;;;;8832:28;8863:24;8881:4;8863:9;:24::i;:::-;8832:55;;8907:6;;;;;;;;;;;8906:7;:32;;;;;8925:13;;;;;;;;;;;8917:21;;:4;:21;;;;8906:32;:47;;;;;8942:11;;;;;;;;;;;8906:47;8902:322;;;8974:38;8991:20;8974:16;:38::i;:::-;9031:26;9060:21;9031:50;;9124:1;9103:18;:22;9100:109;;;9150:39;9167:21;9150:16;:39::i;:::-;9100:109;8902:322;;8731:504;;9245:12;9260:4;9245:19;;9280:18;:24;9299:4;9280:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9308:18;:22;9327:2;9308:22;;;;;;;;;;;;;;;;;;;;;;;;;9280:50;9277:96;;;9356:5;9346:15;;9277:96;9387:38;9402:4;9407:2;9410:6;9417:7;9387:14;:38::i;:::-;8420:1013;;;;:::o;2137:190::-;2223:7;2256:1;2251;:6;;2259:12;2243:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2283:9;2299:1;2295;:5;;;;:::i;:::-;2283:17;;2318:1;2311:8;;;2137:190;;;;;:::o;9940:110::-;10009:15;;;;;;;;;;;10001:33;;:41;10035:6;10001:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9940:110;:::o;7452:254::-;7519:7;7558;;7547;:18;;7539:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7623:19;7646:10;:8;:10::i;:::-;7623:33;;7674:24;7686:11;7674:7;:11;;:24;;;;:::i;:::-;7667:31;;;7452:254;;;:::o;9441:483::-;5768:4;5759:6;;:13;;;;;;;;;;;;;;;;;;9519:21:::1;9557:1;9543:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9519:40;;9588:4;9570;9575:1;9570:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9614:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9604:4;9609:1;9604:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9647:62;9664:4;9679:15;;;;;;;;;;;9697:11;9647:8;:62::i;:::-;9720:15;;;;;;;;;;;:66;;;9801:11;9827:1;9843:4;9870;9890:15;9720:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5783:1;5804:5:::0;5795:6;;:14;;;;;;;;;;;;;;;;;;9441:483;:::o;2335:246::-;2393:7;2422:1;2417;:6;2413:47;;;2447:1;2440:8;;;;2413:47;2470:9;2486:1;2482;:5;;;;:::i;:::-;2470:17;;2515:1;2510;2506;:5;;;;:::i;:::-;:10;2498:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2572:1;2565:8;;;2335:246;;;;;:::o;2589:132::-;2647:7;2674:39;2678:1;2681;2674:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2667:46;;2589:132;;;;:::o;10854:263::-;10966:7;10962:40;;10988:14;:12;:14::i;:::-;10962:40;11013:44;11031:6;11039:9;11050:6;11013:17;:44::i;:::-;11072:7;11068:41;;11094:15;:13;:15::i;:::-;11068:41;10854:263;;;;:::o;13766:163::-;13807:7;13828:15;13845;13864:19;:17;:19::i;:::-;13827:56;;;;13901:20;13913:7;13901;:11;;:20;;;;:::i;:::-;13894:27;;;;13766:163;:::o;2729:189::-;2815:7;2847:1;2843;:5;2850:12;2835:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2874:9;2890:1;2886;:5;;;;:::i;:::-;2874:17;;2909:1;2902:8;;;2729:189;;;;;:::o;7714:222::-;7771:1;7760:7;;:12;:32;;;;;7791:1;7776:11;;:16;7760:32;7757:44;;;7794:7;;7757:44;7829:7;;7811:15;:25;;;;7869:11;;7847:19;:33;;;;7901:1;7891:7;:11;;;;7927:1;7913:11;:15;;;;7714:222;:::o;11125:497::-;11224:15;11241:23;11266:12;11280:23;11305:12;11319:16;11339:19;11350:7;11339:10;:19::i;:::-;11223:135;;;;;;;;;;;;11387:28;11407:7;11387;:15;11395:6;11387:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11369:7;:15;11377:6;11369:15;;;;;;;;;;;;;;;:46;;;;11447:39;11470:15;11447:7;:18;11455:9;11447:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11426:7;:18;11434:9;11426:18;;;;;;;;;;;;;;;:60;;;;11498:22;11511:8;11498:12;:22::i;:::-;11531:23;11543:4;11549;11531:11;:23::i;:::-;11587:9;11570:44;;11579:6;11570:44;;;11598:15;11570:44;;;;;;:::i;:::-;;;;;;;;11125:497;;;;;;;;;:::o;7948:121::-;8002:15;;7992:7;:25;;;;8042:19;;8028:11;:33;;;;7948:121::o;13937:262::-;13987:7;13996;14016:15;14034:7;;14016:25;;14052:15;4920:12;14052:25;;14108:20;4920:12;14108:7;;:11;;:20;;;;:::i;:::-;14098:7;:30;14094:61;;;14138:7;;4920:12;14130:25;;;;;;;;14094:61;14174:7;14183;14166:25;;;;;;13937:262;;;:::o;12478:480::-;12537:7;12546;12555;12564;12573;12582;12603:23;12628:12;12642:16;12662:42;12674:7;12683;;12692:11;;12662;:42::i;:::-;12602:102;;;;;;12715:19;12738:10;:8;:10::i;:::-;12715:33;;12760:15;12777:23;12802:12;12818:49;12830:7;12839:4;12845:8;12855:11;12818;:49::i;:::-;12759:108;;;;;;12886:7;12895:15;12912:4;12918:15;12935:4;12941:8;12878:72;;;;;;;;;;;;;;;;;;;12478:480;;;;;;;:::o;1993:136::-;2051:7;2078:43;2082:1;2085;2078:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2071:50;;1993:136;;;;:::o;1806:179::-;1864:7;1884:9;1900:1;1896;:5;;;;:::i;:::-;1884:17;;1925:1;1920;:6;;1912:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1976:1;1969:8;;;1806:179;;;;:::o;11630:227::-;11689:19;11712:10;:8;:10::i;:::-;11689:33;;11733:16;11752:25;11765:11;11752:8;:12;;:25;;;;:::i;:::-;11733:44;;11813:36;11840:8;11813:7;:22;11829:4;11813:22;;;;;;;;;;;;;;;;:26;;:36;;;;:::i;:::-;11788:7;:22;11804:4;11788:22;;;;;;;;;;;;;;;:61;;;;11630:227;;;:::o;11865:147::-;11943:17;11955:4;11943:7;;:11;;:17;;;;:::i;:::-;11933:7;:27;;;;11984:20;11999:4;11984:10;;:14;;:20;;;;:::i;:::-;11971:10;:33;;;;11865:147;;:::o;12966:366::-;13062:7;13071;13080;13100:12;13115:28;13139:3;13115:19;13127:6;13115:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13100:43;;13154:16;13173:32;13201:3;13173:23;13185:10;13173:7;:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;13154:51;;13216:23;13242:31;13264:8;13242:17;13254:4;13242:7;:11;;:17;;;;:::i;:::-;:21;;:31;;;;:::i;:::-;13216:57;;13292:15;13309:4;13315:8;13284:40;;;;;;;;;12966:366;;;;;;;:::o;13340:421::-;13453:7;13462;13471;13491:15;13509:24;13521:11;13509:7;:11;;:24;;;;:::i;:::-;13491:42;;13544:12;13559:21;13568:11;13559:4;:8;;:21;;;;:::i;:::-;13544:36;;13591:16;13610:25;13623:11;13610:8;:12;;:25;;;;:::i;:::-;13591:44;;13646:23;13672:31;13694:8;13672:17;13684:4;13672:7;:11;;:17;;;;:::i;:::-;:21;;:31;;;;:::i;:::-;13646:57;;13722:7;13731:15;13748:4;13714:39;;;;;;;;;;13340:421;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:137::-;355:5;386:6;380:13;371:22;;402:30;426:5;402:30;:::i;:::-;361:77;;;;:::o;444:139::-;490:5;528:6;515:20;506:29;;544:33;571:5;544:33;:::i;:::-;496:87;;;;:::o;589:143::-;646:5;677:6;671:13;662:22;;693:33;720:5;693:33;:::i;:::-;652:80;;;;:::o;738:262::-;797:6;846:2;834:9;825:7;821:23;817:32;814:2;;;862:1;859;852:12;814:2;905:1;930:53;975:7;966:6;955:9;951:22;930:53;:::i;:::-;920:63;;876:117;804:196;;;;:::o;1006:284::-;1076:6;1125:2;1113:9;1104:7;1100:23;1096:32;1093:2;;;1141:1;1138;1131:12;1093:2;1184:1;1209:64;1265:7;1256:6;1245:9;1241:22;1209:64;:::i;:::-;1199:74;;1155:128;1083:207;;;;:::o;1296:407::-;1364:6;1372;1421:2;1409:9;1400:7;1396:23;1392:32;1389:2;;;1437:1;1434;1427:12;1389:2;1480:1;1505:53;1550:7;1541:6;1530:9;1526:22;1505:53;:::i;:::-;1495:63;;1451:117;1607:2;1633:53;1678:7;1669:6;1658:9;1654:22;1633:53;:::i;:::-;1623:63;;1578:118;1379:324;;;;;:::o;1709:552::-;1786:6;1794;1802;1851:2;1839:9;1830:7;1826:23;1822:32;1819:2;;;1867:1;1864;1857:12;1819:2;1910:1;1935:53;1980:7;1971:6;1960:9;1956:22;1935:53;:::i;:::-;1925:63;;1881:117;2037:2;2063:53;2108:7;2099:6;2088:9;2084:22;2063:53;:::i;:::-;2053:63;;2008:118;2165:2;2191:53;2236:7;2227:6;2216:9;2212:22;2191:53;:::i;:::-;2181:63;;2136:118;1809:452;;;;;:::o;2267:407::-;2335:6;2343;2392:2;2380:9;2371:7;2367:23;2363:32;2360:2;;;2408:1;2405;2398:12;2360:2;2451:1;2476:53;2521:7;2512:6;2501:9;2497:22;2476:53;:::i;:::-;2466:63;;2422:117;2578:2;2604:53;2649:7;2640:6;2629:9;2625:22;2604:53;:::i;:::-;2594:63;;2549:118;2350:324;;;;;:::o;2680:278::-;2747:6;2796:2;2784:9;2775:7;2771:23;2767:32;2764:2;;;2812:1;2809;2802:12;2764:2;2855:1;2880:61;2933:7;2924:6;2913:9;2909:22;2880:61;:::i;:::-;2870:71;;2826:125;2754:204;;;;:::o;2964:262::-;3023:6;3072:2;3060:9;3051:7;3047:23;3043:32;3040:2;;;3088:1;3085;3078:12;3040:2;3131:1;3156:53;3201:7;3192:6;3181:9;3177:22;3156:53;:::i;:::-;3146:63;;3102:117;3030:196;;;;:::o;3232:596::-;3320:6;3328;3336;3385:2;3373:9;3364:7;3360:23;3356:32;3353:2;;;3401:1;3398;3391:12;3353:2;3444:1;3469:64;3525:7;3516:6;3505:9;3501:22;3469:64;:::i;:::-;3459:74;;3415:128;3582:2;3608:64;3664:7;3655:6;3644:9;3640:22;3608:64;:::i;:::-;3598:74;;3553:129;3721:2;3747:64;3803:7;3794:6;3783:9;3779:22;3747:64;:::i;:::-;3737:74;;3692:129;3343:485;;;;;:::o;3834:179::-;3903:10;3924:46;3966:3;3958:6;3924:46;:::i;:::-;4002:4;3997:3;3993:14;3979:28;;3914:99;;;;:::o;4019:108::-;4096:24;4114:5;4096:24;:::i;:::-;4091:3;4084:37;4074:53;;:::o;4133:118::-;4220:24;4238:5;4220:24;:::i;:::-;4215:3;4208:37;4198:53;;:::o;4287:732::-;4406:3;4435:54;4483:5;4435:54;:::i;:::-;4505:86;4584:6;4579:3;4505:86;:::i;:::-;4498:93;;4615:56;4665:5;4615:56;:::i;:::-;4694:7;4725:1;4710:284;4735:6;4732:1;4729:13;4710:284;;;4811:6;4805:13;4838:63;4897:3;4882:13;4838:63;:::i;:::-;4831:70;;4924:60;4977:6;4924:60;:::i;:::-;4914:70;;4770:224;4757:1;4754;4750:9;4745:14;;4710:284;;;4714:14;5010:3;5003:10;;4411:608;;;;;;;:::o;5025:109::-;5106:21;5121:5;5106:21;:::i;:::-;5101:3;5094:34;5084:50;;:::o;5140:147::-;5235:45;5274:5;5235:45;:::i;:::-;5230:3;5223:58;5213:74;;:::o;5293:364::-;5381:3;5409:39;5442:5;5409:39;:::i;:::-;5464:71;5528:6;5523:3;5464:71;:::i;:::-;5457:78;;5544:52;5589:6;5584:3;5577:4;5570:5;5566:16;5544:52;:::i;:::-;5621:29;5643:6;5621:29;:::i;:::-;5616:3;5612:39;5605:46;;5385:272;;;;;:::o;5663:366::-;5805:3;5826:67;5890:2;5885:3;5826:67;:::i;:::-;5819:74;;5902:93;5991:3;5902:93;:::i;:::-;6020:2;6015:3;6011:12;6004:19;;5809:220;;;:::o;6035:366::-;6177:3;6198:67;6262:2;6257:3;6198:67;:::i;:::-;6191:74;;6274:93;6363:3;6274:93;:::i;:::-;6392:2;6387:3;6383:12;6376:19;;6181:220;;;:::o;6407:366::-;6549:3;6570:67;6634:2;6629:3;6570:67;:::i;:::-;6563:74;;6646:93;6735:3;6646:93;:::i;:::-;6764:2;6759:3;6755:12;6748:19;;6553:220;;;:::o;6779:366::-;6921:3;6942:67;7006:2;7001:3;6942:67;:::i;:::-;6935:74;;7018:93;7107:3;7018:93;:::i;:::-;7136:2;7131:3;7127:12;7120:19;;6925:220;;;:::o;7151:366::-;7293:3;7314:67;7378:2;7373:3;7314:67;:::i;:::-;7307:74;;7390:93;7479:3;7390:93;:::i;:::-;7508:2;7503:3;7499:12;7492:19;;7297:220;;;:::o;7523:366::-;7665:3;7686:67;7750:2;7745:3;7686:67;:::i;:::-;7679:74;;7762:93;7851:3;7762:93;:::i;:::-;7880:2;7875:3;7871:12;7864:19;;7669:220;;;:::o;7895:366::-;8037:3;8058:67;8122:2;8117:3;8058:67;:::i;:::-;8051:74;;8134:93;8223:3;8134:93;:::i;:::-;8252:2;8247:3;8243:12;8236:19;;8041:220;;;:::o;8267:366::-;8409:3;8430:67;8494:2;8489:3;8430:67;:::i;:::-;8423:74;;8506:93;8595:3;8506:93;:::i;:::-;8624:2;8619:3;8615:12;8608:19;;8413:220;;;:::o;8639:366::-;8781:3;8802:67;8866:2;8861:3;8802:67;:::i;:::-;8795:74;;8878:93;8967:3;8878:93;:::i;:::-;8996:2;8991:3;8987:12;8980:19;;8785:220;;;:::o;9011:366::-;9153:3;9174:67;9238:2;9233:3;9174:67;:::i;:::-;9167:74;;9250:93;9339:3;9250:93;:::i;:::-;9368:2;9363:3;9359:12;9352:19;;9157:220;;;:::o;9383:366::-;9525:3;9546:67;9610:2;9605:3;9546:67;:::i;:::-;9539:74;;9622:93;9711:3;9622:93;:::i;:::-;9740:2;9735:3;9731:12;9724:19;;9529:220;;;:::o;9755:118::-;9842:24;9860:5;9842:24;:::i;:::-;9837:3;9830:37;9820:53;;:::o;9879:112::-;9962:22;9978:5;9962:22;:::i;:::-;9957:3;9950:35;9940:51;;:::o;9997:222::-;10090:4;10128:2;10117:9;10113:18;10105:26;;10141:71;10209:1;10198:9;10194:17;10185:6;10141:71;:::i;:::-;10095:124;;;;:::o;10225:332::-;10346:4;10384:2;10373:9;10369:18;10361:26;;10397:71;10465:1;10454:9;10450:17;10441:6;10397:71;:::i;:::-;10478:72;10546:2;10535:9;10531:18;10522:6;10478:72;:::i;:::-;10351:206;;;;;:::o;10563:332::-;10684:4;10722:2;10711:9;10707:18;10699:26;;10735:71;10803:1;10792:9;10788:17;10779:6;10735:71;:::i;:::-;10816:72;10884:2;10873:9;10869:18;10860:6;10816:72;:::i;:::-;10689:206;;;;;:::o;10901:807::-;11150:4;11188:3;11177:9;11173:19;11165:27;;11202:71;11270:1;11259:9;11255:17;11246:6;11202:71;:::i;:::-;11283:72;11351:2;11340:9;11336:18;11327:6;11283:72;:::i;:::-;11365:80;11441:2;11430:9;11426:18;11417:6;11365:80;:::i;:::-;11455;11531:2;11520:9;11516:18;11507:6;11455:80;:::i;:::-;11545:73;11613:3;11602:9;11598:19;11589:6;11545:73;:::i;:::-;11628;11696:3;11685:9;11681:19;11672:6;11628:73;:::i;:::-;11155:553;;;;;;;;;:::o;11714:210::-;11801:4;11839:2;11828:9;11824:18;11816:26;;11852:65;11914:1;11903:9;11899:17;11890:6;11852:65;:::i;:::-;11806:118;;;;:::o;11930:313::-;12043:4;12081:2;12070:9;12066:18;12058:26;;12130:9;12124:4;12120:20;12116:1;12105:9;12101:17;12094:47;12158:78;12231:4;12222:6;12158:78;:::i;:::-;12150:86;;12048:195;;;;:::o;12249:419::-;12415:4;12453:2;12442:9;12438:18;12430:26;;12502:9;12496:4;12492:20;12488:1;12477:9;12473:17;12466:47;12530:131;12656:4;12530:131;:::i;:::-;12522:139;;12420:248;;;:::o;12674:419::-;12840:4;12878:2;12867:9;12863:18;12855:26;;12927:9;12921:4;12917:20;12913:1;12902:9;12898:17;12891:47;12955:131;13081:4;12955:131;:::i;:::-;12947:139;;12845:248;;;:::o;13099:419::-;13265:4;13303:2;13292:9;13288:18;13280:26;;13352:9;13346:4;13342:20;13338:1;13327:9;13323:17;13316:47;13380:131;13506:4;13380:131;:::i;:::-;13372:139;;13270:248;;;:::o;13524:419::-;13690:4;13728:2;13717:9;13713:18;13705:26;;13777:9;13771:4;13767:20;13763:1;13752:9;13748:17;13741:47;13805:131;13931:4;13805:131;:::i;:::-;13797:139;;13695:248;;;:::o;13949:419::-;14115:4;14153:2;14142:9;14138:18;14130:26;;14202:9;14196:4;14192:20;14188:1;14177:9;14173:17;14166:47;14230:131;14356:4;14230:131;:::i;:::-;14222:139;;14120:248;;;:::o;14374:419::-;14540:4;14578:2;14567:9;14563:18;14555:26;;14627:9;14621:4;14617:20;14613:1;14602:9;14598:17;14591:47;14655:131;14781:4;14655:131;:::i;:::-;14647:139;;14545:248;;;:::o;14799:419::-;14965:4;15003:2;14992:9;14988:18;14980:26;;15052:9;15046:4;15042:20;15038:1;15027:9;15023:17;15016:47;15080:131;15206:4;15080:131;:::i;:::-;15072:139;;14970:248;;;:::o;15224:419::-;15390:4;15428:2;15417:9;15413:18;15405:26;;15477:9;15471:4;15467:20;15463:1;15452:9;15448:17;15441:47;15505:131;15631:4;15505:131;:::i;:::-;15497:139;;15395:248;;;:::o;15649:419::-;15815:4;15853:2;15842:9;15838:18;15830:26;;15902:9;15896:4;15892:20;15888:1;15877:9;15873:17;15866:47;15930:131;16056:4;15930:131;:::i;:::-;15922:139;;15820:248;;;:::o;16074:419::-;16240:4;16278:2;16267:9;16263:18;16255:26;;16327:9;16321:4;16317:20;16313:1;16302:9;16298:17;16291:47;16355:131;16481:4;16355:131;:::i;:::-;16347:139;;16245:248;;;:::o;16499:419::-;16665:4;16703:2;16692:9;16688:18;16680:26;;16752:9;16746:4;16742:20;16738:1;16727:9;16723:17;16716:47;16780:131;16906:4;16780:131;:::i;:::-;16772:139;;16670:248;;;:::o;16924:222::-;17017:4;17055:2;17044:9;17040:18;17032:26;;17068:71;17136:1;17125:9;17121:17;17112:6;17068:71;:::i;:::-;17022:124;;;;:::o;17152:831::-;17415:4;17453:3;17442:9;17438:19;17430:27;;17467:71;17535:1;17524:9;17520:17;17511:6;17467:71;:::i;:::-;17548:80;17624:2;17613:9;17609:18;17600:6;17548:80;:::i;:::-;17675:9;17669:4;17665:20;17660:2;17649:9;17645:18;17638:48;17703:108;17806:4;17797:6;17703:108;:::i;:::-;17695:116;;17821:72;17889:2;17878:9;17874:18;17865:6;17821:72;:::i;:::-;17903:73;17971:3;17960:9;17956:19;17947:6;17903:73;:::i;:::-;17420:563;;;;;;;;:::o;17989:214::-;18078:4;18116:2;18105:9;18101:18;18093:26;;18129:67;18193:1;18182:9;18178:17;18169:6;18129:67;:::i;:::-;18083:120;;;;:::o;18209:132::-;18276:4;18299:3;18291:11;;18329:4;18324:3;18320:14;18312:22;;18281:60;;;:::o;18347:114::-;18414:6;18448:5;18442:12;18432:22;;18421:40;;;:::o;18467:99::-;18519:6;18553:5;18547:12;18537:22;;18526:40;;;:::o;18572:113::-;18642:4;18674;18669:3;18665:14;18657:22;;18647:38;;;:::o;18691:184::-;18790:11;18824:6;18819:3;18812:19;18864:4;18859:3;18855:14;18840:29;;18802:73;;;;:::o;18881:169::-;18965:11;18999:6;18994:3;18987:19;19039:4;19034:3;19030:14;19015:29;;18977:73;;;;:::o;19056:305::-;19096:3;19115:20;19133:1;19115:20;:::i;:::-;19110:25;;19149:20;19167:1;19149:20;:::i;:::-;19144:25;;19303:1;19235:66;19231:74;19228:1;19225:81;19222:2;;;19309:18;;:::i;:::-;19222:2;19353:1;19350;19346:9;19339:16;;19100:261;;;;:::o;19367:185::-;19407:1;19424:20;19442:1;19424:20;:::i;:::-;19419:25;;19458:20;19476:1;19458:20;:::i;:::-;19453:25;;19497:1;19487:2;;19502:18;;:::i;:::-;19487:2;19544:1;19541;19537:9;19532:14;;19409:143;;;;:::o;19558:348::-;19598:7;19621:20;19639:1;19621:20;:::i;:::-;19616:25;;19655:20;19673:1;19655:20;:::i;:::-;19650:25;;19843:1;19775:66;19771:74;19768:1;19765:81;19760:1;19753:9;19746:17;19742:105;19739:2;;;19850:18;;:::i;:::-;19739:2;19898:1;19895;19891:9;19880:20;;19606:300;;;;:::o;19912:191::-;19952:4;19972:20;19990:1;19972:20;:::i;:::-;19967:25;;20006:20;20024:1;20006:20;:::i;:::-;20001:25;;20045:1;20042;20039:8;20036:2;;;20050:18;;:::i;:::-;20036:2;20095:1;20092;20088:9;20080:17;;19957:146;;;;:::o;20109:96::-;20146:7;20175:24;20193:5;20175:24;:::i;:::-;20164:35;;20154:51;;;:::o;20211:90::-;20245:7;20288:5;20281:13;20274:21;20263:32;;20253:48;;;:::o;20307:126::-;20344:7;20384:42;20377:5;20373:54;20362:65;;20352:81;;;:::o;20439:77::-;20476:7;20505:5;20494:16;;20484:32;;;:::o;20522:86::-;20557:7;20597:4;20590:5;20586:16;20575:27;;20565:43;;;:::o;20614:121::-;20672:9;20705:24;20723:5;20705:24;:::i;:::-;20692:37;;20682:53;;;:::o;20741:307::-;20809:1;20819:113;20833:6;20830:1;20827:13;20819:113;;;20918:1;20913:3;20909:11;20903:18;20899:1;20894:3;20890:11;20883:39;20855:2;20852:1;20848:10;20843:15;;20819:113;;;20950:6;20947:1;20944:13;20941:2;;;21030:1;21021:6;21016:3;21012:16;21005:27;20941:2;20790:258;;;;:::o;21054:180::-;21102:77;21099:1;21092:88;21199:4;21196:1;21189:15;21223:4;21220:1;21213:15;21240:180;21288:77;21285:1;21278:88;21385:4;21382:1;21375:15;21409:4;21406:1;21399:15;21426:102;21467:6;21518:2;21514:7;21509:2;21502:5;21498:14;21494:28;21484:38;;21474:54;;;:::o;21534:222::-;21674:34;21670:1;21662:6;21658:14;21651:58;21743:5;21738:2;21730:6;21726:15;21719:30;21640:116;:::o;21762:229::-;21902:34;21898:1;21890:6;21886:14;21879:58;21971:12;21966:2;21958:6;21954:15;21947:37;21868:123;:::o;21997:221::-;22137:34;22133:1;22125:6;22121:14;22114:58;22206:4;22201:2;22193:6;22189:15;22182:29;22103:115;:::o;22224:177::-;22364:29;22360:1;22352:6;22348:14;22341:53;22330:71;:::o;22407:179::-;22547:31;22543:1;22535:6;22531:14;22524:55;22513:73;:::o;22592:220::-;22732:34;22728:1;22720:6;22716:14;22709:58;22801:3;22796:2;22788:6;22784:15;22777:28;22698:114;:::o;22818:182::-;22958:34;22954:1;22946:6;22942:14;22935:58;22924:76;:::o;23006:228::-;23146:34;23142:1;23134:6;23130:14;23123:58;23215:11;23210:2;23202:6;23198:15;23191:36;23112:122;:::o;23240:224::-;23380:34;23376:1;23368:6;23364:14;23357:58;23449:7;23444:2;23436:6;23432:15;23425:32;23346:118;:::o;23470:223::-;23610:34;23606:1;23598:6;23594:14;23587:58;23679:6;23674:2;23666:6;23662:15;23655:31;23576:117;:::o;23699:173::-;23839:25;23835:1;23827:6;23823:14;23816:49;23805:67;:::o;23878:122::-;23951:24;23969:5;23951:24;:::i;:::-;23944:5;23941:35;23931:2;;23990:1;23987;23980:12;23931:2;23921:79;:::o;24006:116::-;24076:21;24091:5;24076:21;:::i;:::-;24069:5;24066:32;24056:2;;24112:1;24109;24102:12;24056:2;24046:76;:::o;24128:122::-;24201:24;24219:5;24201:24;:::i;:::-;24194:5;24191:35;24181:2;;24240:1;24237;24230:12;24181:2;24171:79;:::o

Swarm Source

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