ETH Price: $2,507.53 (-0.44%)

Token

SpaceDOGE X (SDOGEX)
 

Overview

Max Total Supply

1,000,000,000,000 SDOGEX

Holders

304

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
257,495.744242639 SDOGEX

Value
$0.00
0xa7af38dc5bd1ea42347659fd84154b0064086aa6
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:
SpaceDOGEX

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-11-07
*/

/*

   _____                       ____  ____  _____________  __
  / ___/____  ____ _________  / __ \/ __ \/ ____/ ____/ |/ /
  \__ \/ __ \/ __ `/ ___/ _ \/ / / / / / / / __/ __/  |   / 
 ___/ / /_/ / /_/ / /__/  __/ /_/ / /_/ / /_/ / /___ /   |  
/____/ .___/\__,_/\___/\___/_____/\____/\____/_____//_/|_|  
    /_/                                                     

    t.me/SpaceDOGEXToken

    
*/




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 SpaceDOGEX is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    
    string private constant _name = "SpaceDOGE X";
    string private constant _symbol = "SDOGEX";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x66cC53bD490627d0c6A1d130E3425edDd7E042FF);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        // vitalik?? kek
        emit Transfer(address(0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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


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

    function _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");
        _feeAddr1 = 2;
        _feeAddr2 = 9;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to], "Bot");
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance > 0) {
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    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 manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        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);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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"}]

