ETH Price: $3,401.69 (+2.58%)

Token

Nacho Inu (NACHO)
 

Overview

Max Total Supply

1,000,000,000,000 NACHO

Holders

319

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
417,596.275884948 NACHO

Value
$0.00
0x1433b7f520319e8c8a8a92d5d5c11fd8013c9e75
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:
NACHOINU

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

 _   _               _              _____              
| \ | |             | |            |_   _|             
|  \| |  __ _   ___ | |__    ___     | |  _ __   _   _ 
| . ` | / _` | / __|| '_ \  / _ \    | | | '_ \ | | | |
| |\  || (_| || (__ | | | || (_) |  _| |_| | | || |_| |
\_| \_/ \__,_| \___||_| |_| \___/   \___/|_| |_| \__,_|                                         

Nacho Inu: Eat the dip!

Token Information
1. 100,000,000,000 Total Supply
3. NO DEV TOKENS, NO PRESALE TOKENS! 
4. Developer provides LP!
5. 30-second buy cooldown at launch, permanent 90-second sell cooldown
6. 2,000,000,000 max buy at launch, permanent 3,000,000,000 max sell (per transaction)
6. 6% redistribution to holders
7. Small ETH fee on sells, split amongst team - NOT TOKENS! NO EFFECT ON CHART!

Telegram: t.me/NachoInu
Twitter: https://twitter.com/NachoInu
*/

// SPDX-License-Identifier: Unlicensed
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 NACHOINU 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 => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private constant _name = "Nacho Inu";
    string private constant _symbol = "NACHO";
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 6; // ...
    uint256 private _teamFee = 9; // nice
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private _FeeAddress;
    address payable private _marketingWalletAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private buyCooldownEnabled = false;
    bool private sellCooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable FeeAddress, address payable marketingWalletAddress) {
        _FeeAddress = FeeAddress;
        _marketingWalletAddress = marketingWalletAddress;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[marketingWalletAddress] = 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 setBuyCooldownEnabled(bool onoff) external onlyOwner() {
        buyCooldownEnabled = onoff;
    }

    function setSellCooldownEnabled(bool onoff) external onlyOwner() {
        sellCooldownEnabled = onoff;
    }

    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 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    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, "Too many tokens.");

            // to buyer
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && buyCooldownEnabled) {
                require(tradingOpen, "Trading not yet enabled.");
                require(cooldown[to] < block.timestamp, "Your transaction cooldown has not expired.");
                cooldown[to] = block.timestamp + (30 seconds);
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            // from seller
            if (!inSwap && from != uniswapV2Pair && tradingOpen) {
                require(amount <= 3e9 * 10**9);
                if(sellCooldownEnabled) {
                    require(cooldown[from] < block.timestamp, "Your transaction cooldown has not expired.");
                    cooldown[from] = block.timestamp + (90 seconds);
                }
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(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 sendETHToFee(uint256 amount) private {
        _FeeAddress.transfer(amount.div(2));
        _marketingWalletAddress.transfer(amount.div(2));
    }

    function addLiquidity() 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);
        buyCooldownEnabled = true;
        sellCooldownEnabled = true;
        _maxTxAmount = 2e9 * 10**9;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

    function manualswap() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
        
    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 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam); 
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

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

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        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 setMaxTxAmount(uint256 amount) external onlyOwner() {
        require(amount > 0, "Amount must be greater than 0");
        _maxTxAmount = amount;
        emit MaxTxAmountUpdated(_maxTxAmount);
    }

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

    function maxTxAmount() public view returns (uint) {
        return _maxTxAmount;
    }

    function sellCooldown() public view returns (bool) {
        return sellCooldownEnabled;
    }

    function buyCooldown() public view returns (bool) {
        return buyCooldownEnabled;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"marketingWalletAddress","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":"addLiquidity","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":[],"name":"buyCooldown","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"sellCooldown","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setBuyCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSellCooldownEnabled","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"}]

6080604052683635c9adc5dea000006000196200001d919062000584565b6000196200002c91906200050b565b60075560066009556009600a55600954600b55600a54600c556000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060176101000a81548160ff021916908315150217905550683635c9adc5dea00000601155348015620000b057600080fd5b5060405162003d9738038062003d978339818101604052810190620000d691906200049c565b6000620000e86200045460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600260006200021f6200045460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002736200045c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003dc6200045460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004449190620004ee565b60405180910390a3505062000634565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000496816200061a565b92915050565b60008060408385031215620004b057600080fd5b6000620004c08582860162000485565b9250506020620004d38582860162000485565b9150509250929050565b620004e8816200057a565b82525050565b6000602082019050620005056000830184620004dd565b92915050565b600062000518826200057a565b915062000525836200057a565b9250828210156200053b576200053a620005bc565b5b828203905092915050565b600062000553826200055a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000591826200057a565b91506200059e836200057a565b925082620005b157620005b0620005eb565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620006258162000546565b81146200063157600080fd5b50565b61375380620006446000396000f3fe6080604052600436106101395760003560e01c80638c0b5e22116100ab578063c3c8cd801161006f578063c3c8cd8014610411578063c9567bf914610428578063d543dbeb1461043f578063dd62ed3e14610468578063e8078d94146104a5578063ec28438a146104bc57610140565b80638c0b5e221461032a5780638da5cb5b1461035557806395d89b4114610380578063a9059cbb146103ab578063acaf4a80146103e857610140565b8063313ce567116100fd578063313ce5671461024057806356c2c6be1461026b5780636fc3eaec14610294578063704fbfe5146102ab57806370a08231146102d6578063715018a61461031357610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad5780631b2773c2146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e5565b6040516101679190612e5d565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061297b565b610522565b6040516101a49190612e42565b60405180910390f35b3480156101b957600080fd5b506101c2610540565b6040516101cf919061303f565b60405180910390f35b3480156101e457600080fd5b506101ed610551565b6040516101fa9190612e42565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061292c565b610568565b6040516102379190612e42565b60405180910390f35b34801561024c57600080fd5b50610255610641565b60405161026291906130b4565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d91906129b7565b61064a565b005b3480156102a057600080fd5b506102a96106fc565b005b3480156102b757600080fd5b506102c061076e565b6040516102cd9190612e42565b60405180910390f35b3480156102e257600080fd5b506102fd60048036038101906102f8919061289e565b610785565b60405161030a919061303f565b60405180910390f35b34801561031f57600080fd5b506103286107d6565b005b34801561033657600080fd5b5061033f610929565b60405161034c919061303f565b60405180910390f35b34801561036157600080fd5b5061036a610933565b6040516103779190612d74565b60405180910390f35b34801561038c57600080fd5b5061039561095c565b6040516103a29190612e5d565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd919061297b565b610999565b6040516103df9190612e42565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a91906129b7565b6109b7565b005b34801561041d57600080fd5b50610426610a69565b005b34801561043457600080fd5b5061043d610ae3565b005b34801561044b57600080fd5b5061046660048036038101906104619190612a09565b610b95565b005b34801561047457600080fd5b5061048f600480360381019061048a91906128f0565b610cde565b60405161049c919061303f565b60405180910390f35b3480156104b157600080fd5b506104ba610d65565b005b3480156104c857600080fd5b506104e360048036038101906104de9190612a09565b6112a6565b005b60606040518060400160405280600981526020017f4e6163686f20496e750000000000000000000000000000000000000000000000815250905090565b600061053661052f6113c1565b84846113c9565b6001905092915050565b6000683635c9adc5dea00000905090565b6000601060179054906101000a900460ff16905090565b6000610575848484611594565b610636846105816113c1565b610631856040518060600160405280602881526020016136f660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e76113c1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2f9092919063ffffffff16565b6113c9565b600190509392505050565b60006009905090565b6106526113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d690612f5f565b60405180910390fd5b80601060166101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661073d6113c1565b73ffffffffffffffffffffffffffffffffffffffff161461075d57600080fd5b600047905061076b81611c93565b50565b6000601060169054906101000a900460ff16905090565b60006107cf600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8e565b9050919050565b6107de6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086290612f5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000601154905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4e4143484f000000000000000000000000000000000000000000000000000000815250905090565b60006109ad6109a66113c1565b8484611594565b6001905092915050565b6109bf6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4390612f5f565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aaa6113c1565b73ffffffffffffffffffffffffffffffffffffffff1614610aca57600080fd5b6000610ad530610785565b9050610ae081611dfc565b50565b610aeb6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f90612f5f565b60405180910390fd5b6001601060146101000a81548160ff021916908315150217905550565b610b9d6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2190612f5f565b60405180910390fd5b60008111610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6490612eff565b60405180910390fd5b610c9c6064610c8e83683635c9adc5dea000006120f690919063ffffffff16565b61217190919063ffffffff16565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601154604051610cd3919061303f565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d6d6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190612f5f565b60405180910390fd5b601060149054906101000a900460ff1615610e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4190612fff565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610eda30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006113c9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2057600080fd5b505afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5891906128c7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fba57600080fd5b505afa158015610fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff291906128c7565b6040518363ffffffff1660e01b815260040161100f929190612d8f565b602060405180830381600087803b15801561102957600080fd5b505af115801561103d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106191906128c7565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110ea30610785565b6000806110f5610933565b426040518863ffffffff1660e01b815260040161111796959493929190612de1565b6060604051808303818588803b15801561113057600080fd5b505af1158015611144573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111699190612a32565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff021916908315150217905550671bc16d674ec80000601181905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611250929190612db8565b602060405180830381600087803b15801561126a57600080fd5b505af115801561127e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a291906129e0565b5050565b6112ae6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612f5f565b60405180910390fd5b6000811161137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590612eff565b60405180910390fd5b806011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6011546040516113b6919061303f565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090612fbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a090612ebf565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611587919061303f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612f9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b90612e7f565b60405180910390fd5b600081116116b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ae90612f7f565b60405180910390fd5b6116bf610933565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172d57506116fd610933565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b6c57601154811115611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e90612fdf565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118225750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118785750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118905750601060169054906101000a900460ff165b156119b657601060149054906101000a900460ff166118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db9061301f565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195c90612f1f565b60405180910390fd5b601e426119729190613124565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60006119c130610785565b9050601060159054906101000a900460ff16158015611a2e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a465750601060149054906101000a900460ff165b15611b6a576729a2241af62c0000821115611a6057600080fd5b601060179054906101000a900460ff1615611b475742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aed90612f1f565b60405180910390fd5b605a42611b039190613124565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611b5081611dfc565b60004790506000811115611b6857611b6747611c93565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c135750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c1d57600090505b611c29848484846121bb565b50505050565b6000838311158290611c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6e9190612e5d565b60405180910390fd5b5060008385611c869190613205565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ce360028461217190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d0e573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d5f60028461217190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d8a573d6000803e3d6000fd5b5050565b6000600754821115611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc90612e9f565b60405180910390fd5b6000611ddf6121e8565b9050611df4818461217190919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e5a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611e885781602001602082028036833780820191505090505b5090503081600081518110611ec6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6857600080fd5b505afa158015611f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa091906128c7565b81600181518110611fda577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061204130600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113c9565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120a595949392919061305a565b600060405180830381600087803b1580156120bf57600080fd5b505af11580156120d3573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b600080831415612109576000905061216b565b6000828461211791906131ab565b9050828482612126919061317a565b14612166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215d90612f3f565b60405180910390fd5b809150505b92915050565b60006121b383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612213565b905092915050565b806121c9576121c8612276565b5b6121d48484846122b9565b806121e2576121e1612484565b5b50505050565b60008060006121f5612498565b9150915061220c818361217190919063ffffffff16565b9250505090565b6000808311829061225a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122519190612e5d565b60405180910390fd5b5060008385612269919061317a565b9050809150509392505050565b600060095414801561228a57506000600a54145b15612294576122b7565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b6000806000806000806122cb876124fa565b95509550955095509550955061232986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123be85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ac90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061240a8161260a565b61241484836126c7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612471919061303f565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b600080600060075490506000683635c9adc5dea0000090506124ce683635c9adc5dea0000060075461217190919063ffffffff16565b8210156124ed57600754683635c9adc5dea000009350935050506124f6565b81819350935050505b9091565b60008060008060008060008060006125178a600954600a54612701565b92509250925060006125276121e8565b9050600080600061253a8e878787612797565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006125a483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2f565b905092915050565b60008082846125bb9190613124565b905083811015612600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f790612edf565b60405180910390fd5b8091505092915050565b60006126146121e8565b9050600061262b82846120f690919063ffffffff16565b905061267f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ac90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6126dc8260075461256290919063ffffffff16565b6007819055506126f7816008546125ac90919063ffffffff16565b6008819055505050565b60008060008061272d606461271f888a6120f690919063ffffffff16565b61217190919063ffffffff16565b905060006127576064612749888b6120f690919063ffffffff16565b61217190919063ffffffff16565b9050600061278082612772858c61256290919063ffffffff16565b61256290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806127b085896120f690919063ffffffff16565b905060006127c786896120f690919063ffffffff16565b905060006127de87896120f690919063ffffffff16565b90506000612807826127f9858761256290919063ffffffff16565b61256290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061282f816136b0565b92915050565b600081519050612844816136b0565b92915050565b600081359050612859816136c7565b92915050565b60008151905061286e816136c7565b92915050565b600081359050612883816136de565b92915050565b600081519050612898816136de565b92915050565b6000602082840312156128b057600080fd5b60006128be84828501612820565b91505092915050565b6000602082840312156128d957600080fd5b60006128e784828501612835565b91505092915050565b6000806040838503121561290357600080fd5b600061291185828601612820565b925050602061292285828601612820565b9150509250929050565b60008060006060848603121561294157600080fd5b600061294f86828701612820565b935050602061296086828701612820565b925050604061297186828701612874565b9150509250925092565b6000806040838503121561298e57600080fd5b600061299c85828601612820565b92505060206129ad85828601612874565b9150509250929050565b6000602082840312156129c957600080fd5b60006129d78482850161284a565b91505092915050565b6000602082840312156129f257600080fd5b6000612a008482850161285f565b91505092915050565b600060208284031215612a1b57600080fd5b6000612a2984828501612874565b91505092915050565b600080600060608486031215612a4757600080fd5b6000612a5586828701612889565b9350506020612a6686828701612889565b9250506040612a7786828701612889565b9150509250925092565b6000612a8d8383612a99565b60208301905092915050565b612aa281613239565b82525050565b612ab181613239565b82525050565b6000612ac2826130df565b612acc8185613102565b9350612ad7836130cf565b8060005b83811015612b08578151612aef8882612a81565b9750612afa836130f5565b925050600181019050612adb565b5085935050505092915050565b612b1e8161324b565b82525050565b612b2d8161328e565b82525050565b6000612b3e826130ea565b612b488185613113565b9350612b588185602086016132a0565b612b6181613331565b840191505092915050565b6000612b79602383613113565b9150612b8482613342565b604082019050919050565b6000612b9c602a83613113565b9150612ba782613391565b604082019050919050565b6000612bbf602283613113565b9150612bca826133e0565b604082019050919050565b6000612be2601b83613113565b9150612bed8261342f565b602082019050919050565b6000612c05601d83613113565b9150612c1082613458565b602082019050919050565b6000612c28602a83613113565b9150612c3382613481565b604082019050919050565b6000612c4b602183613113565b9150612c56826134d0565b604082019050919050565b6000612c6e602083613113565b9150612c798261351f565b602082019050919050565b6000612c91602983613113565b9150612c9c82613548565b604082019050919050565b6000612cb4602583613113565b9150612cbf82613597565b604082019050919050565b6000612cd7602483613113565b9150612ce2826135e6565b604082019050919050565b6000612cfa601083613113565b9150612d0582613635565b602082019050919050565b6000612d1d601783613113565b9150612d288261365e565b602082019050919050565b6000612d40601883613113565b9150612d4b82613687565b602082019050919050565b612d5f81613277565b82525050565b612d6e81613281565b82525050565b6000602082019050612d896000830184612aa8565b92915050565b6000604082019050612da46000830185612aa8565b612db16020830184612aa8565b9392505050565b6000604082019050612dcd6000830185612aa8565b612dda6020830184612d56565b9392505050565b600060c082019050612df66000830189612aa8565b612e036020830188612d56565b612e106040830187612b24565b612e1d6060830186612b24565b612e2a6080830185612aa8565b612e3760a0830184612d56565b979650505050505050565b6000602082019050612e576000830184612b15565b92915050565b60006020820190508181036000830152612e778184612b33565b905092915050565b60006020820190508181036000830152612e9881612b6c565b9050919050565b60006020820190508181036000830152612eb881612b8f565b9050919050565b60006020820190508181036000830152612ed881612bb2565b9050919050565b60006020820190508181036000830152612ef881612bd5565b9050919050565b60006020820190508181036000830152612f1881612bf8565b9050919050565b60006020820190508181036000830152612f3881612c1b565b9050919050565b60006020820190508181036000830152612f5881612c3e565b9050919050565b60006020820190508181036000830152612f7881612c61565b9050919050565b60006020820190508181036000830152612f9881612c84565b9050919050565b60006020820190508181036000830152612fb881612ca7565b9050919050565b60006020820190508181036000830152612fd881612cca565b9050919050565b60006020820190508181036000830152612ff881612ced565b9050919050565b6000602082019050818103600083015261301881612d10565b9050919050565b6000602082019050818103600083015261303881612d33565b9050919050565b60006020820190506130546000830184612d56565b92915050565b600060a08201905061306f6000830188612d56565b61307c6020830187612b24565b818103604083015261308e8186612ab7565b905061309d6060830185612aa8565b6130aa6080830184612d56565b9695505050505050565b60006020820190506130c96000830184612d65565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061312f82613277565b915061313a83613277565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561316f5761316e6132d3565b5b828201905092915050565b600061318582613277565b915061319083613277565b9250826131a05761319f613302565b5b828204905092915050565b60006131b682613277565b91506131c183613277565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131fa576131f96132d3565b5b828202905092915050565b600061321082613277565b915061321b83613277565b92508282101561322e5761322d6132d3565b5b828203905092915050565b600061324482613257565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061329982613277565b9050919050565b60005b838110156132be5780820151818401526020810190506132a3565b838111156132cd576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f596f7572207472616e73616374696f6e20636f6f6c646f776e20686173206e6f60008201527f7420657870697265642e00000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f546f6f206d616e7920746f6b656e732e00000000000000000000000000000000600082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6136b981613239565b81146136c457600080fd5b50565b6136d08161324b565b81146136db57600080fd5b50565b6136e781613277565b81146136f257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220716b51ca8bf572c136c28522bcd9c0f2a0a2b63abe14eeea4b81e4a7352acd3f64736f6c63430008040033000000000000000000000000bc468a5aa916730ac19ed8a70ca279dde1f3f55d000000000000000000000000b8a6607327657c7539de51b26582acc420fa8cf8

Deployed Bytecode

0x6080604052600436106101395760003560e01c80638c0b5e22116100ab578063c3c8cd801161006f578063c3c8cd8014610411578063c9567bf914610428578063d543dbeb1461043f578063dd62ed3e14610468578063e8078d94146104a5578063ec28438a146104bc57610140565b80638c0b5e221461032a5780638da5cb5b1461035557806395d89b4114610380578063a9059cbb146103ab578063acaf4a80146103e857610140565b8063313ce567116100fd578063313ce5671461024057806356c2c6be1461026b5780636fc3eaec14610294578063704fbfe5146102ab57806370a08231146102d6578063715018a61461031357610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad5780631b2773c2146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e5565b6040516101679190612e5d565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061297b565b610522565b6040516101a49190612e42565b60405180910390f35b3480156101b957600080fd5b506101c2610540565b6040516101cf919061303f565b60405180910390f35b3480156101e457600080fd5b506101ed610551565b6040516101fa9190612e42565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061292c565b610568565b6040516102379190612e42565b60405180910390f35b34801561024c57600080fd5b50610255610641565b60405161026291906130b4565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d91906129b7565b61064a565b005b3480156102a057600080fd5b506102a96106fc565b005b3480156102b757600080fd5b506102c061076e565b6040516102cd9190612e42565b60405180910390f35b3480156102e257600080fd5b506102fd60048036038101906102f8919061289e565b610785565b60405161030a919061303f565b60405180910390f35b34801561031f57600080fd5b506103286107d6565b005b34801561033657600080fd5b5061033f610929565b60405161034c919061303f565b60405180910390f35b34801561036157600080fd5b5061036a610933565b6040516103779190612d74565b60405180910390f35b34801561038c57600080fd5b5061039561095c565b6040516103a29190612e5d565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd919061297b565b610999565b6040516103df9190612e42565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a91906129b7565b6109b7565b005b34801561041d57600080fd5b50610426610a69565b005b34801561043457600080fd5b5061043d610ae3565b005b34801561044b57600080fd5b5061046660048036038101906104619190612a09565b610b95565b005b34801561047457600080fd5b5061048f600480360381019061048a91906128f0565b610cde565b60405161049c919061303f565b60405180910390f35b3480156104b157600080fd5b506104ba610d65565b005b3480156104c857600080fd5b506104e360048036038101906104de9190612a09565b6112a6565b005b60606040518060400160405280600981526020017f4e6163686f20496e750000000000000000000000000000000000000000000000815250905090565b600061053661052f6113c1565b84846113c9565b6001905092915050565b6000683635c9adc5dea00000905090565b6000601060179054906101000a900460ff16905090565b6000610575848484611594565b610636846105816113c1565b610631856040518060600160405280602881526020016136f660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e76113c1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2f9092919063ffffffff16565b6113c9565b600190509392505050565b60006009905090565b6106526113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d690612f5f565b60405180910390fd5b80601060166101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661073d6113c1565b73ffffffffffffffffffffffffffffffffffffffff161461075d57600080fd5b600047905061076b81611c93565b50565b6000601060169054906101000a900460ff16905090565b60006107cf600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8e565b9050919050565b6107de6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086290612f5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000601154905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4e4143484f000000000000000000000000000000000000000000000000000000815250905090565b60006109ad6109a66113c1565b8484611594565b6001905092915050565b6109bf6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4390612f5f565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aaa6113c1565b73ffffffffffffffffffffffffffffffffffffffff1614610aca57600080fd5b6000610ad530610785565b9050610ae081611dfc565b50565b610aeb6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f90612f5f565b60405180910390fd5b6001601060146101000a81548160ff021916908315150217905550565b610b9d6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2190612f5f565b60405180910390fd5b60008111610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6490612eff565b60405180910390fd5b610c9c6064610c8e83683635c9adc5dea000006120f690919063ffffffff16565b61217190919063ffffffff16565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601154604051610cd3919061303f565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d6d6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190612f5f565b60405180910390fd5b601060149054906101000a900460ff1615610e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4190612fff565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610eda30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006113c9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2057600080fd5b505afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5891906128c7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fba57600080fd5b505afa158015610fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff291906128c7565b6040518363ffffffff1660e01b815260040161100f929190612d8f565b602060405180830381600087803b15801561102957600080fd5b505af115801561103d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106191906128c7565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110ea30610785565b6000806110f5610933565b426040518863ffffffff1660e01b815260040161111796959493929190612de1565b6060604051808303818588803b15801561113057600080fd5b505af1158015611144573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111699190612a32565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff021916908315150217905550671bc16d674ec80000601181905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611250929190612db8565b602060405180830381600087803b15801561126a57600080fd5b505af115801561127e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a291906129e0565b5050565b6112ae6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612f5f565b60405180910390fd5b6000811161137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590612eff565b60405180910390fd5b806011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6011546040516113b6919061303f565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090612fbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a090612ebf565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611587919061303f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612f9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b90612e7f565b60405180910390fd5b600081116116b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ae90612f7f565b60405180910390fd5b6116bf610933565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172d57506116fd610933565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b6c57601154811115611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e90612fdf565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118225750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118785750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118905750601060169054906101000a900460ff165b156119b657601060149054906101000a900460ff166118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db9061301f565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195c90612f1f565b60405180910390fd5b601e426119729190613124565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60006119c130610785565b9050601060159054906101000a900460ff16158015611a2e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a465750601060149054906101000a900460ff165b15611b6a576729a2241af62c0000821115611a6057600080fd5b601060179054906101000a900460ff1615611b475742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aed90612f1f565b60405180910390fd5b605a42611b039190613124565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611b5081611dfc565b60004790506000811115611b6857611b6747611c93565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c135750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c1d57600090505b611c29848484846121bb565b50505050565b6000838311158290611c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6e9190612e5d565b60405180910390fd5b5060008385611c869190613205565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ce360028461217190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d0e573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d5f60028461217190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d8a573d6000803e3d6000fd5b5050565b6000600754821115611dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcc90612e9f565b60405180910390fd5b6000611ddf6121e8565b9050611df4818461217190919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e5a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611e885781602001602082028036833780820191505090505b5090503081600081518110611ec6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6857600080fd5b505afa158015611f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa091906128c7565b81600181518110611fda577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061204130600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113c9565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120a595949392919061305a565b600060405180830381600087803b1580156120bf57600080fd5b505af11580156120d3573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b600080831415612109576000905061216b565b6000828461211791906131ab565b9050828482612126919061317a565b14612166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215d90612f3f565b60405180910390fd5b809150505b92915050565b60006121b383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612213565b905092915050565b806121c9576121c8612276565b5b6121d48484846122b9565b806121e2576121e1612484565b5b50505050565b60008060006121f5612498565b9150915061220c818361217190919063ffffffff16565b9250505090565b6000808311829061225a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122519190612e5d565b60405180910390fd5b5060008385612269919061317a565b9050809150509392505050565b600060095414801561228a57506000600a54145b15612294576122b7565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b6000806000806000806122cb876124fa565b95509550955095509550955061232986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123be85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ac90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061240a8161260a565b61241484836126c7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612471919061303f565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b600080600060075490506000683635c9adc5dea0000090506124ce683635c9adc5dea0000060075461217190919063ffffffff16565b8210156124ed57600754683635c9adc5dea000009350935050506124f6565b81819350935050505b9091565b60008060008060008060008060006125178a600954600a54612701565b92509250925060006125276121e8565b9050600080600061253a8e878787612797565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006125a483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2f565b905092915050565b60008082846125bb9190613124565b905083811015612600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f790612edf565b60405180910390fd5b8091505092915050565b60006126146121e8565b9050600061262b82846120f690919063ffffffff16565b905061267f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ac90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6126dc8260075461256290919063ffffffff16565b6007819055506126f7816008546125ac90919063ffffffff16565b6008819055505050565b60008060008061272d606461271f888a6120f690919063ffffffff16565b61217190919063ffffffff16565b905060006127576064612749888b6120f690919063ffffffff16565b61217190919063ffffffff16565b9050600061278082612772858c61256290919063ffffffff16565b61256290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806127b085896120f690919063ffffffff16565b905060006127c786896120f690919063ffffffff16565b905060006127de87896120f690919063ffffffff16565b90506000612807826127f9858761256290919063ffffffff16565b61256290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061282f816136b0565b92915050565b600081519050612844816136b0565b92915050565b600081359050612859816136c7565b92915050565b60008151905061286e816136c7565b92915050565b600081359050612883816136de565b92915050565b600081519050612898816136de565b92915050565b6000602082840312156128b057600080fd5b60006128be84828501612820565b91505092915050565b6000602082840312156128d957600080fd5b60006128e784828501612835565b91505092915050565b6000806040838503121561290357600080fd5b600061291185828601612820565b925050602061292285828601612820565b9150509250929050565b60008060006060848603121561294157600080fd5b600061294f86828701612820565b935050602061296086828701612820565b925050604061297186828701612874565b9150509250925092565b6000806040838503121561298e57600080fd5b600061299c85828601612820565b92505060206129ad85828601612874565b9150509250929050565b6000602082840312156129c957600080fd5b60006129d78482850161284a565b91505092915050565b6000602082840312156129f257600080fd5b6000612a008482850161285f565b91505092915050565b600060208284031215612a1b57600080fd5b6000612a2984828501612874565b91505092915050565b600080600060608486031215612a4757600080fd5b6000612a5586828701612889565b9350506020612a6686828701612889565b9250506040612a7786828701612889565b9150509250925092565b6000612a8d8383612a99565b60208301905092915050565b612aa281613239565b82525050565b612ab181613239565b82525050565b6000612ac2826130df565b612acc8185613102565b9350612ad7836130cf565b8060005b83811015612b08578151612aef8882612a81565b9750612afa836130f5565b925050600181019050612adb565b5085935050505092915050565b612b1e8161324b565b82525050565b612b2d8161328e565b82525050565b6000612b3e826130ea565b612b488185613113565b9350612b588185602086016132a0565b612b6181613331565b840191505092915050565b6000612b79602383613113565b9150612b8482613342565b604082019050919050565b6000612b9c602a83613113565b9150612ba782613391565b604082019050919050565b6000612bbf602283613113565b9150612bca826133e0565b604082019050919050565b6000612be2601b83613113565b9150612bed8261342f565b602082019050919050565b6000612c05601d83613113565b9150612c1082613458565b602082019050919050565b6000612c28602a83613113565b9150612c3382613481565b604082019050919050565b6000612c4b602183613113565b9150612c56826134d0565b604082019050919050565b6000612c6e602083613113565b9150612c798261351f565b602082019050919050565b6000612c91602983613113565b9150612c9c82613548565b604082019050919050565b6000612cb4602583613113565b9150612cbf82613597565b604082019050919050565b6000612cd7602483613113565b9150612ce2826135e6565b604082019050919050565b6000612cfa601083613113565b9150612d0582613635565b602082019050919050565b6000612d1d601783613113565b9150612d288261365e565b602082019050919050565b6000612d40601883613113565b9150612d4b82613687565b602082019050919050565b612d5f81613277565b82525050565b612d6e81613281565b82525050565b6000602082019050612d896000830184612aa8565b92915050565b6000604082019050612da46000830185612aa8565b612db16020830184612aa8565b9392505050565b6000604082019050612dcd6000830185612aa8565b612dda6020830184612d56565b9392505050565b600060c082019050612df66000830189612aa8565b612e036020830188612d56565b612e106040830187612b24565b612e1d6060830186612b24565b612e2a6080830185612aa8565b612e3760a0830184612d56565b979650505050505050565b6000602082019050612e576000830184612b15565b92915050565b60006020820190508181036000830152612e778184612b33565b905092915050565b60006020820190508181036000830152612e9881612b6c565b9050919050565b60006020820190508181036000830152612eb881612b8f565b9050919050565b60006020820190508181036000830152612ed881612bb2565b9050919050565b60006020820190508181036000830152612ef881612bd5565b9050919050565b60006020820190508181036000830152612f1881612bf8565b9050919050565b60006020820190508181036000830152612f3881612c1b565b9050919050565b60006020820190508181036000830152612f5881612c3e565b9050919050565b60006020820190508181036000830152612f7881612c61565b9050919050565b60006020820190508181036000830152612f9881612c84565b9050919050565b60006020820190508181036000830152612fb881612ca7565b9050919050565b60006020820190508181036000830152612fd881612cca565b9050919050565b60006020820190508181036000830152612ff881612ced565b9050919050565b6000602082019050818103600083015261301881612d10565b9050919050565b6000602082019050818103600083015261303881612d33565b9050919050565b60006020820190506130546000830184612d56565b92915050565b600060a08201905061306f6000830188612d56565b61307c6020830187612b24565b818103604083015261308e8186612ab7565b905061309d6060830185612aa8565b6130aa6080830184612d56565b9695505050505050565b60006020820190506130c96000830184612d65565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061312f82613277565b915061313a83613277565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561316f5761316e6132d3565b5b828201905092915050565b600061318582613277565b915061319083613277565b9250826131a05761319f613302565b5b828204905092915050565b60006131b682613277565b91506131c183613277565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131fa576131f96132d3565b5b828202905092915050565b600061321082613277565b915061321b83613277565b92508282101561322e5761322d6132d3565b5b828203905092915050565b600061324482613257565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061329982613277565b9050919050565b60005b838110156132be5780820151818401526020810190506132a3565b838111156132cd576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f596f7572207472616e73616374696f6e20636f6f6c646f776e20686173206e6f60008201527f7420657870697265642e00000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f546f6f206d616e7920746f6b656e732e00000000000000000000000000000000600082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6136b981613239565b81146136c457600080fd5b50565b6136d08161324b565b81146136db57600080fd5b50565b6136e781613277565b81146136f257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220716b51ca8bf572c136c28522bcd9c0f2a0a2b63abe14eeea4b81e4a7352acd3f64736f6c63430008040033

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

000000000000000000000000bc468a5aa916730ac19ed8a70ca279dde1f3f55d000000000000000000000000b8a6607327657c7539de51b26582acc420fa8cf8

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0xbc468a5Aa916730Ac19eD8A70CA279DdE1f3F55D
Arg [1] : marketingWalletAddress (address): 0xb8a6607327657c7539De51B26582acc420Fa8cf8

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000bc468a5aa916730ac19ed8a70ca279dde1f3f55d
Arg [1] : 000000000000000000000000b8a6607327657c7539de51b26582acc420fa8cf8


Deployed Bytecode Sourcemap

4400:11826:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6322:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7174:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6599:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16025:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7343:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6508:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7664:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12367:190;;;;;;;;;;;;;:::i;:::-;;16129:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6702:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3479:148;;;;;;;;;;;;;:::i;:::-;;15929:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3265:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6413:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6848:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7781:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12164:191;;;;;;;;;;;;;:::i;:::-;;12079:77;;;;;;;;;;;;;:::i;:::-;;15666:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7023:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11280:791;;;;;;;;;;;;;:::i;:::-;;15446:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6322:83;6359:13;6392:5;;;;;;;;;;;;;;;;;6385:12;;6322:83;:::o;7174:161::-;7249:4;7266:39;7275:12;:10;:12::i;:::-;7289:7;7298:6;7266:8;:39::i;:::-;7323:4;7316:11;;7174:161;;;;:::o;6599:95::-;6652:7;4856:21;6672:14;;6599:95;:::o;16025:96::-;16070:4;16094:19;;;;;;;;;;;16087:26;;16025:96;:::o;7343:313::-;7441:4;7458:36;7468:6;7476:9;7487:6;7458:9;:36::i;:::-;7505:121;7514:6;7522:12;:10;:12::i;:::-;7536:89;7574:6;7536:89;;;;;;;;;;;;;;;;;:11;:19;7548:6;7536:19;;;;;;;;;;;;;;;:33;7556:12;:10;:12::i;:::-;7536:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7505:8;:121::i;:::-;7644:4;7637:11;;7343:313;;;;;:::o;6508:83::-;6549:5;5106:1;6567:16;;6508:83;:::o;7664:109::-;3402:12;:10;:12::i;:::-;3392:22;;:6;;;;;;;;;;:22;;;3384:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7760:5:::1;7739:18;;:26;;;;;;;;;;;;;;;;;;7664:109:::0;:::o;12367:190::-;12433:11;;;;;;;;;;;12417:27;;:12;:10;:12::i;:::-;:27;;;12409:36;;;;;;12456:26;12485:21;12456:50;;12517:32;12530:18;12517:12;:32::i;:::-;12367:190;:::o;16129:94::-;16173:4;16197:18;;;;;;;;;;;16190:25;;16129:94;:::o;6702:138::-;6768:7;6795:37;6815:7;:16;6823:7;6815:16;;;;;;;;;;;;;;;;6795:19;:37::i;:::-;6788:44;;6702:138;;;:::o;3479:148::-;3402:12;:10;:12::i;:::-;3392:22;;:6;;;;;;;;;;:22;;;3384:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3586:1:::1;3549:40;;3570:6;::::0;::::1;;;;;;;;3549:40;;;;;;;;;;;;3617:1;3600:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3479:148::o:0;15929:88::-;15973:4;15997:12;;15990:19;;15929:88;:::o;3265:79::-;3303:7;3330:6;;;;;;;;;;;3323:13;;3265:79;:::o;6413:87::-;6452:13;6485:7;;;;;;;;;;;;;;;;;6478:14;;6413:87;:::o;6848:167::-;6926:4;6943:42;6953:12;:10;:12::i;:::-;6967:9;6978:6;6943:9;:42::i;:::-;7003:4;6996:11;;6848:167;;;;:::o;7781:111::-;3402:12;:10;:12::i;:::-;3392:22;;:6;;;;;;;;;;:22;;;3384:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7879:5:::1;7857:19;;:27;;;;;;;;;;;;;;;;;;7781:111:::0;:::o;12164:191::-;12230:11;;;;;;;;;;;12214:27;;:12;:10;:12::i;:::-;:27;;;12206:36;;;;;;12253:23;12279:24;12297:4;12279:9;:24::i;:::-;12253:50;;12314:33;12331:15;12314:16;:33::i;:::-;12164:191;:::o;12079:77::-;3402:12;:10;:12::i;:::-;3392:22;;:6;;;;;;;;;;:22;;;3384:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12144:4:::1;12130:11;;:18;;;;;;;;;;;;;;;;;;12079:77::o:0;15666:255::-;3402:12;:10;:12::i;:::-;3392:22;;:6;;;;;;;;;;:22;;;3384:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15768:1:::1;15753:12;:16;15745:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15829:36;15859:5;15829:25;15841:12;4856:21;15829:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;15814:12;:51;;;;15881:32;15900:12;;15881:32;;;;;;:::i;:::-;;;;;;;;15666:255:::0;:::o;7023:143::-;7104:7;7131:11;:18;7143:5;7131:18;;;;;;;;;;;;;;;:27;7150:7;7131:27;;;;;;;;;;;;;;;;7124:34;;7023:143;;;;:::o;11280:791::-;3402:12;:10;:12::i;:::-;3392:22;;:6;;;;;;;;;;:22;;;3384:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11345:11:::1;;;;;;;;;;;11344:12;11336:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11394:35;11451:42;11394:100;;11523:16;11505:15;;:34;;;;;;;;;;;;;;;;;;11550:58;11567:4;11582:15;;;;;;;;;;;4856:21;11550:8;:58::i;:::-;11653:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11635:56;;;11700:4;11707:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11635:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11619:13;;:112;;;;;;;;;;;;;;;;;;11742:15;;;;;;;;;;;:31;;;11781:21;11812:4;11818:24;11836:4;11818:9;:24::i;:::-;11843:1;11845::::0;11847:7:::1;:5;:7::i;:::-;11855:15;11742:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11903:4;11882:18;;:25;;;;;;;;;;;;;;;;;;11940:4;11918:19;;:26;;;;;;;;;;;;;;;;;;11970:11;11955:12;:26;;;;11999:13;;;;;;;;;;;11992:29;;;12030:15;;;;;;;;;;;12048:14;11992:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3462:1;11280:791::o:0;15446:212::-;3402:12;:10;:12::i;:::-;3392:22;;:6;;;;;;;;;;:22;;;3384:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15535:1:::1;15526:6;:10;15518:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;15596:6;15581:12;:21;;;;15618:32;15637:12;;15618:32;;;;;;:::i;:::-;;;;;;;;15446:212:::0;:::o;983:98::-;1036:7;1063:10;1056:17;;983:98;:::o;8507:335::-;8617:1;8600:19;;:5;:19;;;;8592:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8698:1;8679:21;;:7;:21;;;;8671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8780:6;8750:11;:18;8762:5;8750:18;;;;;;;;;;;;;;;:27;8769:7;8750:27;;;;;;;;;;;;;;;:36;;;;8818:7;8802:32;;8811:5;8802:32;;;8827:6;8802:32;;;;;;:::i;:::-;;;;;;;;8507:335;;;:::o;8850:1757::-;8954:1;8938:18;;:4;:18;;;;8930:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9031:1;9017:16;;:2;:16;;;;9009:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9101:1;9092:6;:10;9084:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9173:7;:5;:7::i;:::-;9165:15;;:4;:15;;;;:32;;;;;9190:7;:5;:7::i;:::-;9184:13;;:2;:13;;;;9165:32;9161:1242;;;9232:12;;9222:6;:22;;9214:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;9319:13;;;;;;;;;;;9311:21;;:4;:21;;;:55;;;;;9350:15;;;;;;;;;;;9336:30;;:2;:30;;;;9311:55;:83;;;;;9372:18;:22;9391:2;9372:22;;;;;;;;;;;;;;;;;;;;;;;;;9370:24;9311:83;:105;;;;;9398:18;;;;;;;;;;;9311:105;9307:362;;;9445:11;;;;;;;;;;;9437:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9527:15;9512:8;:12;9521:2;9512:12;;;;;;;;;;;;;;;;:30;9504:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9642:10;9623:15;:30;;;;:::i;:::-;9608:8;:12;9617:2;9608:12;;;;;;;;;;;;;;;:45;;;;9307:362;9683:28;9714:24;9732:4;9714:9;:24::i;:::-;9683:55;;9788:6;;;;;;;;;;;9787:7;:32;;;;;9806:13;;;;;;;;;;;9798:21;;:4;:21;;;;9787:32;:47;;;;;9823:11;;;;;;;;;;;9787:47;9783:609;;;9873:11;9863:6;:21;;9855:30;;;;;;9907:19;;;;;;;;;;;9904:224;;;9976:15;9959:8;:14;9968:4;9959:14;;;;;;;;;;;;;;;;:32;9951:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10097:10;10078:15;:30;;;;:::i;:::-;10061:8;:14;10070:4;10061:14;;;;;;;;;;;;;;;:47;;;;9904:224;10146:38;10163:20;10146:16;:38::i;:::-;10203:26;10232:21;10203:50;;10296:1;10275:18;:22;10272:105;;;10322:35;10335:21;10322:12;:35::i;:::-;10272:105;9783:609;;9161:1242;;10413:12;10428:4;10413:19;;10448:18;:24;10467:4;10448:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10476:18;:22;10495:2;10476:22;;;;;;;;;;;;;;;;;;;;;;;;;10448:50;10445:96;;;10524:5;10514:15;;10445:96;10561:38;10576:4;10581:2;10584:6;10591:7;10561:14;:38::i;:::-;8850:1757;;;;:::o;2120:190::-;2206:7;2239:1;2234;:6;;2242:12;2226:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2266:9;2282:1;2278;:5;;;;:::i;:::-;2266:17;;2301:1;2294:8;;;2120:190;;;;;:::o;11114:158::-;11171:11;;;;;;;;;;;:20;;:35;11192:13;11203:1;11192:6;:10;;:13;;;;:::i;:::-;11171:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11217:23;;;;;;;;;;;:32;;:47;11250:13;11261:1;11250:6;:10;;:13;;;;:::i;:::-;11217:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11114:158;:::o;7900:254::-;7967:7;8006;;7995;:18;;7987:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8071:19;8094:10;:8;:10::i;:::-;8071:33;;8122:24;8134:11;8122:7;:11;;:24;;;;:::i;:::-;8115:31;;;7900:254;;;:::o;10615:483::-;5771:4;5762:6;;:13;;;;;;;;;;;;;;;;;;10693:21:::1;10731:1;10717:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10693:40;;10762:4;10744;10749:1;10744:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10788:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10778:4;10783:1;10778:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10821:62;10838:4;10853:15;;;;;;;;;;;10871:11;10821:8;:62::i;:::-;10894:15;;;;;;;;;;;:66;;;10975:11;11001:1;11017:4;11044;11064:15;10894:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5786:1;5807:5:::0;5798:6;;:14;;;;;;;;;;;;;;;;;;10615:483;:::o;2318:246::-;2376:7;2405:1;2400;:6;2396:47;;;2430:1;2423:8;;;;2396:47;2453:9;2469:1;2465;:5;;;;:::i;:::-;2453:17;;2498:1;2493;2489;:5;;;;:::i;:::-;:10;2481:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2555:1;2548:8;;;2318:246;;;;;:::o;2572:132::-;2630:7;2657:39;2661:1;2664;2657:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2650:46;;2572:132;;;;:::o;12573:263::-;12685:7;12681:40;;12707:14;:12;:14::i;:::-;12681:40;12732:44;12750:6;12758:9;12769:6;12732:17;:44::i;:::-;12791:7;12787:41;;12813:15;:13;:15::i;:::-;12787:41;12573:263;;;;:::o;15005:163::-;15046:7;15067:15;15084;15103:19;:17;:19::i;:::-;15066:56;;;;15140:20;15152:7;15140;:11;;:20;;;;:::i;:::-;15133:27;;;;15005:163;:::o;2712:189::-;2798:7;2830:1;2826;:5;2833:12;2818:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2857:9;2873:1;2869;:5;;;;:::i;:::-;2857:17;;2892:1;2885:8;;;2712:189;;;;;:::o;8162:210::-;8219:1;8208:7;;:12;:29;;;;;8236:1;8224:8;;:13;8208:29;8205:41;;;8239:7;;8205:41;8274:7;;8256:15;:25;;;;8311:8;;8292:16;:27;;;;8340:1;8330:7;:11;;;;8363:1;8352:8;:12;;;;8162:210;:::o;12844:489::-;12943:15;12960:23;12985:12;12999:23;13024:12;13038:13;13055:19;13066:7;13055:10;:19::i;:::-;12942:132;;;;;;;;;;;;13103:28;13123:7;13103;:15;13111:6;13103:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13085:7;:15;13093:6;13085:15;;;;;;;;;;;;;;;:46;;;;13163:39;13186:15;13163:7;:18;13171:9;13163:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13142:7;:18;13150:9;13142:18;;;;;;;;;;;;;;;:60;;;;13214:16;13224:5;13214:9;:16::i;:::-;13242:23;13254:4;13260;13242:11;:23::i;:::-;13298:9;13281:44;;13290:6;13281:44;;;13309:15;13281:44;;;;;;:::i;:::-;;;;;;;;12844:489;;;;;;;;;:::o;8384:115::-;8438:15;;8428:7;:25;;;;8475:16;;8464:8;:27;;;;8384:115::o;15176:262::-;15226:7;15235;15255:15;15273:7;;15255:25;;15291:15;4856:21;15291:25;;15347:20;4856:21;15347:7;;:11;;:20;;;;:::i;:::-;15337:7;:30;15333:61;;;15377:7;;4856:21;15369:25;;;;;;;;15333:61;15413:7;15422;15405:25;;;;;;15176:262;;;:::o;13753:468::-;13812:7;13821;13830;13839;13848;13857;13878:23;13903:12;13917:13;13934:39;13946:7;13955;;13964:8;;13934:11;:39::i;:::-;13877:96;;;;;;13984:19;14007:10;:8;:10::i;:::-;13984:33;;14029:15;14046:23;14071:12;14087:46;14099:7;14108:4;14114:5;14121:11;14087;:46::i;:::-;14028:105;;;;;;14152:7;14161:15;14178:4;14184:15;14201:4;14207:5;14144:69;;;;;;;;;;;;;;;;;;;13753:468;;;;;;;:::o;1976:136::-;2034:7;2061:43;2065:1;2068;2061:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2054:50;;1976:136;;;;:::o;1789:179::-;1847:7;1867:9;1883:1;1879;:5;;;;:::i;:::-;1867:17;;1908:1;1903;:6;;1895:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1959:1;1952:8;;;1789:179;;;;:::o;13341:212::-;13394:19;13417:10;:8;:10::i;:::-;13394:33;;13438:13;13454:22;13464:11;13454:5;:9;;:22;;;;:::i;:::-;13438:38;;13512:33;13539:5;13512:7;:22;13528:4;13512:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13487:7;:22;13503:4;13487:22;;;;;;;;;;;;;;;:58;;;;13341:212;;;:::o;13561:147::-;13639:17;13651:4;13639:7;;:11;;:17;;;;:::i;:::-;13629:7;:27;;;;13680:20;13695:4;13680:10;;:14;;:20;;;;:::i;:::-;13667:10;:33;;;;13561:147;;:::o;14229:351::-;14322:7;14331;14340;14360:12;14375:28;14399:3;14375:19;14387:6;14375:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14360:43;;14414:13;14430:29;14455:3;14430:20;14442:7;14430;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14414:45;;14470:23;14496:28;14518:5;14496:17;14508:4;14496:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14470:54;;14543:15;14560:4;14566:5;14535:37;;;;;;;;;14229:351;;;;;;;:::o;14588:409::-;14698:7;14707;14716;14736:15;14754:24;14766:11;14754:7;:11;;:24;;;;:::i;:::-;14736:42;;14789:12;14804:21;14813:11;14804:4;:8;;:21;;;;:::i;:::-;14789:36;;14836:13;14852:22;14862:11;14852:5;:9;;:22;;;;:::i;:::-;14836:38;;14885:23;14911:28;14933:5;14911:17;14923:4;14911:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14885:54;;14958:7;14967:15;14984:4;14950:39;;;;;;;;;;14588:409;;;;;;;;:::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:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;635:87;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;791:80;;;;:::o;877:262::-;936:6;985:2;973:9;964:7;960:23;956:32;953:2;;;1001:1;998;991:12;953:2;1044:1;1069:53;1114:7;1105:6;1094:9;1090:22;1069:53;:::i;:::-;1059:63;;1015:117;943:196;;;;:::o;1145:284::-;1215:6;1264:2;1252:9;1243:7;1239:23;1235:32;1232:2;;;1280:1;1277;1270:12;1232:2;1323:1;1348:64;1404:7;1395:6;1384:9;1380:22;1348:64;:::i;:::-;1338:74;;1294:128;1222:207;;;;:::o;1435:407::-;1503:6;1511;1560:2;1548:9;1539:7;1535:23;1531:32;1528:2;;;1576:1;1573;1566:12;1528:2;1619:1;1644:53;1689:7;1680:6;1669:9;1665:22;1644:53;:::i;:::-;1634:63;;1590:117;1746:2;1772:53;1817:7;1808:6;1797:9;1793:22;1772:53;:::i;:::-;1762:63;;1717:118;1518:324;;;;;:::o;1848:552::-;1925:6;1933;1941;1990:2;1978:9;1969:7;1965:23;1961:32;1958:2;;;2006:1;2003;1996:12;1958:2;2049:1;2074:53;2119:7;2110:6;2099:9;2095:22;2074:53;:::i;:::-;2064:63;;2020:117;2176:2;2202:53;2247:7;2238:6;2227:9;2223:22;2202:53;:::i;:::-;2192:63;;2147:118;2304:2;2330:53;2375:7;2366:6;2355:9;2351:22;2330:53;:::i;:::-;2320:63;;2275:118;1948:452;;;;;:::o;2406:407::-;2474:6;2482;2531:2;2519:9;2510:7;2506:23;2502:32;2499:2;;;2547:1;2544;2537:12;2499:2;2590:1;2615:53;2660:7;2651:6;2640:9;2636:22;2615:53;:::i;:::-;2605:63;;2561:117;2717:2;2743:53;2788:7;2779:6;2768:9;2764:22;2743:53;:::i;:::-;2733:63;;2688:118;2489:324;;;;;:::o;2819:256::-;2875:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:2;;;2940:1;2937;2930:12;2892:2;2983:1;3008:50;3050:7;3041:6;3030:9;3026:22;3008:50;:::i;:::-;2998:60;;2954:114;2882:193;;;;:::o;3081:278::-;3148:6;3197:2;3185:9;3176:7;3172:23;3168:32;3165:2;;;3213:1;3210;3203:12;3165:2;3256:1;3281:61;3334:7;3325:6;3314:9;3310:22;3281:61;:::i;:::-;3271:71;;3227:125;3155:204;;;;:::o;3365:262::-;3424:6;3473:2;3461:9;3452:7;3448:23;3444:32;3441:2;;;3489:1;3486;3479:12;3441:2;3532:1;3557:53;3602:7;3593:6;3582:9;3578:22;3557:53;:::i;:::-;3547:63;;3503:117;3431:196;;;;:::o;3633:596::-;3721:6;3729;3737;3786:2;3774:9;3765:7;3761:23;3757:32;3754:2;;;3802:1;3799;3792:12;3754:2;3845:1;3870:64;3926:7;3917:6;3906:9;3902:22;3870:64;:::i;:::-;3860:74;;3816:128;3983:2;4009:64;4065:7;4056:6;4045:9;4041:22;4009:64;:::i;:::-;3999:74;;3954:129;4122:2;4148:64;4204:7;4195:6;4184:9;4180:22;4148:64;:::i;:::-;4138:74;;4093:129;3744:485;;;;;:::o;4235:179::-;4304:10;4325:46;4367:3;4359:6;4325:46;:::i;:::-;4403:4;4398:3;4394:14;4380:28;;4315:99;;;;:::o;4420:108::-;4497:24;4515:5;4497:24;:::i;:::-;4492:3;4485:37;4475:53;;:::o;4534:118::-;4621:24;4639:5;4621:24;:::i;:::-;4616:3;4609:37;4599:53;;:::o;4688:732::-;4807:3;4836:54;4884:5;4836:54;:::i;:::-;4906:86;4985:6;4980:3;4906:86;:::i;:::-;4899:93;;5016:56;5066:5;5016:56;:::i;:::-;5095:7;5126:1;5111:284;5136:6;5133:1;5130:13;5111:284;;;5212:6;5206:13;5239:63;5298:3;5283:13;5239:63;:::i;:::-;5232:70;;5325:60;5378:6;5325:60;:::i;:::-;5315:70;;5171:224;5158:1;5155;5151:9;5146:14;;5111:284;;;5115:14;5411:3;5404:10;;4812:608;;;;;;;:::o;5426:109::-;5507:21;5522:5;5507:21;:::i;:::-;5502:3;5495:34;5485:50;;:::o;5541:147::-;5636:45;5675:5;5636:45;:::i;:::-;5631:3;5624:58;5614:74;;:::o;5694:364::-;5782:3;5810:39;5843:5;5810:39;:::i;:::-;5865:71;5929:6;5924:3;5865:71;:::i;:::-;5858:78;;5945:52;5990:6;5985:3;5978:4;5971:5;5967:16;5945:52;:::i;:::-;6022:29;6044:6;6022:29;:::i;:::-;6017:3;6013:39;6006:46;;5786:272;;;;;:::o;6064:366::-;6206:3;6227:67;6291:2;6286:3;6227:67;:::i;:::-;6220:74;;6303:93;6392:3;6303:93;:::i;:::-;6421:2;6416:3;6412:12;6405:19;;6210:220;;;:::o;6436:366::-;6578:3;6599:67;6663:2;6658:3;6599:67;:::i;:::-;6592:74;;6675:93;6764:3;6675:93;:::i;:::-;6793:2;6788:3;6784:12;6777:19;;6582:220;;;:::o;6808:366::-;6950:3;6971:67;7035:2;7030:3;6971:67;:::i;:::-;6964:74;;7047:93;7136:3;7047:93;:::i;:::-;7165:2;7160:3;7156:12;7149:19;;6954:220;;;:::o;7180:366::-;7322:3;7343:67;7407:2;7402:3;7343:67;:::i;:::-;7336:74;;7419:93;7508:3;7419:93;:::i;:::-;7537:2;7532:3;7528:12;7521:19;;7326:220;;;:::o;7552:366::-;7694:3;7715:67;7779:2;7774:3;7715:67;:::i;:::-;7708:74;;7791:93;7880:3;7791:93;:::i;:::-;7909:2;7904:3;7900:12;7893:19;;7698:220;;;:::o;7924:366::-;8066:3;8087:67;8151:2;8146:3;8087:67;:::i;:::-;8080:74;;8163:93;8252:3;8163:93;:::i;:::-;8281:2;8276:3;8272:12;8265:19;;8070:220;;;:::o;8296:366::-;8438:3;8459:67;8523:2;8518:3;8459:67;:::i;:::-;8452:74;;8535:93;8624:3;8535:93;:::i;:::-;8653:2;8648:3;8644:12;8637:19;;8442:220;;;:::o;8668:366::-;8810:3;8831:67;8895:2;8890:3;8831:67;:::i;:::-;8824:74;;8907:93;8996:3;8907:93;:::i;:::-;9025:2;9020:3;9016:12;9009:19;;8814:220;;;:::o;9040:366::-;9182:3;9203:67;9267:2;9262:3;9203:67;:::i;:::-;9196:74;;9279:93;9368:3;9279:93;:::i;:::-;9397:2;9392:3;9388:12;9381:19;;9186:220;;;:::o;9412:366::-;9554:3;9575:67;9639:2;9634:3;9575:67;:::i;:::-;9568:74;;9651:93;9740:3;9651:93;:::i;:::-;9769:2;9764:3;9760:12;9753:19;;9558:220;;;:::o;9784:366::-;9926:3;9947:67;10011:2;10006:3;9947:67;:::i;:::-;9940:74;;10023:93;10112:3;10023:93;:::i;:::-;10141:2;10136:3;10132:12;10125:19;;9930:220;;;:::o;10156:366::-;10298:3;10319:67;10383:2;10378:3;10319:67;:::i;:::-;10312:74;;10395:93;10484:3;10395:93;:::i;:::-;10513:2;10508:3;10504:12;10497:19;;10302:220;;;:::o;10528:366::-;10670:3;10691:67;10755:2;10750:3;10691:67;:::i;:::-;10684:74;;10767:93;10856:3;10767:93;:::i;:::-;10885:2;10880:3;10876:12;10869:19;;10674:220;;;:::o;10900:366::-;11042:3;11063:67;11127:2;11122:3;11063:67;:::i;:::-;11056:74;;11139:93;11228:3;11139:93;:::i;:::-;11257:2;11252:3;11248:12;11241:19;;11046:220;;;:::o;11272:118::-;11359:24;11377:5;11359:24;:::i;:::-;11354:3;11347:37;11337:53;;:::o;11396:112::-;11479:22;11495:5;11479:22;:::i;:::-;11474:3;11467:35;11457:51;;:::o;11514:222::-;11607:4;11645:2;11634:9;11630:18;11622:26;;11658:71;11726:1;11715:9;11711:17;11702:6;11658:71;:::i;:::-;11612:124;;;;:::o;11742:332::-;11863:4;11901:2;11890:9;11886:18;11878:26;;11914:71;11982:1;11971:9;11967:17;11958:6;11914:71;:::i;:::-;11995:72;12063:2;12052:9;12048:18;12039:6;11995:72;:::i;:::-;11868:206;;;;;:::o;12080:332::-;12201:4;12239:2;12228:9;12224:18;12216:26;;12252:71;12320:1;12309:9;12305:17;12296:6;12252:71;:::i;:::-;12333:72;12401:2;12390:9;12386:18;12377:6;12333:72;:::i;:::-;12206:206;;;;;:::o;12418:807::-;12667:4;12705:3;12694:9;12690:19;12682:27;;12719:71;12787:1;12776:9;12772:17;12763:6;12719:71;:::i;:::-;12800:72;12868:2;12857:9;12853:18;12844:6;12800:72;:::i;:::-;12882:80;12958:2;12947:9;12943:18;12934:6;12882:80;:::i;:::-;12972;13048:2;13037:9;13033:18;13024:6;12972:80;:::i;:::-;13062:73;13130:3;13119:9;13115:19;13106:6;13062:73;:::i;:::-;13145;13213:3;13202:9;13198:19;13189:6;13145:73;:::i;:::-;12672:553;;;;;;;;;:::o;13231:210::-;13318:4;13356:2;13345:9;13341:18;13333:26;;13369:65;13431:1;13420:9;13416:17;13407:6;13369:65;:::i;:::-;13323:118;;;;:::o;13447:313::-;13560:4;13598:2;13587:9;13583:18;13575:26;;13647:9;13641:4;13637:20;13633:1;13622:9;13618:17;13611:47;13675:78;13748:4;13739:6;13675:78;:::i;:::-;13667:86;;13565:195;;;;:::o;13766:419::-;13932:4;13970:2;13959:9;13955:18;13947:26;;14019:9;14013:4;14009:20;14005:1;13994:9;13990:17;13983:47;14047:131;14173:4;14047:131;:::i;:::-;14039:139;;13937:248;;;:::o;14191:419::-;14357:4;14395:2;14384:9;14380:18;14372:26;;14444:9;14438:4;14434:20;14430:1;14419:9;14415:17;14408:47;14472:131;14598:4;14472:131;:::i;:::-;14464:139;;14362:248;;;:::o;14616:419::-;14782:4;14820:2;14809:9;14805:18;14797:26;;14869:9;14863:4;14859:20;14855:1;14844:9;14840:17;14833:47;14897:131;15023:4;14897:131;:::i;:::-;14889:139;;14787:248;;;:::o;15041:419::-;15207:4;15245:2;15234:9;15230:18;15222:26;;15294:9;15288:4;15284:20;15280:1;15269:9;15265:17;15258:47;15322:131;15448:4;15322:131;:::i;:::-;15314:139;;15212:248;;;:::o;15466:419::-;15632:4;15670:2;15659:9;15655:18;15647:26;;15719:9;15713:4;15709:20;15705:1;15694:9;15690:17;15683:47;15747:131;15873:4;15747:131;:::i;:::-;15739:139;;15637:248;;;:::o;15891:419::-;16057:4;16095:2;16084:9;16080:18;16072:26;;16144:9;16138:4;16134:20;16130:1;16119:9;16115:17;16108:47;16172:131;16298:4;16172:131;:::i;:::-;16164:139;;16062:248;;;:::o;16316:419::-;16482:4;16520:2;16509:9;16505:18;16497:26;;16569:9;16563:4;16559:20;16555:1;16544:9;16540:17;16533:47;16597:131;16723:4;16597:131;:::i;:::-;16589:139;;16487:248;;;:::o;16741:419::-;16907:4;16945:2;16934:9;16930:18;16922:26;;16994:9;16988:4;16984:20;16980:1;16969:9;16965:17;16958:47;17022:131;17148:4;17022:131;:::i;:::-;17014:139;;16912:248;;;:::o;17166:419::-;17332:4;17370:2;17359:9;17355:18;17347:26;;17419:9;17413:4;17409:20;17405:1;17394:9;17390:17;17383:47;17447:131;17573:4;17447:131;:::i;:::-;17439:139;;17337:248;;;:::o;17591:419::-;17757:4;17795:2;17784:9;17780:18;17772:26;;17844:9;17838:4;17834:20;17830:1;17819:9;17815:17;17808:47;17872:131;17998:4;17872:131;:::i;:::-;17864:139;;17762:248;;;:::o;18016:419::-;18182:4;18220:2;18209:9;18205:18;18197:26;;18269:9;18263:4;18259:20;18255:1;18244:9;18240:17;18233:47;18297:131;18423:4;18297:131;:::i;:::-;18289:139;;18187:248;;;:::o;18441:419::-;18607:4;18645:2;18634:9;18630:18;18622:26;;18694:9;18688:4;18684:20;18680:1;18669:9;18665:17;18658:47;18722:131;18848:4;18722:131;:::i;:::-;18714:139;;18612:248;;;:::o;18866:419::-;19032:4;19070:2;19059:9;19055:18;19047:26;;19119:9;19113:4;19109:20;19105:1;19094:9;19090:17;19083:47;19147:131;19273:4;19147:131;:::i;:::-;19139:139;;19037:248;;;:::o;19291:419::-;19457:4;19495:2;19484:9;19480:18;19472:26;;19544:9;19538:4;19534:20;19530:1;19519:9;19515:17;19508:47;19572:131;19698:4;19572:131;:::i;:::-;19564:139;;19462:248;;;:::o;19716:222::-;19809:4;19847:2;19836:9;19832:18;19824:26;;19860:71;19928:1;19917:9;19913:17;19904:6;19860:71;:::i;:::-;19814:124;;;;:::o;19944:831::-;20207:4;20245:3;20234:9;20230:19;20222:27;;20259:71;20327:1;20316:9;20312:17;20303:6;20259:71;:::i;:::-;20340:80;20416:2;20405:9;20401:18;20392:6;20340:80;:::i;:::-;20467:9;20461:4;20457:20;20452:2;20441:9;20437:18;20430:48;20495:108;20598:4;20589:6;20495:108;:::i;:::-;20487:116;;20613:72;20681:2;20670:9;20666:18;20657:6;20613:72;:::i;:::-;20695:73;20763:3;20752:9;20748:19;20739:6;20695:73;:::i;:::-;20212:563;;;;;;;;:::o;20781:214::-;20870:4;20908:2;20897:9;20893:18;20885:26;;20921:67;20985:1;20974:9;20970:17;20961:6;20921:67;:::i;:::-;20875:120;;;;:::o;21001:132::-;21068:4;21091:3;21083:11;;21121:4;21116:3;21112:14;21104:22;;21073:60;;;:::o;21139:114::-;21206:6;21240:5;21234:12;21224:22;;21213:40;;;:::o;21259:99::-;21311:6;21345:5;21339:12;21329:22;;21318:40;;;:::o;21364:113::-;21434:4;21466;21461:3;21457:14;21449:22;;21439:38;;;:::o;21483:184::-;21582:11;21616:6;21611:3;21604:19;21656:4;21651:3;21647:14;21632:29;;21594:73;;;;:::o;21673:169::-;21757:11;21791:6;21786:3;21779:19;21831:4;21826:3;21822:14;21807:29;;21769:73;;;;:::o;21848:305::-;21888:3;21907:20;21925:1;21907:20;:::i;:::-;21902:25;;21941:20;21959:1;21941:20;:::i;:::-;21936:25;;22095:1;22027:66;22023:74;22020:1;22017:81;22014:2;;;22101:18;;:::i;:::-;22014:2;22145:1;22142;22138:9;22131:16;;21892:261;;;;:::o;22159:185::-;22199:1;22216:20;22234:1;22216:20;:::i;:::-;22211:25;;22250:20;22268:1;22250:20;:::i;:::-;22245:25;;22289:1;22279:2;;22294:18;;:::i;:::-;22279:2;22336:1;22333;22329:9;22324:14;;22201:143;;;;:::o;22350:348::-;22390:7;22413:20;22431:1;22413:20;:::i;:::-;22408:25;;22447:20;22465:1;22447:20;:::i;:::-;22442:25;;22635:1;22567:66;22563:74;22560:1;22557:81;22552:1;22545:9;22538:17;22534:105;22531:2;;;22642:18;;:::i;:::-;22531:2;22690:1;22687;22683:9;22672:20;;22398:300;;;;:::o;22704:191::-;22744:4;22764:20;22782:1;22764:20;:::i;:::-;22759:25;;22798:20;22816:1;22798:20;:::i;:::-;22793:25;;22837:1;22834;22831:8;22828:2;;;22842:18;;:::i;:::-;22828:2;22887:1;22884;22880:9;22872:17;;22749:146;;;;:::o;22901:96::-;22938:7;22967:24;22985:5;22967:24;:::i;:::-;22956:35;;22946:51;;;:::o;23003:90::-;23037:7;23080:5;23073:13;23066:21;23055:32;;23045:48;;;:::o;23099:126::-;23136:7;23176:42;23169:5;23165:54;23154:65;;23144:81;;;:::o;23231:77::-;23268:7;23297:5;23286:16;;23276:32;;;:::o;23314:86::-;23349:7;23389:4;23382:5;23378:16;23367:27;;23357:43;;;:::o;23406:121::-;23464:9;23497:24;23515:5;23497:24;:::i;:::-;23484:37;;23474:53;;;:::o;23533:307::-;23601:1;23611:113;23625:6;23622:1;23619:13;23611:113;;;23710:1;23705:3;23701:11;23695:18;23691:1;23686:3;23682:11;23675:39;23647:2;23644:1;23640:10;23635:15;;23611:113;;;23742:6;23739:1;23736:13;23733:2;;;23822:1;23813:6;23808:3;23804:16;23797:27;23733:2;23582:258;;;;:::o;23846:180::-;23894:77;23891:1;23884:88;23991:4;23988:1;23981:15;24015:4;24012:1;24005:15;24032:180;24080:77;24077:1;24070:88;24177:4;24174:1;24167:15;24201:4;24198:1;24191:15;24218:102;24259:6;24310:2;24306:7;24301:2;24294:5;24290:14;24286:28;24276:38;;24266:54;;;:::o;24326:222::-;24466:34;24462:1;24454:6;24450:14;24443:58;24535:5;24530:2;24522:6;24518:15;24511:30;24432:116;:::o;24554:229::-;24694:34;24690:1;24682:6;24678:14;24671:58;24763:12;24758:2;24750:6;24746:15;24739:37;24660:123;:::o;24789:221::-;24929:34;24925:1;24917:6;24913:14;24906:58;24998:4;24993:2;24985:6;24981:15;24974:29;24895:115;:::o;25016:177::-;25156:29;25152:1;25144:6;25140:14;25133:53;25122:71;:::o;25199:179::-;25339:31;25335:1;25327:6;25323:14;25316:55;25305:73;:::o;25384:229::-;25524:34;25520:1;25512:6;25508:14;25501:58;25593:12;25588:2;25580:6;25576:15;25569:37;25490:123;:::o;25619:220::-;25759:34;25755:1;25747:6;25743:14;25736:58;25828:3;25823:2;25815:6;25811:15;25804:28;25725:114;:::o;25845:182::-;25985:34;25981:1;25973:6;25969:14;25962:58;25951:76;:::o;26033:228::-;26173:34;26169:1;26161:6;26157:14;26150:58;26242:11;26237:2;26229:6;26225:15;26218:36;26139:122;:::o;26267:224::-;26407:34;26403:1;26395:6;26391:14;26384:58;26476:7;26471:2;26463:6;26459:15;26452:32;26373:118;:::o;26497:223::-;26637:34;26633:1;26625:6;26621:14;26614:58;26706:6;26701:2;26693:6;26689:15;26682:31;26603:117;:::o;26726:166::-;26866:18;26862:1;26854:6;26850:14;26843:42;26832:60;:::o;26898:173::-;27038:25;27034:1;27026:6;27022:14;27015:49;27004:67;:::o;27077:174::-;27217:26;27213:1;27205:6;27201:14;27194:50;27183:68;:::o;27257:122::-;27330:24;27348:5;27330:24;:::i;:::-;27323:5;27320:35;27310:2;;27369:1;27366;27359:12;27310:2;27300:79;:::o;27385:116::-;27455:21;27470:5;27455:21;:::i;:::-;27448:5;27445:32;27435:2;;27491:1;27488;27481:12;27435:2;27425:76;:::o;27507:122::-;27580:24;27598:5;27580:24;:::i;:::-;27573:5;27570:35;27560:2;;27619:1;27616;27609:12;27560:2;27550:79;:::o

Swarm Source

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