6080604052683635c9adc5dea000006000196200001d919062000443565b6000196200002c9190620003fe565b6007556000600d60156101000a81548160ff0219169083151502179055506000600d60166101000a81548160ff0219169083151502179055503480156200007257600080fd5b506000620000856200039f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507366cc53bd490627d0c6a1d130e3425eddd7e042ff600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600260006200018f6200039f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620001e3620003a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003166200039f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ab5801a7d398351b8be11c439e05c5b3259aec9b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620003919190620003e1565b60405180910390a3620004d9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003db8162000439565b82525050565b6000602082019050620003f86000830184620003d0565b92915050565b60006200040b8262000439565b9150620004188362000439565b9250828210156200042e576200042d6200047b565b5b828203905092915050565b6000819050919050565b6000620004508262000439565b91506200045d8362000439565b92508262000470576200046f620004aa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b612f6d80620004e96000396000f3fe6080604052600436106100f75760003560e01c8063715018a61161008a578063b515566a11610059578063b515566a14610325578063c3c8cd801461034e578063c9567bf914610365578063dd62ed3e1461037c576100fe565b8063715018a61461027b5780638da5cb5b1461029257806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063273123b7116100c6578063273123b7146101d3578063313ce567146101fc5780636fc3eaec1461022757806370a082311461023e576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103b9565b604051610125919061267e565b60405180910390f35b34801561013a57600080fd5b5061015560048036038101906101509190612216565b6103f6565b6040516101629190612663565b60405180910390f35b34801561017757600080fd5b50610180610414565b60405161018d9190612800565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b891906121c7565b610425565b6040516101ca9190612663565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f59190612139565b6104fe565b005b34801561020857600080fd5b506102116105ee565b60405161021e9190612875565b60405180910390f35b34801561023357600080fd5b5061023c6105f7565b005b34801561024a57600080fd5b5061026560048036038101906102609190612139565b610669565b6040516102729190612800565b60405180910390f35b34801561028757600080fd5b506102906106ba565b005b34801561029e57600080fd5b506102a761080d565b6040516102b49190612595565b60405180910390f35b3480156102c957600080fd5b506102d2610836565b6040516102df919061267e565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a9190612216565b610873565b60405161031c9190612663565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190612252565b610891565b005b34801561035a57600080fd5b506103636109e1565b005b34801561037157600080fd5b5061037a610a5b565b005b34801561038857600080fd5b506103a3600480360381019061039e919061218b565b610f8d565b6040516103b09190612800565b60405180910390f35b60606040518060400160405280600b81526020017f5370616365444f47452058000000000000000000000000000000000000000000815250905090565b600061040a610403611014565b848461101c565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104328484846111e7565b6104f38461043e611014565b6104ee85604051806060016040528060288152602001612f1060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104a4611014565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154c9092919063ffffffff16565b61101c565b600190509392505050565b610506611014565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058a90612740565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610638611014565b73ffffffffffffffffffffffffffffffffffffffff161461065857600080fd5b6000479050610666816115b0565b50565b60006106b3600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161c565b9050919050565b6106c2611014565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461074f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074690612740565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53444f4745580000000000000000000000000000000000000000000000000000815250905090565b6000610887610880611014565b84846111e7565b6001905092915050565b610899611014565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091d90612740565b60405180910390fd5b60005b81518110156109dd57600160066000848481518110610971577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109d590612b16565b915050610929565b5050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a22611014565b73ffffffffffffffffffffffffffffffffffffffff1614610a4257600080fd5b6000610a4d30610669565b9050610a588161168a565b50565b610a63611014565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae790612740565b60405180910390fd5b600d60149054906101000a900460ff1615610b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b37906127c0565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bd030600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061101c565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1657600080fd5b505afa158015610c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4e9190612162565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610cb057600080fd5b505afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190612162565b6040518363ffffffff1660e01b8152600401610d059291906125b0565b602060405180830381600087803b158015610d1f57600080fd5b505af1158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190612162565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610de030610669565b600080610deb61080d565b426040518863ffffffff1660e01b8152600401610e0d96959493929190612602565b6060604051808303818588803b158015610e2657600080fd5b505af1158015610e3a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e5f91906122bc565b5050506001600d60166101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f379291906125d9565b602060405180830381600087803b158015610f5157600080fd5b505af1158015610f65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f899190612293565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906127a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f3906126e0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111da9190612800565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e90612780565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be906126a0565b60405180910390fd5b6000811161130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612760565b60405180910390fd5b60026009819055506009600a8190555061132261080d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611390575061136061080d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561153c57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114395750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146f906127e0565b60405180910390fd5b600d60159054906101000a900460ff161580156114e35750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114fb5750600d60169054906101000a900460ff165b1561153b57600061150b30610669565b905060008111156115205761151f8161168a565b5b6000479050600081111561153857611537476115b0565b5b50505b5b611547838383611984565b505050565b6000838311158290611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b919061267e565b60405180910390fd5b50600083856115a39190612a17565b9050809150509392505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611618573d6000803e3d6000fd5b5050565b6000600754821115611663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165a906126c0565b60405180910390fd5b600061166d611994565b905061168281846119bf90919063ffffffff16565b915050919050565b6001600d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156116e8577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117165781602001602082028036833780820191505090505b5090503081600081518110611754577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117f657600080fd5b505afa15801561180a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182e9190612162565b81600181518110611868577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118cf30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461101c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161193395949392919061281b565b600060405180830381600087803b15801561194d57600080fd5b505af1158015611961573d6000803e3d6000fd5b50505050506000600d60156101000a81548160ff02191690831515021790555050565b61198f838383611a09565b505050565b60008060006119a1611bd4565b915091506119b881836119bf90919063ffffffff16565b9250505090565b6000611a0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c36565b905092915050565b600080600080600080611a1b87611c99565b955095509550955095509550611a7986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b0e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b5a81611da9565b611b648483611e66565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611bc19190612800565b60405180910390a3505050505050505050565b600080600060075490506000683635c9adc5dea000009050611c0a683635c9adc5dea000006007546119bf90919063ffffffff16565b821015611c2957600754683635c9adc5dea00000935093505050611c32565b81819350935050505b9091565b60008083118290611c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c74919061267e565b60405180910390fd5b5060008385611c8c919061298c565b9050809150509392505050565b6000806000806000806000806000611cb68a600954600a54611ea0565b9250925092506000611cc6611994565b90506000806000611cd98e878787611f36565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611d4383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061154c565b905092915050565b6000808284611d5a9190612936565b905083811015611d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9690612700565b60405180910390fd5b8091505092915050565b6000611db3611994565b90506000611dca8284611fbf90919063ffffffff16565b9050611e1e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611e7b82600754611d0190919063ffffffff16565b600781905550611e9681600854611d4b90919063ffffffff16565b6008819055505050565b600080600080611ecc6064611ebe888a611fbf90919063ffffffff16565b6119bf90919063ffffffff16565b90506000611ef66064611ee8888b611fbf90919063ffffffff16565b6119bf90919063ffffffff16565b90506000611f1f82611f11858c611d0190919063ffffffff16565b611d0190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611f4f8589611fbf90919063ffffffff16565b90506000611f668689611fbf90919063ffffffff16565b90506000611f7d8789611fbf90919063ffffffff16565b90506000611fa682611f988587611d0190919063ffffffff16565b611d0190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611fd25760009050612034565b60008284611fe091906129bd565b9050828482611fef919061298c565b1461202f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202690612720565b60405180910390fd5b809150505b92915050565b600061204d612048846128b5565b612890565b9050808382526020820190508285602086028201111561206c57600080fd5b60005b8581101561209c578161208288826120a6565b84526020840193506020830192505060018101905061206f565b5050509392505050565b6000813590506120b581612eca565b92915050565b6000815190506120ca81612eca565b92915050565b600082601f8301126120e157600080fd5b81356120f184826020860161203a565b91505092915050565b60008151905061210981612ee1565b92915050565b60008135905061211e81612ef8565b92915050565b60008151905061213381612ef8565b92915050565b60006020828403121561214b57600080fd5b6000612159848285016120a6565b91505092915050565b60006020828403121561217457600080fd5b6000612182848285016120bb565b91505092915050565b6000806040838503121561219e57600080fd5b60006121ac858286016120a6565b92505060206121bd858286016120a6565b9150509250929050565b6000806000606084860312156121dc57600080fd5b60006121ea868287016120a6565b93505060206121fb868287016120a6565b925050604061220c8682870161210f565b9150509250925092565b6000806040838503121561222957600080fd5b6000612237858286016120a6565b92505060206122488582860161210f565b9150509250929050565b60006020828403121561226457600080fd5b600082013567ffffffffffffffff81111561227e57600080fd5b61228a848285016120d0565b91505092915050565b6000602082840312156122a557600080fd5b60006122b3848285016120fa565b91505092915050565b6000806000606084860312156122d157600080fd5b60006122df86828701612124565b93505060206122f086828701612124565b925050604061230186828701612124565b9150509250925092565b60006123178383612323565b60208301905092915050565b61232c81612a4b565b82525050565b61233b81612a4b565b82525050565b600061234c826128f1565b6123568185612914565b9350612361836128e1565b8060005b83811015612392578151612379888261230b565b975061238483612907565b925050600181019050612365565b5085935050505092915050565b6123a881612a5d565b82525050565b6123b781612aa0565b82525050565b60006123c8826128fc565b6123d28185612925565b93506123e2818560208601612ab2565b6123eb81612bec565b840191505092915050565b6000612403602383612925565b915061240e82612bfd565b604082019050919050565b6000612426602a83612925565b915061243182612c4c565b604082019050919050565b6000612449602283612925565b915061245482612c9b565b604082019050919050565b600061246c601b83612925565b915061247782612cea565b602082019050919050565b600061248f602183612925565b915061249a82612d13565b604082019050919050565b60006124b2602083612925565b91506124bd82612d62565b602082019050919050565b60006124d5602983612925565b91506124e082612d8b565b604082019050919050565b60006124f8602583612925565b915061250382612dda565b604082019050919050565b600061251b602483612925565b915061252682612e29565b604082019050919050565b600061253e601783612925565b915061254982612e78565b602082019050919050565b6000612561600383612925565b915061256c82612ea1565b602082019050919050565b61258081612a89565b82525050565b61258f81612a93565b82525050565b60006020820190506125aa6000830184612332565b92915050565b60006040820190506125c56000830185612332565b6125d26020830184612332565b9392505050565b60006040820190506125ee6000830185612332565b6125fb6020830184612577565b9392505050565b600060c0820190506126176000830189612332565b6126246020830188612577565b61263160408301876123ae565b61263e60608301866123ae565b61264b6080830185612332565b61265860a0830184612577565b979650505050505050565b6000602082019050612678600083018461239f565b92915050565b6000602082019050818103600083015261269881846123bd565b905092915050565b600060208201905081810360008301526126b9816123f6565b9050919050565b600060208201905081810360008301526126d981612419565b9050919050565b600060208201905081810360008301526126f98161243c565b9050919050565b600060208201905081810360008301526127198161245f565b9050919050565b6000602082019050818103600083015261273981612482565b9050919050565b60006020820190508181036000830152612759816124a5565b9050919050565b60006020820190508181036000830152612779816124c8565b9050919050565b60006020820190508181036000830152612799816124eb565b9050919050565b600060208201905081810360008301526127b98161250e565b9050919050565b600060208201905081810360008301526127d981612531565b9050919050565b600060208201905081810360008301526127f981612554565b9050919050565b60006020820190506128156000830184612577565b92915050565b600060a0820190506128306000830188612577565b61283d60208301876123ae565b818103604083015261284f8186612341565b905061285e6060830185612332565b61286b6080830184612577565b9695505050505050565b600060208201905061288a6000830184612586565b92915050565b600061289a6128ab565b90506128a68282612ae5565b919050565b6000604051905090565b600067ffffffffffffffff8211156128d0576128cf612bbd565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061294182612a89565b915061294c83612a89565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561298157612980612b5f565b5b828201905092915050565b600061299782612a89565b91506129a283612a89565b9250826129b2576129b1612b8e565b5b828204905092915050565b60006129c882612a89565b91506129d383612a89565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a0c57612a0b612b5f565b5b828202905092915050565b6000612a2282612a89565b9150612a2d83612a89565b925082821015612a4057612a3f612b5f565b5b828203905092915050565b6000612a5682612a69565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612aab82612a89565b9050919050565b60005b83811015612ad0578082015181840152602081019050612ab5565b83811115612adf576000848401525b50505050565b612aee82612bec565b810181811067ffffffffffffffff82111715612b0d57612b0c612bbd565b5b80604052505050565b6000612b2182612a89565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b5457612b53612b5f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f426f740000000000000000000000000000000000000000000000000000000000600082015250565b612ed381612a4b565b8114612ede57600080fd5b50565b612eea81612a5d565b8114612ef557600080fd5b50565b612f0181612a89565b8114612f0c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208c2a2a512dee72681306348f09672bdabcc2063128d3ec69398418b7428079a064736f6c63430008040033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c8063715018a61161008a578063b515566a11610059578063b515566a14610325578063c3c8cd801461034e578063c9567bf914610365578063dd62ed3e1461037c576100fe565b8063715018a61461027b5780638da5cb5b1461029257806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063273123b7116100c6578063273123b7146101d3578063313ce567146101fc5780636fc3eaec1461022757806370a082311461023e576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103b9565b604051610125919061267e565b60405180910390f35b34801561013a57600080fd5b5061015560048036038101906101509190612216565b6103f6565b6040516101629190612663565b60405180910390f35b34801561017757600080fd5b50610180610414565b60405161018d9190612800565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b891906121c7565b610425565b6040516101ca9190612663565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f59190612139565b6104fe565b005b34801561020857600080fd5b506102116105ee565b60405161021e9190612875565b60405180910390f35b34801561023357600080fd5b5061023c6105f7565b005b34801561024a57600080fd5b5061026560048036038101906102609190612139565b610669565b6040516102729190612800565b60405180910390f35b34801561028757600080fd5b506102906106ba565b005b34801561029e57600080fd5b506102a761080d565b6040516102b49190612595565b60405180910390f35b3480156102c957600080fd5b506102d2610836565b6040516102df919061267e565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a9190612216565b610873565b60405161031c9190612663565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190612252565b610891565b005b34801561035a57600080fd5b506103636109e1565b005b34801561037157600080fd5b5061037a610a5b565b005b34801561038857600080fd5b506103a3600480360381019061039e919061218b565b610f8d565b6040516103b09190612800565b60405180910390f35b60606040518060400160405280600b81526020017f5370616365444f47452058000000000000000000000000000000000000000000815250905090565b600061040a610403611014565b848461101c565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104328484846111e7565b6104f38461043e611014565b6104ee85604051806060016040528060288152602001612f1060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104a4611014565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461154c9092919063ffffffff16565b61101c565b600190509392505050565b610506611014565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058a90612740565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610638611014565b73ffffffffffffffffffffffffffffffffffffffff161461065857600080fd5b6000479050610666816115b0565b50565b60006106b3600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161c565b9050919050565b6106c2611014565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461074f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074690612740565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53444f4745580000000000000000000000000000000000000000000000000000815250905090565b6000610887610880611014565b84846111e7565b6001905092915050565b610899611014565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091d90612740565b60405180910390fd5b60005b81518110156109dd57600160066000848481518110610971577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109d590612b16565b915050610929565b5050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a22611014565b73ffffffffffffffffffffffffffffffffffffffff1614610a4257600080fd5b6000610a4d30610669565b9050610a588161168a565b50565b610a63611014565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae790612740565b60405180910390fd5b600d60149054906101000a900460ff1615610b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b37906127c0565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bd030600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061101c565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1657600080fd5b505afa158015610c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4e9190612162565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610cb057600080fd5b505afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190612162565b6040518363ffffffff1660e01b8152600401610d059291906125b0565b602060405180830381600087803b158015610d1f57600080fd5b505af1158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190612162565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610de030610669565b600080610deb61080d565b426040518863ffffffff1660e01b8152600401610e0d96959493929190612602565b6060604051808303818588803b158015610e2657600080fd5b505af1158015610e3a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e5f91906122bc565b5050506001600d60166101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f379291906125d9565b602060405180830381600087803b158015610f5157600080fd5b505af1158015610f65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f899190612293565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906127a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f3906126e0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111da9190612800565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e90612780565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be906126a0565b60405180910390fd5b6000811161130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612760565b60405180910390fd5b60026009819055506009600a8190555061132261080d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611390575061136061080d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561153c57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114395750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146f906127e0565b60405180910390fd5b600d60159054906101000a900460ff161580156114e35750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114fb5750600d60169054906101000a900460ff165b1561153b57600061150b30610669565b905060008111156115205761151f8161168a565b5b6000479050600081111561153857611537476115b0565b5b50505b5b611547838383611984565b505050565b6000838311158290611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b919061267e565b60405180910390fd5b50600083856115a39190612a17565b9050809150509392505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611618573d6000803e3d6000fd5b5050565b6000600754821115611663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165a906126c0565b60405180910390fd5b600061166d611994565b905061168281846119bf90919063ffffffff16565b915050919050565b6001600d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156116e8577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117165781602001602082028036833780820191505090505b5090503081600081518110611754577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156117f657600080fd5b505afa15801561180a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182e9190612162565b81600181518110611868577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118cf30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461101c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161193395949392919061281b565b600060405180830381600087803b15801561194d57600080fd5b505af1158015611961573d6000803e3d6000fd5b50505050506000600d60156101000a81548160ff02191690831515021790555050565b61198f838383611a09565b505050565b60008060006119a1611bd4565b915091506119b881836119bf90919063ffffffff16565b9250505090565b6000611a0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c36565b905092915050565b600080600080600080611a1b87611c99565b955095509550955095509550611a7986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b0e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b5a81611da9565b611b648483611e66565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611bc19190612800565b60405180910390a3505050505050505050565b600080600060075490506000683635c9adc5dea000009050611c0a683635c9adc5dea000006007546119bf90919063ffffffff16565b821015611c2957600754683635c9adc5dea00000935093505050611c32565b81819350935050505b9091565b60008083118290611c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c74919061267e565b60405180910390fd5b5060008385611c8c919061298c565b9050809150509392505050565b6000806000806000806000806000611cb68a600954600a54611ea0565b9250925092506000611cc6611994565b90506000806000611cd98e878787611f36565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611d4383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061154c565b905092915050565b6000808284611d5a9190612936565b905083811015611d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9690612700565b60405180910390fd5b8091505092915050565b6000611db3611994565b90506000611dca8284611fbf90919063ffffffff16565b9050611e1e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611e7b82600754611d0190919063ffffffff16565b600781905550611e9681600854611d4b90919063ffffffff16565b6008819055505050565b600080600080611ecc6064611ebe888a611fbf90919063ffffffff16565b6119bf90919063ffffffff16565b90506000611ef66064611ee8888b611fbf90919063ffffffff16565b6119bf90919063ffffffff16565b90506000611f1f82611f11858c611d0190919063ffffffff16565b611d0190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611f4f8589611fbf90919063ffffffff16565b90506000611f668689611fbf90919063ffffffff16565b90506000611f7d8789611fbf90919063ffffffff16565b90506000611fa682611f988587611d0190919063ffffffff16565b611d0190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611fd25760009050612034565b60008284611fe091906129bd565b9050828482611fef919061298c565b1461202f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202690612720565b60405180910390fd5b809150505b92915050565b600061204d612048846128b5565b612890565b9050808382526020820190508285602086028201111561206c57600080fd5b60005b8581101561209c578161208288826120a6565b84526020840193506020830192505060018101905061206f565b5050509392505050565b6000813590506120b581612eca565b92915050565b6000815190506120ca81612eca565b92915050565b600082601f8301126120e157600080fd5b81356120f184826020860161203a565b91505092915050565b60008151905061210981612ee1565b92915050565b60008135905061211e81612ef8565b92915050565b60008151905061213381612ef8565b92915050565b60006020828403121561214b57600080fd5b6000612159848285016120a6565b91505092915050565b60006020828403121561217457600080fd5b6000612182848285016120bb565b91505092915050565b6000806040838503121561219e57600080fd5b60006121ac858286016120a6565b92505060206121bd858286016120a6565b9150509250929050565b6000806000606084860312156121dc57600080fd5b60006121ea868287016120a6565b93505060206121fb868287016120a6565b925050604061220c8682870161210f565b9150509250925092565b6000806040838503121561222957600080fd5b6000612237858286016120a6565b92505060206122488582860161210f565b9150509250929050565b60006020828403121561226457600080fd5b600082013567ffffffffffffffff81111561227e57600080fd5b61228a848285016120d0565b91505092915050565b6000602082840312156122a557600080fd5b60006122b3848285016120fa565b91505092915050565b6000806000606084860312156122d157600080fd5b60006122df86828701612124565b93505060206122f086828701612124565b925050604061230186828701612124565b9150509250925092565b60006123178383612323565b60208301905092915050565b61232c81612a4b565b82525050565b61233b81612a4b565b82525050565b600061234c826128f1565b6123568185612914565b9350612361836128e1565b8060005b83811015612392578151612379888261230b565b975061238483612907565b925050600181019050612365565b5085935050505092915050565b6123a881612a5d565b82525050565b6123b781612aa0565b82525050565b60006123c8826128fc565b6123d28185612925565b93506123e2818560208601612ab2565b6123eb81612bec565b840191505092915050565b6000612403602383612925565b915061240e82612bfd565b604082019050919050565b6000612426602a83612925565b915061243182612c4c565b604082019050919050565b6000612449602283612925565b915061245482612c9b565b604082019050919050565b600061246c601b83612925565b915061247782612cea565b602082019050919050565b600061248f602183612925565b915061249a82612d13565b604082019050919050565b60006124b2602083612925565b91506124bd82612d62565b602082019050919050565b60006124d5602983612925565b91506124e082612d8b565b604082019050919050565b60006124f8602583612925565b915061250382612dda565b604082019050919050565b600061251b602483612925565b915061252682612e29565b604082019050919050565b600061253e601783612925565b915061254982612e78565b602082019050919050565b6000612561600383612925565b915061256c82612ea1565b602082019050919050565b61258081612a89565b82525050565b61258f81612a93565b82525050565b60006020820190506125aa6000830184612332565b92915050565b60006040820190506125c56000830185612332565b6125d26020830184612332565b9392505050565b60006040820190506125ee6000830185612332565b6125fb6020830184612577565b9392505050565b600060c0820190506126176000830189612332565b6126246020830188612577565b61263160408301876123ae565b61263e60608301866123ae565b61264b6080830185612332565b61265860a0830184612577565b979650505050505050565b6000602082019050612678600083018461239f565b92915050565b6000602082019050818103600083015261269881846123bd565b905092915050565b600060208201905081810360008301526126b9816123f6565b9050919050565b600060208201905081810360008301526126d981612419565b9050919050565b600060208201905081810360008301526126f98161243c565b9050919050565b600060208201905081810360008301526127198161245f565b9050919050565b6000602082019050818103600083015261273981612482565b9050919050565b60006020820190508181036000830152612759816124a5565b9050919050565b60006020820190508181036000830152612779816124c8565b9050919050565b60006020820190508181036000830152612799816124eb565b9050919050565b600060208201905081810360008301526127b98161250e565b9050919050565b600060208201905081810360008301526127d981612531565b9050919050565b600060208201905081810360008301526127f981612554565b9050919050565b60006020820190506128156000830184612577565b92915050565b600060a0820190506128306000830188612577565b61283d60208301876123ae565b818103604083015261284f8186612341565b905061285e6060830185612332565b61286b6080830184612577565b9695505050505050565b600060208201905061288a6000830184612586565b92915050565b600061289a6128ab565b90506128a68282612ae5565b919050565b6000604051905090565b600067ffffffffffffffff8211156128d0576128cf612bbd565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061294182612a89565b915061294c83612a89565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561298157612980612b5f565b5b828201905092915050565b600061299782612a89565b91506129a283612a89565b9250826129b2576129b1612b8e565b5b828204905092915050565b60006129c882612a89565b91506129d383612a89565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a0c57612a0b612b5f565b5b828202905092915050565b6000612a2282612a89565b9150612a2d83612a89565b925082821015612a4057612a3f612b5f565b5b828203905092915050565b6000612a5682612a69565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612aab82612a89565b9050919050565b60005b83811015612ad0578082015181840152602081019050612ab5565b83811115612adf576000848401525b50505050565b612aee82612bec565b810181811067ffffffffffffffff82111715612b0d57612b0c612bbd565b5b80604052505050565b6000612b2182612a89565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b5457612b53612b5f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f426f740000000000000000000000000000000000000000000000000000000000600082015250565b612ed381612a4b565b8114612ede57600080fd5b50565b612eea81612a5d565b8114612ef557600080fd5b50565b612f0181612a89565b8114612f0c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208c2a2a512dee72681306348f09672bdabcc2063128d3ec69398418b7428079a064736f6c63430008040033

Deployed Bytecode Sourcemap

3903:9315:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5456:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6308:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5733:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6477:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9945:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5642:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11322:194;;;;;;;;;;;;;:::i;:::-;;5836:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2982:148;;;;;;;;;;;;;:::i;:::-;;2768:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5547:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5982:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9763:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11115:195;;;;;;;;;;;;;:::i;:::-;;9013:738;;;;;;;;;;;;;:::i;:::-;;6157:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5456:83;5493:13;5526:5;;;;;;;;;;;;;;;;;5519:12;;5456:83;:::o;6308:161::-;6383:4;6400:39;6409:12;:10;:12::i;:::-;6423:7;6432:6;6400:8;:39::i;:::-;6457:4;6450:11;;6308:161;;;;:::o;5733:95::-;5786:7;4357:12;5806:14;;5733:95;:::o;6477:313::-;6575:4;6592:36;6602:6;6610:9;6621:6;6592:9;:36::i;:::-;6639:121;6648:6;6656:12;:10;:12::i;:::-;6670:89;6708:6;6670:89;;;;;;;;;;;;;;;;;:11;:19;6682:6;6670:19;;;;;;;;;;;;;;;:33;6690:12;:10;:12::i;:::-;6670:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6639:8;:121::i;:::-;6778:4;6771:11;;6477:313;;;;;:::o;9945:88::-;2905:12;:10;:12::i;:::-;2895:22;;:6;;;;;;;;;;:22;;;2887:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10020:5:::1;10005:4;:12;10010:6;10005:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;9945:88:::0;:::o;5642:83::-;5683:5;4723:1;5701:16;;5642:83;:::o;11322:194::-;11388:15;;;;;;;;;;;11372:31;;:12;:10;:12::i;:::-;:31;;;11364:40;;;;;;11415:26;11444:21;11415:50;;11476:32;11489:18;11476:12;:32::i;:::-;11322:194;:::o;5836:138::-;5902:7;5929:37;5949:7;:16;5957:7;5949:16;;;;;;;;;;;;;;;;5929:19;:37::i;:::-;5922:44;;5836:138;;;:::o;2982:148::-;2905:12;:10;:12::i;:::-;2895:22;;:6;;;;;;;;;;:22;;;2887:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3089:1:::1;3052:40;;3073:6;::::0;::::1;;;;;;;;3052:40;;;;;;;;;;;;3120:1;3103:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2982:148::o:0;2768:79::-;2806:7;2833:6;;;;;;;;;;;2826:13;;2768:79;:::o;5547:87::-;5586:13;5619:7;;;;;;;;;;;;;;;;;5612:14;;5547:87;:::o;5982:167::-;6060:4;6077:42;6087:12;:10;:12::i;:::-;6101:9;6112:6;6077:9;:42::i;:::-;6137:4;6130:11;;5982:167;;;;:::o;9763:164::-;2905:12;:10;:12::i;:::-;2895:22;;:6;;;;;;;;;;:22;;;2887:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9837:6:::1;9832:88;9853:5;:12;9849:1;:16;9832:88;;;9904:4;9887;:14;9892:5;9898:1;9892:8;;;;;;;;;;;;;;;;;;;;;;9887:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9867:3;;;;;:::i;:::-;;;;9832:88;;;;9763:164:::0;:::o;11115:195::-;11181:15;;;;;;;;;;;11165:31;;:12;:10;:12::i;:::-;:31;;;11157:40;;;;;;11208:23;11234:24;11252:4;11234:9;:24::i;:::-;11208:50;;11269:33;11286:15;11269:16;:33::i;:::-;11115:195;:::o;9013:738::-;2905:12;:10;:12::i;:::-;2895:22;;:6;;;;;;;;;;:22;;;2887:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9077:11:::1;;;;;;;;;;;9076:12;9068:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9126:35;9183:42;9126:100;;9255:16;9237:15;;:34;;;;;;;;;;;;;;;;;;9282:58;9299:4;9314:15;;;;;;;;;;;4357:12;9282:8;:58::i;:::-;9385:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9367:56;;;9432:4;9439:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9367:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9351:13;;:112;;;;;;;;;;;;;;;;;;9474:15;;;;;;;;;;;:31;;;9513:21;9544:4;9550:24;9568:4;9550:9;:24::i;:::-;9575:1;9577::::0;9579:7:::1;:5;:7::i;:::-;9587:15;9474:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9628:4;9614:11;;:18;;;;;;;;;;;;;;;;;;9657:4;9643:11;;:18;;;;;;;;;;;;;;;;;;9679:13;;;;;;;;;;;9672:29;;;9710:15;;;;;;;;;;;9728:14;9672:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2965:1;9013:738::o:0;6157:143::-;6238:7;6265:11;:18;6277:5;6265:18;;;;;;;;;;;;;;;:27;6284:7;6265:27;;;;;;;;;;;;;;;;6258:34;;6157:143;;;;:::o;486:98::-;539:7;566:10;559:17;;486:98;:::o;7062:335::-;7172:1;7155:19;;:5;:19;;;;7147:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7253:1;7234:21;;:7;:21;;;;7226:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7335:6;7305:11;:18;7317:5;7305:18;;;;;;;;;;;;;;;:27;7324:7;7305:27;;;;;;;;;;;;;;;:36;;;;7373:7;7357:32;;7366:5;7357:32;;;7382:6;7357:32;;;;;;:::i;:::-;;;;;;;;7062:335;;;:::o;7405:992::-;7509:1;7493:18;;:4;:18;;;;7485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7586:1;7572:16;;:2;:16;;;;7564:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7656:1;7647:6;:10;7639:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7726:1;7714:9;:13;;;;7750:1;7738:9;:13;;;;7774:7;:5;:7::i;:::-;7766:15;;:4;:15;;;;:32;;;;;7791:7;:5;:7::i;:::-;7785:13;;:2;:13;;;;7766:32;7762:583;;;7824:4;:10;7829:4;7824:10;;;;;;;;;;;;;;;;;;;;;;;;;7823:11;:24;;;;;7839:4;:8;7844:2;7839:8;;;;;;;;;;;;;;;;;;;;;;;;;7838:9;7823:24;7815:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;7875:6;;;;;;;;;;;7874:7;:32;;;;;7893:13;;;;;;;;;;;7885:21;;:4;:21;;;;7874:32;:47;;;;;7910:11;;;;;;;;;;;7874:47;7870:464;;;7942:28;7973:24;7991:4;7973:9;:24::i;:::-;7942:55;;8043:1;8020:20;:24;8016:111;;;8069:38;8086:20;8069:16;:38::i;:::-;8016:111;8145:26;8174:21;8145:50;;8238:1;8217:18;:22;8214:105;;;8264:35;8277:21;8264:12;:35::i;:::-;8214:105;7870:464;;;7762:583;8359:30;8374:4;8379:2;8382:6;8359:14;:30::i;:::-;7405:992;;;:::o;1623:190::-;1709:7;1742:1;1737;:6;;1745:12;1729:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1769:9;1785:1;1781;:5;;;;:::i;:::-;1769:17;;1804:1;1797:8;;;1623:190;;;;;:::o;8904:97::-;8961:15;;;;;;;;;;;:24;;:32;8986:6;8961:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8904:97;:::o;6800:254::-;6867:7;6906;;6895;:18;;6887:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6971:19;6994:10;:8;:10::i;:::-;6971:33;;7022:24;7034:11;7022:7;:11;;:24;;;;:::i;:::-;7015:31;;;6800:254;;;:::o;8405:483::-;4973:4;4964:6;;:13;;;;;;;;;;;;;;;;;;8483:21:::1;8521:1;8507:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8483:40;;8552:4;8534;8539:1;8534:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;8578:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8568:4;8573:1;8568:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;8611:62;8628:4;8643:15;;;;;;;;;;;8661:11;8611:8;:62::i;:::-;8684:15;;;;;;;;;;;:66;;;8765:11;8791:1;8807:4;8834;8854:15;8684:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4988:1;5009:5:::0;5000:6;;:14;;;;;;;;;;;;;;;;;;8405:483;:::o;10049:146::-;10143:44;10161:6;10169:9;10180:6;10143:17;:44::i;:::-;10049:146;;;:::o;12782:163::-;12823:7;12844:15;12861;12880:19;:17;:19::i;:::-;12843:56;;;;12917:20;12929:7;12917;:11;;:20;;;;:::i;:::-;12910:27;;;;12782:163;:::o;2075:132::-;2133:7;2160:39;2164:1;2167;2160:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2153:46;;2075:132;;;;:::o;10203:488::-;10302:15;10319:23;10344:12;10358:23;10383:12;10397:13;10414:19;10425:7;10414:10;:19::i;:::-;10301:132;;;;;;;;;;;;10462:28;10482:7;10462;:15;10470:6;10462:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10444:7;:15;10452:6;10444:15;;;;;;;;;;;;;;;:46;;;;10522:39;10545:15;10522:7;:18;10530:9;10522:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10501:7;:18;10509:9;10501:18;;;;;;;;;;;;;;;:60;;;;10573:16;10583:5;10573:9;:16::i;:::-;10600:23;10612:4;10618;10600:11;:23::i;:::-;10656:9;10639:44;;10648:6;10639:44;;;10667:15;10639:44;;;;;;:::i;:::-;;;;;;;;10203:488;;;;;;;;;:::o;12953:262::-;13003:7;13012;13032:15;13050:7;;13032:25;;13068:15;4357:12;13068:25;;13124:20;4357:12;13124:7;;:11;;:20;;;;:::i;:::-;13114:7;:30;13110:61;;;13154:7;;4357:12;13146:25;;;;;;;;13110:61;13190:7;13199;13182:25;;;;;;12953:262;;;:::o;2215:189::-;2301:7;2333:1;2329;:5;2336:12;2321:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2360:9;2376:1;2372;:5;;;;:::i;:::-;2360:17;;2395:1;2388:8;;;2215:189;;;;;:::o;11530:471::-;11589:7;11598;11607;11616;11625;11634;11655:23;11680:12;11694:13;11711:42;11723:7;11732:9;;11743;;11711:11;:42::i;:::-;11654:99;;;;;;11764:19;11787:10;:8;:10::i;:::-;11764:33;;11809:15;11826:23;11851:12;11867:46;11879:7;11888:4;11894:5;11901:11;11867;:46::i;:::-;11808:105;;;;;;11932:7;11941:15;11958:4;11964:15;11981:4;11987:5;11924:69;;;;;;;;;;;;;;;;;;;11530:471;;;;;;;:::o;1479:136::-;1537:7;1564:43;1568:1;1571;1564:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1557:50;;1479:136;;;;:::o;1292:179::-;1350:7;1370:9;1386:1;1382;:5;;;;:::i;:::-;1370:17;;1411:1;1406;:6;;1398:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1462:1;1455:8;;;1292:179;;;;:::o;10699:212::-;10752:19;10775:10;:8;:10::i;:::-;10752:33;;10796:13;10812:22;10822:11;10812:5;:9;;:22;;;;:::i;:::-;10796:38;;10870:33;10897:5;10870:7;:22;10886:4;10870:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;10845:7;:22;10861:4;10845:22;;;;;;;;;;;;;;;:58;;;;10699:212;;;:::o;10919:147::-;10997:17;11009:4;10997:7;;:11;;:17;;;;:::i;:::-;10987:7;:27;;;;11038:20;11053:4;11038:10;;:14;;:20;;;;:::i;:::-;11025:10;:33;;;;10919:147;;:::o;12009:351::-;12102:7;12111;12120;12140:12;12155:28;12179:3;12155:19;12167:6;12155:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12140:43;;12194:13;12210:29;12235:3;12210:20;12222:7;12210;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12194:45;;12250:23;12276:28;12298:5;12276:17;12288:4;12276:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12250:54;;12323:15;12340:4;12346:5;12315:37;;;;;;;;;12009:351;;;;;;;:::o;12368:409::-;12478:7;12487;12496;12516:15;12534:24;12546:11;12534:7;:11;;:24;;;;:::i;:::-;12516:42;;12569:12;12584:21;12593:11;12584:4;:8;;:21;;;;:::i;:::-;12569:36;;12616:13;12632:22;12642:11;12632:5;:9;;:22;;;;:::i;:::-;12616:38;;12665:23;12691:28;12713:5;12691:17;12703:4;12691:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12665:54;;12738:7;12747:15;12764:4;12730:39;;;;;;;;;;12368:409;;;;;;;;:::o;1821:246::-;1879:7;1908:1;1903;:6;1899:47;;;1933:1;1926:8;;;;1899:47;1956:9;1972:1;1968;:5;;;;:::i;:::-;1956:17;;2001:1;1996;1992;:5;;;;:::i;:::-;:10;1984:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2058:1;2051:8;;;1821:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:137::-;1359:5;1390:6;1384:13;1375:22;;1406:30;1430:5;1406:30;:::i;:::-;1365:77;;;;:::o;1448:139::-;1494:5;1532:6;1519:20;1510:29;;1548:33;1575:5;1548:33;:::i;:::-;1500:87;;;;:::o;1593:143::-;1650:5;1681:6;1675:13;1666:22;;1697:33;1724:5;1697:33;:::i;:::-;1656:80;;;;:::o;1742:262::-;1801:6;1850:2;1838:9;1829:7;1825:23;1821:32;1818:2;;;1866:1;1863;1856:12;1818:2;1909:1;1934:53;1979:7;1970:6;1959:9;1955:22;1934:53;:::i;:::-;1924:63;;1880:117;1808:196;;;;:::o;2010:284::-;2080:6;2129:2;2117:9;2108:7;2104:23;2100:32;2097:2;;;2145:1;2142;2135:12;2097:2;2188:1;2213:64;2269:7;2260:6;2249:9;2245:22;2213:64;:::i;:::-;2203:74;;2159:128;2087:207;;;;:::o;2300:407::-;2368:6;2376;2425:2;2413:9;2404:7;2400:23;2396:32;2393:2;;;2441:1;2438;2431:12;2393:2;2484:1;2509:53;2554:7;2545:6;2534:9;2530:22;2509:53;:::i;:::-;2499:63;;2455:117;2611:2;2637:53;2682:7;2673:6;2662:9;2658:22;2637:53;:::i;:::-;2627:63;;2582:118;2383:324;;;;;:::o;2713:552::-;2790:6;2798;2806;2855:2;2843:9;2834:7;2830:23;2826:32;2823:2;;;2871:1;2868;2861:12;2823:2;2914:1;2939:53;2984:7;2975:6;2964:9;2960:22;2939:53;:::i;:::-;2929:63;;2885:117;3041:2;3067:53;3112:7;3103:6;3092:9;3088:22;3067:53;:::i;:::-;3057:63;;3012:118;3169:2;3195:53;3240:7;3231:6;3220:9;3216:22;3195:53;:::i;:::-;3185:63;;3140:118;2813:452;;;;;:::o;3271:407::-;3339:6;3347;3396:2;3384:9;3375:7;3371:23;3367:32;3364:2;;;3412:1;3409;3402:12;3364:2;3455:1;3480:53;3525:7;3516:6;3505:9;3501:22;3480:53;:::i;:::-;3470:63;;3426:117;3582:2;3608:53;3653:7;3644:6;3633:9;3629:22;3608:53;:::i;:::-;3598:63;;3553:118;3354:324;;;;;:::o;3684:405::-;3768:6;3817:2;3805:9;3796:7;3792:23;3788:32;3785:2;;;3833:1;3830;3823:12;3785:2;3904:1;3893:9;3889:17;3876:31;3934:18;3926:6;3923:30;3920:2;;;3966:1;3963;3956:12;3920:2;3994:78;4064:7;4055:6;4044:9;4040:22;3994:78;:::i;:::-;3984:88;;3847:235;3775:314;;;;:::o;4095:278::-;4162:6;4211:2;4199:9;4190:7;4186:23;4182:32;4179:2;;;4227:1;4224;4217:12;4179:2;4270:1;4295:61;4348:7;4339:6;4328:9;4324:22;4295:61;:::i;:::-;4285:71;;4241:125;4169:204;;;;:::o;4379:596::-;4467:6;4475;4483;4532:2;4520:9;4511:7;4507:23;4503:32;4500:2;;;4548:1;4545;4538:12;4500:2;4591:1;4616:64;4672:7;4663:6;4652:9;4648:22;4616:64;:::i;:::-;4606:74;;4562:128;4729:2;4755:64;4811:7;4802:6;4791:9;4787:22;4755:64;:::i;:::-;4745:74;;4700:129;4868:2;4894:64;4950:7;4941:6;4930:9;4926:22;4894:64;:::i;:::-;4884:74;;4839:129;4490:485;;;;;:::o;4981:179::-;5050:10;5071:46;5113:3;5105:6;5071:46;:::i;:::-;5149:4;5144:3;5140:14;5126:28;;5061:99;;;;:::o;5166:108::-;5243:24;5261:5;5243:24;:::i;:::-;5238:3;5231:37;5221:53;;:::o;5280:118::-;5367:24;5385:5;5367:24;:::i;:::-;5362:3;5355:37;5345:53;;:::o;5434:732::-;5553:3;5582:54;5630:5;5582:54;:::i;:::-;5652:86;5731:6;5726:3;5652:86;:::i;:::-;5645:93;;5762:56;5812:5;5762:56;:::i;:::-;5841:7;5872:1;5857:284;5882:6;5879:1;5876:13;5857:284;;;5958:6;5952:13;5985:63;6044:3;6029:13;5985:63;:::i;:::-;5978:70;;6071:60;6124:6;6071:60;:::i;:::-;6061:70;;5917:224;5904:1;5901;5897:9;5892:14;;5857:284;;;5861:14;6157:3;6150:10;;5558:608;;;;;;;:::o;6172:109::-;6253:21;6268:5;6253:21;:::i;:::-;6248:3;6241:34;6231:50;;:::o;6287:147::-;6382:45;6421:5;6382:45;:::i;:::-;6377:3;6370:58;6360:74;;:::o;6440:364::-;6528:3;6556:39;6589:5;6556:39;:::i;:::-;6611:71;6675:6;6670:3;6611:71;:::i;:::-;6604:78;;6691:52;6736:6;6731:3;6724:4;6717:5;6713:16;6691:52;:::i;:::-;6768:29;6790:6;6768:29;:::i;:::-;6763:3;6759:39;6752:46;;6532:272;;;;;:::o;6810:366::-;6952:3;6973:67;7037:2;7032:3;6973:67;:::i;:::-;6966:74;;7049:93;7138:3;7049:93;:::i;:::-;7167:2;7162:3;7158:12;7151:19;;6956:220;;;:::o;7182:366::-;7324:3;7345:67;7409:2;7404:3;7345:67;:::i;:::-;7338:74;;7421:93;7510:3;7421:93;:::i;:::-;7539:2;7534:3;7530:12;7523:19;;7328:220;;;:::o;7554:366::-;7696:3;7717:67;7781:2;7776:3;7717:67;:::i;:::-;7710:74;;7793:93;7882:3;7793:93;:::i;:::-;7911:2;7906:3;7902:12;7895:19;;7700:220;;;:::o;7926:366::-;8068:3;8089:67;8153:2;8148:3;8089:67;:::i;:::-;8082:74;;8165:93;8254:3;8165:93;:::i;:::-;8283:2;8278:3;8274:12;8267:19;;8072:220;;;:::o;8298:366::-;8440:3;8461:67;8525:2;8520:3;8461:67;:::i;:::-;8454:74;;8537:93;8626:3;8537:93;:::i;:::-;8655:2;8650:3;8646:12;8639:19;;8444:220;;;:::o;8670:366::-;8812:3;8833:67;8897:2;8892:3;8833:67;:::i;:::-;8826:74;;8909:93;8998:3;8909:93;:::i;:::-;9027:2;9022:3;9018:12;9011:19;;8816:220;;;:::o;9042:366::-;9184:3;9205:67;9269:2;9264:3;9205:67;:::i;:::-;9198:74;;9281:93;9370:3;9281:93;:::i;:::-;9399:2;9394:3;9390:12;9383:19;;9188:220;;;:::o;9414:366::-;9556:3;9577:67;9641:2;9636:3;9577:67;:::i;:::-;9570:74;;9653:93;9742:3;9653:93;:::i;:::-;9771:2;9766:3;9762:12;9755:19;;9560:220;;;:::o;9786:366::-;9928:3;9949:67;10013:2;10008:3;9949:67;:::i;:::-;9942:74;;10025:93;10114:3;10025:93;:::i;:::-;10143:2;10138:3;10134:12;10127:19;;9932:220;;;:::o;10158:366::-;10300:3;10321:67;10385:2;10380:3;10321:67;:::i;:::-;10314:74;;10397:93;10486:3;10397:93;:::i;:::-;10515:2;10510:3;10506:12;10499:19;;10304:220;;;:::o;10530:365::-;10672:3;10693:66;10757:1;10752:3;10693:66;:::i;:::-;10686:73;;10768:93;10857:3;10768:93;:::i;:::-;10886:2;10881:3;10877:12;10870:19;;10676:219;;;:::o;10901:118::-;10988:24;11006:5;10988:24;:::i;:::-;10983:3;10976:37;10966:53;;:::o;11025:112::-;11108:22;11124:5;11108:22;:::i;:::-;11103:3;11096:35;11086:51;;:::o;11143:222::-;11236:4;11274:2;11263:9;11259:18;11251:26;;11287:71;11355:1;11344:9;11340:17;11331:6;11287:71;:::i;:::-;11241:124;;;;:::o;11371:332::-;11492:4;11530:2;11519:9;11515:18;11507:26;;11543:71;11611:1;11600:9;11596:17;11587:6;11543:71;:::i;:::-;11624:72;11692:2;11681:9;11677:18;11668:6;11624:72;:::i;:::-;11497:206;;;;;:::o;11709:332::-;11830:4;11868:2;11857:9;11853:18;11845:26;;11881:71;11949:1;11938:9;11934:17;11925:6;11881:71;:::i;:::-;11962:72;12030:2;12019:9;12015:18;12006:6;11962:72;:::i;:::-;11835:206;;;;;:::o;12047:807::-;12296:4;12334:3;12323:9;12319:19;12311:27;;12348:71;12416:1;12405:9;12401:17;12392:6;12348:71;:::i;:::-;12429:72;12497:2;12486:9;12482:18;12473:6;12429:72;:::i;:::-;12511:80;12587:2;12576:9;12572:18;12563:6;12511:80;:::i;:::-;12601;12677:2;12666:9;12662:18;12653:6;12601:80;:::i;:::-;12691:73;12759:3;12748:9;12744:19;12735:6;12691:73;:::i;:::-;12774;12842:3;12831:9;12827:19;12818:6;12774:73;:::i;:::-;12301:553;;;;;;;;;:::o;12860:210::-;12947:4;12985:2;12974:9;12970:18;12962:26;;12998:65;13060:1;13049:9;13045:17;13036:6;12998:65;:::i;:::-;12952:118;;;;:::o;13076:313::-;13189:4;13227:2;13216:9;13212:18;13204:26;;13276:9;13270:4;13266:20;13262:1;13251:9;13247:17;13240:47;13304:78;13377:4;13368:6;13304:78;:::i;:::-;13296:86;;13194:195;;;;:::o;13395:419::-;13561:4;13599:2;13588:9;13584:18;13576:26;;13648:9;13642:4;13638:20;13634:1;13623:9;13619:17;13612:47;13676:131;13802:4;13676:131;:::i;:::-;13668:139;;13566:248;;;:::o;13820:419::-;13986:4;14024:2;14013:9;14009:18;14001:26;;14073:9;14067:4;14063:20;14059:1;14048:9;14044:17;14037:47;14101:131;14227:4;14101:131;:::i;:::-;14093:139;;13991:248;;;:::o;14245:419::-;14411:4;14449:2;14438:9;14434:18;14426:26;;14498:9;14492:4;14488:20;14484:1;14473:9;14469:17;14462:47;14526:131;14652:4;14526:131;:::i;:::-;14518:139;;14416:248;;;:::o;14670:419::-;14836:4;14874:2;14863:9;14859:18;14851:26;;14923:9;14917:4;14913:20;14909:1;14898:9;14894:17;14887:47;14951:131;15077:4;14951:131;:::i;:::-;14943:139;;14841:248;;;:::o;15095:419::-;15261:4;15299:2;15288:9;15284:18;15276:26;;15348:9;15342:4;15338:20;15334:1;15323:9;15319:17;15312:47;15376:131;15502:4;15376:131;:::i;:::-;15368:139;;15266:248;;;:::o;15520:419::-;15686:4;15724:2;15713:9;15709:18;15701:26;;15773:9;15767:4;15763:20;15759:1;15748:9;15744:17;15737:47;15801:131;15927:4;15801:131;:::i;:::-;15793:139;;15691:248;;;:::o;15945:419::-;16111:4;16149:2;16138:9;16134:18;16126:26;;16198:9;16192:4;16188:20;16184:1;16173:9;16169:17;16162:47;16226:131;16352:4;16226:131;:::i;:::-;16218:139;;16116:248;;;:::o;16370:419::-;16536:4;16574:2;16563:9;16559:18;16551:26;;16623:9;16617:4;16613:20;16609:1;16598:9;16594:17;16587:47;16651:131;16777:4;16651:131;:::i;:::-;16643:139;;16541:248;;;:::o;16795:419::-;16961:4;16999:2;16988:9;16984:18;16976:26;;17048:9;17042:4;17038:20;17034:1;17023:9;17019:17;17012:47;17076:131;17202:4;17076:131;:::i;:::-;17068:139;;16966:248;;;:::o;17220:419::-;17386:4;17424:2;17413:9;17409:18;17401:26;;17473:9;17467:4;17463:20;17459:1;17448:9;17444:17;17437:47;17501:131;17627:4;17501:131;:::i;:::-;17493:139;;17391:248;;;:::o;17645:419::-;17811:4;17849:2;17838:9;17834:18;17826:26;;17898:9;17892:4;17888:20;17884:1;17873:9;17869:17;17862:47;17926:131;18052:4;17926:131;:::i;:::-;17918:139;;17816:248;;;:::o;18070:222::-;18163:4;18201:2;18190:9;18186:18;18178:26;;18214:71;18282:1;18271:9;18267:17;18258:6;18214:71;:::i;:::-;18168:124;;;;:::o;18298:831::-;18561:4;18599:3;18588:9;18584:19;18576:27;;18613:71;18681:1;18670:9;18666:17;18657:6;18613:71;:::i;:::-;18694:80;18770:2;18759:9;18755:18;18746:6;18694:80;:::i;:::-;18821:9;18815:4;18811:20;18806:2;18795:9;18791:18;18784:48;18849:108;18952:4;18943:6;18849:108;:::i;:::-;18841:116;;18967:72;19035:2;19024:9;19020:18;19011:6;18967:72;:::i;:::-;19049:73;19117:3;19106:9;19102:19;19093:6;19049:73;:::i;:::-;18566:563;;;;;;;;:::o;19135:214::-;19224:4;19262:2;19251:9;19247:18;19239:26;;19275:67;19339:1;19328:9;19324:17;19315:6;19275:67;:::i;:::-;19229:120;;;;:::o;19355:129::-;19389:6;19416:20;;:::i;:::-;19406:30;;19445:33;19473:4;19465:6;19445:33;:::i;:::-;19396:88;;;:::o;19490:75::-;19523:6;19556:2;19550:9;19540:19;;19530:35;:::o;19571:311::-;19648:4;19738:18;19730:6;19727:30;19724:2;;;19760:18;;:::i;:::-;19724:2;19810:4;19802:6;19798:17;19790:25;;19870:4;19864;19860:15;19852:23;;19653:229;;;:::o;19888:132::-;19955:4;19978:3;19970:11;;20008:4;20003:3;19999:14;19991:22;;19960:60;;;:::o;20026:114::-;20093:6;20127:5;20121:12;20111:22;;20100:40;;;:::o;20146:99::-;20198:6;20232:5;20226:12;20216:22;;20205:40;;;:::o;20251:113::-;20321:4;20353;20348:3;20344:14;20336:22;;20326:38;;;:::o;20370:184::-;20469:11;20503:6;20498:3;20491:19;20543:4;20538:3;20534:14;20519:29;;20481:73;;;;:::o;20560:169::-;20644:11;20678:6;20673:3;20666:19;20718:4;20713:3;20709:14;20694:29;;20656:73;;;;:::o;20735:305::-;20775:3;20794:20;20812:1;20794:20;:::i;:::-;20789:25;;20828:20;20846:1;20828:20;:::i;:::-;20823:25;;20982:1;20914:66;20910:74;20907:1;20904:81;20901:2;;;20988:18;;:::i;:::-;20901:2;21032:1;21029;21025:9;21018:16;;20779:261;;;;:::o;21046:185::-;21086:1;21103:20;21121:1;21103:20;:::i;:::-;21098:25;;21137:20;21155:1;21137:20;:::i;:::-;21132:25;;21176:1;21166:2;;21181:18;;:::i;:::-;21166:2;21223:1;21220;21216:9;21211:14;;21088:143;;;;:::o;21237:348::-;21277:7;21300:20;21318:1;21300:20;:::i;:::-;21295:25;;21334:20;21352:1;21334:20;:::i;:::-;21329:25;;21522:1;21454:66;21450:74;21447:1;21444:81;21439:1;21432:9;21425:17;21421:105;21418:2;;;21529:18;;:::i;:::-;21418:2;21577:1;21574;21570:9;21559:20;;21285:300;;;;:::o;21591:191::-;21631:4;21651:20;21669:1;21651:20;:::i;:::-;21646:25;;21685:20;21703:1;21685:20;:::i;:::-;21680:25;;21724:1;21721;21718:8;21715:2;;;21729:18;;:::i;:::-;21715:2;21774:1;21771;21767:9;21759:17;;21636:146;;;;:::o;21788:96::-;21825:7;21854:24;21872:5;21854:24;:::i;:::-;21843:35;;21833:51;;;:::o;21890:90::-;21924:7;21967:5;21960:13;21953:21;21942:32;;21932:48;;;:::o;21986:126::-;22023:7;22063:42;22056:5;22052:54;22041:65;;22031:81;;;:::o;22118:77::-;22155:7;22184:5;22173:16;;22163:32;;;:::o;22201:86::-;22236:7;22276:4;22269:5;22265:16;22254:27;;22244:43;;;:::o;22293:121::-;22351:9;22384:24;22402:5;22384:24;:::i;:::-;22371:37;;22361:53;;;:::o;22420:307::-;22488:1;22498:113;22512:6;22509:1;22506:13;22498:113;;;22597:1;22592:3;22588:11;22582:18;22578:1;22573:3;22569:11;22562:39;22534:2;22531:1;22527:10;22522:15;;22498:113;;;22629:6;22626:1;22623:13;22620:2;;;22709:1;22700:6;22695:3;22691:16;22684:27;22620:2;22469:258;;;;:::o;22733:281::-;22816:27;22838:4;22816:27;:::i;:::-;22808:6;22804:40;22946:6;22934:10;22931:22;22910:18;22898:10;22895:34;22892:62;22889:2;;;22957:18;;:::i;:::-;22889:2;22997:10;22993:2;22986:22;22776:238;;;:::o;23020:233::-;23059:3;23082:24;23100:5;23082:24;:::i;:::-;23073:33;;23128:66;23121:5;23118:77;23115:2;;;23198:18;;:::i;:::-;23115:2;23245:1;23238:5;23234:13;23227:20;;23063:190;;;:::o;23259:180::-;23307:77;23304:1;23297:88;23404:4;23401:1;23394:15;23428:4;23425:1;23418:15;23445:180;23493:77;23490:1;23483:88;23590:4;23587:1;23580:15;23614:4;23611:1;23604:15;23631:180;23679:77;23676:1;23669:88;23776:4;23773:1;23766:15;23800:4;23797:1;23790:15;23817:102;23858:6;23909:2;23905:7;23900:2;23893:5;23889:14;23885:28;23875:38;;23865:54;;;:::o;23925:222::-;24065:34;24061:1;24053:6;24049:14;24042:58;24134:5;24129:2;24121:6;24117:15;24110:30;24031:116;:::o;24153:229::-;24293:34;24289:1;24281:6;24277:14;24270:58;24362:12;24357:2;24349:6;24345:15;24338:37;24259:123;:::o;24388:221::-;24528:34;24524:1;24516:6;24512:14;24505:58;24597:4;24592:2;24584:6;24580:15;24573:29;24494:115;:::o;24615:177::-;24755:29;24751:1;24743:6;24739:14;24732:53;24721:71;:::o;24798:220::-;24938:34;24934:1;24926:6;24922:14;24915:58;25007:3;25002:2;24994:6;24990:15;24983:28;24904:114;:::o;25024:182::-;25164:34;25160:1;25152:6;25148:14;25141:58;25130:76;:::o;25212:228::-;25352:34;25348:1;25340:6;25336:14;25329:58;25421:11;25416:2;25408:6;25404:15;25397:36;25318:122;:::o;25446:224::-;25586:34;25582:1;25574:6;25570:14;25563:58;25655:7;25650:2;25642:6;25638:15;25631:32;25552:118;:::o;25676:223::-;25816:34;25812:1;25804:6;25800:14;25793:58;25885:6;25880:2;25872:6;25868:15;25861:31;25782:117;:::o;25905:173::-;26045:25;26041:1;26033:6;26029:14;26022:49;26011:67;:::o;26084:153::-;26224:5;26220:1;26212:6;26208:14;26201:29;26190:47;:::o;26243:122::-;26316:24;26334:5;26316:24;:::i;:::-;26309:5;26306:35;26296:2;;26355:1;26352;26345:12;26296:2;26286:79;:::o;26371:116::-;26441:21;26456:5;26441:21;:::i;:::-;26434:5;26431:32;26421:2;;26477:1;26474;26467:12;26421:2;26411:76;:::o;26493:122::-;26566:24;26584:5;26566:24;:::i;:::-;26559:5;26556:35;26546:2;;26605:1;26602;26595:12;26546:2;26536:79;:::o

Swarm Source

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