ETH Price: $3,166.21 (-8.02%)
Gas: 3 Gwei

Token

MoonBag Inu (MOONBI)
 

Overview

Max Total Supply

100,000,000,000,000 MOONBI

Holders

105

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
92,177,347,617.964716374448194548 MOONBI

Value
$0.00
0x271AE6e3653d3E031aa5864b7F62924A3ad62621
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:
MOONBI

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
 * MoonBag Inu
 * https://t.me/MoonBagInu
 * www.moonbagcoin.com
 * TOKENOMICS:
 * 100,000,000,000,000 token supply
 * 
 * 
SPDX-License-Identifier: UNLICENSED 
*/
pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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 getPair(address tokenA, address tokenB) external view 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);
}

contract MOONBI 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 => User) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100 * 10**12 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private constant _name = "MoonBag Inu";
    string private constant _symbol = "MOONBI";
    uint8 private constant _decimals = 18;
    uint256 private _taxFee = 3;
    uint256 private _teamFee = 7;
    uint256 private _feeRate = 5;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private _teamWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private _cooldownEnabled = true;
    bool private _moonbagEnabled = true;
    bool private _whaleDumpProtection = true;
    bool private inSwap = false;
    struct User {
        uint256 sell;
        bool firstSell;
        bool exists;
    }

    event CooldownEnabledUpdated(bool _cooldown);
    event MoonbagEnabledUpdated(bool _moonbag);
    event WhaleDumpProtectionUpdated(bool _whaleDump);
    event FeeRateUpdated(uint _rate);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable teamWallet) {
        _teamWallet = teamWallet;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[teamWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

        if(from != owner() && to != owner()) {
            if(_cooldownEnabled) {
                if(!cooldown[msg.sender].exists) {
                    cooldown[msg.sender] = User(0,false,true);
                }
            }

            // buy
            require(tradingOpen, "Trading not yet enabled.");
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                if(_cooldownEnabled) {
                    cooldown[to].sell = block.timestamp + (15 seconds);
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            // sell
            if(!inSwap && from != uniswapV2Pair) {

                if(_cooldownEnabled) {
                    require(cooldown[from].sell < block.timestamp, "Your sell cooldown has not expired.");
                    //80% bag check code
                    if(_moonbagEnabled && !cooldown[from].firstSell){
                    	require(amount <= balanceOf(from).mul(80).div(100),"You forgot your moon bag");
                    	cooldown[from].firstSell = true;
                    }
                    //whale dump check code
                    if(_whaleDumpProtection){
                        require(amount <= whaleSellLimit(), "You are a whale");
                    }
                }

                if(contractTokenBalance > 0) {
                    if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_feeRate).div(100)) {
                        contractTokenBalance = balanceOf(uniswapV2Pair).mul(_feeRate).div(100);
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _teamWallet.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

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

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

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

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

    function _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 _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 openTrading() public onlyOwner {
    	IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    	uniswapV2Router = _uniswapV2Router;
    	_approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        tradingOpen = true;
    }

    function manualswap() external {
        require(_msgSender() == _teamWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _teamWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    // fallback in case contract is not releasing tokens fast enough
    function setFeeRate(uint256 rate) external {
        require(_msgSender() == _teamWallet);
        require(rate < 51, "Rate can't exceed 50%");
        _feeRate = rate;
        emit FeeRateUpdated(_feeRate);
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        _cooldownEnabled = onoff;
        emit CooldownEnabledUpdated(_cooldownEnabled);
    }
    function setMoonbagEnabled(bool onoff) external onlyOwner() {
        _moonbagEnabled = onoff;
        emit MoonbagEnabledUpdated(_cooldownEnabled);
    }
    
    function setwhaleDumpProtection(bool onoff) external onlyOwner() {
        _whaleDumpProtection = onoff;
        emit WhaleDumpProtectionUpdated(_whaleDumpProtection);
    }
    
    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function cooldownEnabled() public view returns (bool) {
        return _cooldownEnabled;
    }
    
    function moonbagEnabled() public view returns (bool) {
        return _moonbagEnabled;
    }
    
    function whaleDumpProtection() public view returns (bool) {
        return _whaleDumpProtection;
    }

    function timeToSell(address buyer) public view returns (uint) {
        return block.timestamp - cooldown[buyer].sell;
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }

    function whaleSellLimit() public view returns (uint256) {
    	uint256 whaleAmount = _tTotal.mul(5).div(100);
    	uint256 inLiquidity = amountInPool();
    	if(inLiquidity == 0) return whaleAmount;
    	if(inLiquidity < _tTotal.mul(75).div(100)) whaleAmount = whaleAmount.mul(75).div(100);
    	if(inLiquidity < _tTotal.mul(50).div(100)) whaleAmount = whaleAmount.mul(50).div(100);
    	if(inLiquidity < _tTotal.mul(25).div(100)) whaleAmount = whaleAmount.mul(25).div(100);
    	if(inLiquidity < _tTotal.mul(10).div(100)) whaleAmount = whaleAmount.mul(10).div(100);
    	return whaleAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"teamWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_moonbag","type":"bool"}],"name":"MoonbagEnabledUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_whaleDump","type":"bool"}],"name":"WhaleDumpProtectionUpdated","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":[],"name":"amountInPool","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":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"moonbagEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setMoonbagEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setwhaleDumpProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[],"name":"whaleDumpProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whaleSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526d04ee2d6d415b85acef8100000000600019620000229190620004f8565b6000196200003191906200047f565b60075560036009556007600a556005600b55600954600c55600a54600d556001601060156101000a81548160ff0219169083151502179055506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff0219169083151502179055506000601060186101000a81548160ff021916908315150217905550348015620000c857600080fd5b5060405162003e4f38038062003e4f8339818101604052810190620000ee91906200041f565b600062000100620003d760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460026000620001f6620003d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200024a620003df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200035b620003d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6d04ee2d6d415b85acef8100000000604051620003c8919062000462565b60405180910390a350620005ad565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620004198162000593565b92915050565b6000602082840312156200043857620004376200058e565b5b6000620004488482850162000408565b91505092915050565b6200045c81620004ee565b82525050565b600060208201905062000479600083018462000451565b92915050565b60006200048c82620004ee565b91506200049983620004ee565b925082821015620004af57620004ae62000530565b5b828203905092915050565b6000620004c782620004ce565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200050582620004ee565b91506200051283620004ee565b9250826200052557620005246200055f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6200059e81620004ba565b8114620005aa57600080fd5b50565b61389280620005bd6000396000f3fe60806040526004361061016a5760003560e01c806370a08231116100d1578063a9fc35a91161008a578063ca43d46711610064578063ca43d46714610501578063d8f406e31461052a578063db92dbb614610555578063dd62ed3e1461058057610171565b8063a9fc35a914610496578063c3c8cd80146104d3578063c9567bf9146104ea57610171565b806370a0823114610384578063715018a6146103c15780638da5cb5b146103d857806395d89b4114610403578063a9059cbb1461042e578063a985ceef1461046b57610171565b806327f3a72a1161012357806327f3a72a1461029a578063313ce567146102c557806345596e2e146102f0578063578d610f146103195780635932ead1146103445780636fc3eaec1461036d57610171565b806306fdde0314610176578063095ea7b3146101a15780630e32a09a146101de57806318160ddd14610209578063220e4e521461023457806323b872dd1461025d57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105bd565b6040516101989190612f39565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612b4d565b6105fa565b6040516101d59190612f1e565b60405180910390f35b3480156101ea57600080fd5b506101f3610618565b604051610200919061311b565b60405180910390f35b34801561021557600080fd5b5061021e610812565b60405161022b919061311b565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190612b8d565b610828565b005b34801561026957600080fd5b50610284600480360381019061027f9190612afa565b610920565b6040516102919190612f1e565b60405180910390f35b3480156102a657600080fd5b506102af6109f9565b6040516102bc919061311b565b60405180910390f35b3480156102d157600080fd5b506102da610a09565b6040516102e79190613190565b60405180910390f35b3480156102fc57600080fd5b5061031760048036038101906103129190612bba565b610a12565b005b34801561032557600080fd5b5061032e610af9565b60405161033b9190612f1e565b60405180910390f35b34801561035057600080fd5b5061036b60048036038101906103669190612b8d565b610b10565b005b34801561037957600080fd5b50610382610c08565b005b34801561039057600080fd5b506103ab60048036038101906103a69190612a60565b610c7a565b6040516103b8919061311b565b60405180910390f35b3480156103cd57600080fd5b506103d6610ccb565b005b3480156103e457600080fd5b506103ed610e1e565b6040516103fa9190612eda565b60405180910390f35b34801561040f57600080fd5b50610418610e47565b6040516104259190612f39565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190612b4d565b610e84565b6040516104629190612f1e565b60405180910390f35b34801561047757600080fd5b50610480610ea2565b60405161048d9190612f1e565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190612a60565b610eb9565b6040516104ca919061311b565b60405180910390f35b3480156104df57600080fd5b506104e8610f10565b005b3480156104f657600080fd5b506104ff610f8a565b005b34801561050d57600080fd5b5061052860048036038101906105239190612b8d565b611297565b005b34801561053657600080fd5b5061053f61138f565b60405161054c9190612f1e565b60405180910390f35b34801561056157600080fd5b5061056a6113a6565b604051610577919061311b565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a29190612aba565b6113d8565b6040516105b4919061311b565b60405180910390f35b60606040518060400160405280600b81526020017f4d6f6f6e42616720496e75000000000000000000000000000000000000000000815250905090565b600061060e61060761145f565b8484611467565b6001905092915050565b600080610650606461064260056d04ee2d6d415b85acef810000000061163290919063ffffffff16565b6116ad90919063ffffffff16565b9050600061065c6113a6565b9050600081141561067157819250505061080f565b6106a66064610698604b6d04ee2d6d415b85acef810000000061163290919063ffffffff16565b6116ad90919063ffffffff16565b8110156106d7576106d460646106c6604b8561163290919063ffffffff16565b6116ad90919063ffffffff16565b91505b61070c60646106fe60326d04ee2d6d415b85acef810000000061163290919063ffffffff16565b6116ad90919063ffffffff16565b81101561073d5761073a606461072c60328561163290919063ffffffff16565b6116ad90919063ffffffff16565b91505b610772606461076460196d04ee2d6d415b85acef810000000061163290919063ffffffff16565b6116ad90919063ffffffff16565b8110156107a3576107a0606461079260198561163290919063ffffffff16565b6116ad90919063ffffffff16565b91505b6107d860646107ca600a6d04ee2d6d415b85acef810000000061163290919063ffffffff16565b6116ad90919063ffffffff16565b8110156108095761080660646107f8600a8561163290919063ffffffff16565b6116ad90919063ffffffff16565b91505b81925050505b90565b60006d04ee2d6d415b85acef8100000000905090565b61083061145f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b49061307b565b60405180910390fd5b80601060176101000a81548160ff0219169083151502179055507fa67e8d4dcc23c67c82463cc100c7325285bfa45181431845977bc2ed5afb1b7d601060179054906101000a900460ff166040516109159190612f1e565b60405180910390a150565b600061092d8484846116f7565b6109ee8461093961145f565b6109e98560405180606001604052806028815260200161383560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061099f61145f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbf9092919063ffffffff16565b611467565b600190509392505050565b6000610a0430610c7a565b905090565b60006012905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a5361145f565b73ffffffffffffffffffffffffffffffffffffffff1614610a7357600080fd5b60338110610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad90612fdb565b60405180910390fd5b80600b819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600b54604051610aee919061311b565b60405180910390a150565b6000601060179054906101000a900460ff16905090565b610b1861145f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9c9061307b565b60405180910390fd5b80601060156101000a81548160ff0219169083151502179055507f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f28706601060159054906101000a900460ff16604051610bfd9190612f1e565b60405180910390a150565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c4961145f565b73ffffffffffffffffffffffffffffffffffffffff1614610c6957600080fd5b6000479050610c7781612023565b50565b6000610cc4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120a2565b9050919050565b610cd361145f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d579061307b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4d4f4f4e42490000000000000000000000000000000000000000000000000000815250905090565b6000610e98610e9161145f565b84846116f7565b6001905092915050565b6000601060159054906101000a900460ff16905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015442610f0991906132e1565b9050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f5161145f565b73ffffffffffffffffffffffffffffffffffffffff1614610f7157600080fd5b6000610f7c30610c7a565b9050610f8781612110565b50565b610f9261145f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110169061307b565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110b430600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166d04ee2d6d415b85acef8100000000611467565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156110fa57600080fd5b505afa15801561110e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111329190612a8d565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561119457600080fd5b505afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc9190612a8d565b6040518363ffffffff1660e01b81526004016111e9929190612ef5565b60206040518083038186803b15801561120157600080fd5b505afa158015611215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112399190612a8d565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060146101000a81548160ff02191690831515021790555050565b61129f61145f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113239061307b565b60405180910390fd5b80601060166101000a81548160ff0219169083151502179055507f63644e36c4d797f3cc0e972693cfa06e15f15711b36e0fe7ab92fc5fca3880a7601060159054906101000a900460ff166040516113849190612f1e565b60405180910390a150565b6000601060169054906101000a900460ff16905090565b60006113d3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c7a565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce906130db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e90612f9b565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611625919061311b565b60405180910390a3505050565b60008083141561164557600090506116a7565b600082846116539190613287565b90508284826116629190613256565b146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061305b565b60405180910390fd5b809150505b92915050565b60006116ef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612398565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175e906130bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ce90612f5b565b60405180910390fd5b6000811161181a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118119061309b565b60405180910390fd5b611822610e1e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118905750611860610e1e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611efc57601060159054906101000a900460ff16156119ae57600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900460ff166119ad5760405180606001604052806000815260200160001515815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff02191690831515021790555060408201518160010160016101000a81548160ff0219169083151502179055509050505b5b601060149054906101000a900460ff166119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f4906130fb565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aa85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611afe5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b6d57601060159054906101000a900460ff1615611b6c57600f42611b259190613200565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b6000611b7830610c7a565b9050601060189054906101000a900460ff16158015611be55750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611efa57601060159054906101000a900460ff1615611e1f5742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a90612ffb565b60405180910390fd5b601060169054906101000a900460ff168015611cec5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16155b15611dbe57611d206064611d126050611d0488610c7a565b61163290919063ffffffff16565b6116ad90919063ffffffff16565b821115611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d599061301b565b60405180910390fd5b6001600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff0219169083151502179055505b601060179054906101000a900460ff1615611e1e57611ddb610618565b821115611e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e149061303b565b60405180910390fd5b5b5b6000811115611ee057611e7a6064611e6c600b54611e5e601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c7a565b61163290919063ffffffff16565b6116ad90919063ffffffff16565b811115611ed657611ed36064611ec5600b54611eb7601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c7a565b61163290919063ffffffff16565b6116ad90919063ffffffff16565b90505b611edf81612110565b5b60004790506000811115611ef857611ef747612023565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fa35750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fad57600090505b611fb9848484846123fb565b50505050565b6000838311158290612007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffe9190612f39565b60405180910390fd5b506000838561201691906132e1565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120736002846116ad90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561209e573d6000803e3d6000fd5b5050565b60006007548211156120e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e090612f7b565b60405180910390fd5b60006120f3612428565b905061210881846116ad90919063ffffffff16565b915050919050565b6001601060186101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121485761214761343c565b5b6040519080825280602002602001820160405280156121765781602001602082028036833780820191505090505b509050308160008151811061218e5761218d61340d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561223057600080fd5b505afa158015612244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122689190612a8d565b8160018151811061227c5761227b61340d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122e330600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611467565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612347959493929190613136565b600060405180830381600087803b15801561236157600080fd5b505af1158015612375573d6000803e3d6000fd5b50505050506000601060186101000a81548160ff02191690831515021790555050565b600080831182906123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d69190612f39565b60405180910390fd5b50600083856123ee9190613256565b9050809150509392505050565b8061240957612408612453565b5b612414848484612496565b8061242257612421612661565b5b50505050565b6000806000612435612675565b9150915061244c81836116ad90919063ffffffff16565b9250505090565b600060095414801561246757506000600a54145b1561247157612494565b600954600c81905550600a54600d8190555060006009819055506000600a819055505b565b6000806000806000806124a8876126e6565b95509550955095509550955061250686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259b85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125e7816127f6565b6125f184836128b3565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161264e919061311b565b60405180910390a3505050505050505050565b600c54600981905550600d54600a81905550565b6000806000600754905060006d04ee2d6d415b85acef810000000090506126b56d04ee2d6d415b85acef81000000006007546116ad90919063ffffffff16565b8210156126d9576007546d04ee2d6d415b85acef81000000009350935050506126e2565b81819350935050505b9091565b60008060008060008060008060006127038a600954600a546128ed565b9250925092506000612713612428565b905060008060006127268e878787612983565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061279083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fbf565b905092915050565b60008082846127a79190613200565b9050838110156127ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e390612fbb565b60405180910390fd5b8091505092915050565b6000612800612428565b90506000612817828461163290919063ffffffff16565b905061286b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6128c88260075461274e90919063ffffffff16565b6007819055506128e38160085461279890919063ffffffff16565b6008819055505050565b600080600080612919606461290b888a61163290919063ffffffff16565b6116ad90919063ffffffff16565b905060006129436064612935888b61163290919063ffffffff16565b6116ad90919063ffffffff16565b9050600061296c8261295e858c61274e90919063ffffffff16565b61274e90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061299c858961163290919063ffffffff16565b905060006129b3868961163290919063ffffffff16565b905060006129ca878961163290919063ffffffff16565b905060006129f3826129e5858761274e90919063ffffffff16565b61274e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081359050612a1b816137ef565b92915050565b600081519050612a30816137ef565b92915050565b600081359050612a4581613806565b92915050565b600081359050612a5a8161381d565b92915050565b600060208284031215612a7657612a7561346b565b5b6000612a8484828501612a0c565b91505092915050565b600060208284031215612aa357612aa261346b565b5b6000612ab184828501612a21565b91505092915050565b60008060408385031215612ad157612ad061346b565b5b6000612adf85828601612a0c565b9250506020612af085828601612a0c565b9150509250929050565b600080600060608486031215612b1357612b1261346b565b5b6000612b2186828701612a0c565b9350506020612b3286828701612a0c565b9250506040612b4386828701612a4b565b9150509250925092565b60008060408385031215612b6457612b6361346b565b5b6000612b7285828601612a0c565b9250506020612b8385828601612a4b565b9150509250929050565b600060208284031215612ba357612ba261346b565b5b6000612bb184828501612a36565b91505092915050565b600060208284031215612bd057612bcf61346b565b5b6000612bde84828501612a4b565b91505092915050565b6000612bf38383612bff565b60208301905092915050565b612c0881613315565b82525050565b612c1781613315565b82525050565b6000612c28826131bb565b612c3281856131de565b9350612c3d836131ab565b8060005b83811015612c6e578151612c558882612be7565b9750612c60836131d1565b925050600181019050612c41565b5085935050505092915050565b612c8481613327565b82525050565b612c938161336a565b82525050565b6000612ca4826131c6565b612cae81856131ef565b9350612cbe81856020860161337c565b612cc781613470565b840191505092915050565b6000612cdf6023836131ef565b9150612cea82613481565b604082019050919050565b6000612d02602a836131ef565b9150612d0d826134d0565b604082019050919050565b6000612d256022836131ef565b9150612d308261351f565b604082019050919050565b6000612d48601b836131ef565b9150612d538261356e565b602082019050919050565b6000612d6b6015836131ef565b9150612d7682613597565b602082019050919050565b6000612d8e6023836131ef565b9150612d99826135c0565b604082019050919050565b6000612db16018836131ef565b9150612dbc8261360f565b602082019050919050565b6000612dd4600f836131ef565b9150612ddf82613638565b602082019050919050565b6000612df76021836131ef565b9150612e0282613661565b604082019050919050565b6000612e1a6020836131ef565b9150612e25826136b0565b602082019050919050565b6000612e3d6029836131ef565b9150612e48826136d9565b604082019050919050565b6000612e606025836131ef565b9150612e6b82613728565b604082019050919050565b6000612e836024836131ef565b9150612e8e82613777565b604082019050919050565b6000612ea66018836131ef565b9150612eb1826137c6565b602082019050919050565b612ec581613353565b82525050565b612ed48161335d565b82525050565b6000602082019050612eef6000830184612c0e565b92915050565b6000604082019050612f0a6000830185612c0e565b612f176020830184612c0e565b9392505050565b6000602082019050612f336000830184612c7b565b92915050565b60006020820190508181036000830152612f538184612c99565b905092915050565b60006020820190508181036000830152612f7481612cd2565b9050919050565b60006020820190508181036000830152612f9481612cf5565b9050919050565b60006020820190508181036000830152612fb481612d18565b9050919050565b60006020820190508181036000830152612fd481612d3b565b9050919050565b60006020820190508181036000830152612ff481612d5e565b9050919050565b6000602082019050818103600083015261301481612d81565b9050919050565b6000602082019050818103600083015261303481612da4565b9050919050565b6000602082019050818103600083015261305481612dc7565b9050919050565b6000602082019050818103600083015261307481612dea565b9050919050565b6000602082019050818103600083015261309481612e0d565b9050919050565b600060208201905081810360008301526130b481612e30565b9050919050565b600060208201905081810360008301526130d481612e53565b9050919050565b600060208201905081810360008301526130f481612e76565b9050919050565b6000602082019050818103600083015261311481612e99565b9050919050565b60006020820190506131306000830184612ebc565b92915050565b600060a08201905061314b6000830188612ebc565b6131586020830187612c8a565b818103604083015261316a8186612c1d565b90506131796060830185612c0e565b6131866080830184612ebc565b9695505050505050565b60006020820190506131a56000830184612ecb565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061320b82613353565b915061321683613353565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561324b5761324a6133af565b5b828201905092915050565b600061326182613353565b915061326c83613353565b92508261327c5761327b6133de565b5b828204905092915050565b600061329282613353565b915061329d83613353565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132d6576132d56133af565b5b828202905092915050565b60006132ec82613353565b91506132f783613353565b92508282101561330a576133096133af565b5b828203905092915050565b600061332082613333565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061337582613353565b9050919050565b60005b8381101561339a57808201518184015260208101905061337f565b838111156133a9576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f526174652063616e277420657863656564203530250000000000000000000000600082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f596f7520666f72676f7420796f7572206d6f6f6e206261670000000000000000600082015250565b7f596f75206172652061207768616c650000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6137f881613315565b811461380357600080fd5b50565b61380f81613327565b811461381a57600080fd5b50565b61382681613353565b811461383157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207f7fb9a330608541e24ec462a8f7e120216d315a29b1431c41a2b555e0bbbb4064736f6c6343000805003300000000000000000000000096add0d38eb6dcc205f31ce49289c9e11d1eb2ce

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806370a08231116100d1578063a9fc35a91161008a578063ca43d46711610064578063ca43d46714610501578063d8f406e31461052a578063db92dbb614610555578063dd62ed3e1461058057610171565b8063a9fc35a914610496578063c3c8cd80146104d3578063c9567bf9146104ea57610171565b806370a0823114610384578063715018a6146103c15780638da5cb5b146103d857806395d89b4114610403578063a9059cbb1461042e578063a985ceef1461046b57610171565b806327f3a72a1161012357806327f3a72a1461029a578063313ce567146102c557806345596e2e146102f0578063578d610f146103195780635932ead1146103445780636fc3eaec1461036d57610171565b806306fdde0314610176578063095ea7b3146101a15780630e32a09a146101de57806318160ddd14610209578063220e4e521461023457806323b872dd1461025d57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105bd565b6040516101989190612f39565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612b4d565b6105fa565b6040516101d59190612f1e565b60405180910390f35b3480156101ea57600080fd5b506101f3610618565b604051610200919061311b565b60405180910390f35b34801561021557600080fd5b5061021e610812565b60405161022b919061311b565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190612b8d565b610828565b005b34801561026957600080fd5b50610284600480360381019061027f9190612afa565b610920565b6040516102919190612f1e565b60405180910390f35b3480156102a657600080fd5b506102af6109f9565b6040516102bc919061311b565b60405180910390f35b3480156102d157600080fd5b506102da610a09565b6040516102e79190613190565b60405180910390f35b3480156102fc57600080fd5b5061031760048036038101906103129190612bba565b610a12565b005b34801561032557600080fd5b5061032e610af9565b60405161033b9190612f1e565b60405180910390f35b34801561035057600080fd5b5061036b60048036038101906103669190612b8d565b610b10565b005b34801561037957600080fd5b50610382610c08565b005b34801561039057600080fd5b506103ab60048036038101906103a69190612a60565b610c7a565b6040516103b8919061311b565b60405180910390f35b3480156103cd57600080fd5b506103d6610ccb565b005b3480156103e457600080fd5b506103ed610e1e565b6040516103fa9190612eda565b60405180910390f35b34801561040f57600080fd5b50610418610e47565b6040516104259190612f39565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190612b4d565b610e84565b6040516104629190612f1e565b60405180910390f35b34801561047757600080fd5b50610480610ea2565b60405161048d9190612f1e565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190612a60565b610eb9565b6040516104ca919061311b565b60405180910390f35b3480156104df57600080fd5b506104e8610f10565b005b3480156104f657600080fd5b506104ff610f8a565b005b34801561050d57600080fd5b5061052860048036038101906105239190612b8d565b611297565b005b34801561053657600080fd5b5061053f61138f565b60405161054c9190612f1e565b60405180910390f35b34801561056157600080fd5b5061056a6113a6565b604051610577919061311b565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a29190612aba565b6113d8565b6040516105b4919061311b565b60405180910390f35b60606040518060400160405280600b81526020017f4d6f6f6e42616720496e75000000000000000000000000000000000000000000815250905090565b600061060e61060761145f565b8484611467565b6001905092915050565b600080610650606461064260056d04ee2d6d415b85acef810000000061163290919063ffffffff16565b6116ad90919063ffffffff16565b9050600061065c6113a6565b9050600081141561067157819250505061080f565b6106a66064610698604b6d04ee2d6d415b85acef810000000061163290919063ffffffff16565b6116ad90919063ffffffff16565b8110156106d7576106d460646106c6604b8561163290919063ffffffff16565b6116ad90919063ffffffff16565b91505b61070c60646106fe60326d04ee2d6d415b85acef810000000061163290919063ffffffff16565b6116ad90919063ffffffff16565b81101561073d5761073a606461072c60328561163290919063ffffffff16565b6116ad90919063ffffffff16565b91505b610772606461076460196d04ee2d6d415b85acef810000000061163290919063ffffffff16565b6116ad90919063ffffffff16565b8110156107a3576107a0606461079260198561163290919063ffffffff16565b6116ad90919063ffffffff16565b91505b6107d860646107ca600a6d04ee2d6d415b85acef810000000061163290919063ffffffff16565b6116ad90919063ffffffff16565b8110156108095761080660646107f8600a8561163290919063ffffffff16565b6116ad90919063ffffffff16565b91505b81925050505b90565b60006d04ee2d6d415b85acef8100000000905090565b61083061145f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b49061307b565b60405180910390fd5b80601060176101000a81548160ff0219169083151502179055507fa67e8d4dcc23c67c82463cc100c7325285bfa45181431845977bc2ed5afb1b7d601060179054906101000a900460ff166040516109159190612f1e565b60405180910390a150565b600061092d8484846116f7565b6109ee8461093961145f565b6109e98560405180606001604052806028815260200161383560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061099f61145f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbf9092919063ffffffff16565b611467565b600190509392505050565b6000610a0430610c7a565b905090565b60006012905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a5361145f565b73ffffffffffffffffffffffffffffffffffffffff1614610a7357600080fd5b60338110610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad90612fdb565b60405180910390fd5b80600b819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600b54604051610aee919061311b565b60405180910390a150565b6000601060179054906101000a900460ff16905090565b610b1861145f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9c9061307b565b60405180910390fd5b80601060156101000a81548160ff0219169083151502179055507f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f28706601060159054906101000a900460ff16604051610bfd9190612f1e565b60405180910390a150565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c4961145f565b73ffffffffffffffffffffffffffffffffffffffff1614610c6957600080fd5b6000479050610c7781612023565b50565b6000610cc4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120a2565b9050919050565b610cd361145f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d579061307b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4d4f4f4e42490000000000000000000000000000000000000000000000000000815250905090565b6000610e98610e9161145f565b84846116f7565b6001905092915050565b6000601060159054906101000a900460ff16905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015442610f0991906132e1565b9050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f5161145f565b73ffffffffffffffffffffffffffffffffffffffff1614610f7157600080fd5b6000610f7c30610c7a565b9050610f8781612110565b50565b610f9261145f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110169061307b565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110b430600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166d04ee2d6d415b85acef8100000000611467565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156110fa57600080fd5b505afa15801561110e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111329190612a8d565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561119457600080fd5b505afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc9190612a8d565b6040518363ffffffff1660e01b81526004016111e9929190612ef5565b60206040518083038186803b15801561120157600080fd5b505afa158015611215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112399190612a8d565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060146101000a81548160ff02191690831515021790555050565b61129f61145f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113239061307b565b60405180910390fd5b80601060166101000a81548160ff0219169083151502179055507f63644e36c4d797f3cc0e972693cfa06e15f15711b36e0fe7ab92fc5fca3880a7601060159054906101000a900460ff166040516113849190612f1e565b60405180910390a150565b6000601060169054906101000a900460ff16905090565b60006113d3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c7a565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce906130db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e90612f9b565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611625919061311b565b60405180910390a3505050565b60008083141561164557600090506116a7565b600082846116539190613287565b90508284826116629190613256565b146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061305b565b60405180910390fd5b809150505b92915050565b60006116ef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612398565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175e906130bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ce90612f5b565b60405180910390fd5b6000811161181a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118119061309b565b60405180910390fd5b611822610e1e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118905750611860610e1e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611efc57601060159054906101000a900460ff16156119ae57600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900460ff166119ad5760405180606001604052806000815260200160001515815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff02191690831515021790555060408201518160010160016101000a81548160ff0219169083151502179055509050505b5b601060149054906101000a900460ff166119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f4906130fb565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aa85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611afe5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b6d57601060159054906101000a900460ff1615611b6c57600f42611b259190613200565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b6000611b7830610c7a565b9050601060189054906101000a900460ff16158015611be55750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611efa57601060159054906101000a900460ff1615611e1f5742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a90612ffb565b60405180910390fd5b601060169054906101000a900460ff168015611cec5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16155b15611dbe57611d206064611d126050611d0488610c7a565b61163290919063ffffffff16565b6116ad90919063ffffffff16565b821115611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d599061301b565b60405180910390fd5b6001600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff0219169083151502179055505b601060179054906101000a900460ff1615611e1e57611ddb610618565b821115611e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e149061303b565b60405180910390fd5b5b5b6000811115611ee057611e7a6064611e6c600b54611e5e601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c7a565b61163290919063ffffffff16565b6116ad90919063ffffffff16565b811115611ed657611ed36064611ec5600b54611eb7601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c7a565b61163290919063ffffffff16565b6116ad90919063ffffffff16565b90505b611edf81612110565b5b60004790506000811115611ef857611ef747612023565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fa35750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fad57600090505b611fb9848484846123fb565b50505050565b6000838311158290612007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffe9190612f39565b60405180910390fd5b506000838561201691906132e1565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120736002846116ad90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561209e573d6000803e3d6000fd5b5050565b60006007548211156120e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e090612f7b565b60405180910390fd5b60006120f3612428565b905061210881846116ad90919063ffffffff16565b915050919050565b6001601060186101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121485761214761343c565b5b6040519080825280602002602001820160405280156121765781602001602082028036833780820191505090505b509050308160008151811061218e5761218d61340d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561223057600080fd5b505afa158015612244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122689190612a8d565b8160018151811061227c5761227b61340d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122e330600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611467565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612347959493929190613136565b600060405180830381600087803b15801561236157600080fd5b505af1158015612375573d6000803e3d6000fd5b50505050506000601060186101000a81548160ff02191690831515021790555050565b600080831182906123df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d69190612f39565b60405180910390fd5b50600083856123ee9190613256565b9050809150509392505050565b8061240957612408612453565b5b612414848484612496565b8061242257612421612661565b5b50505050565b6000806000612435612675565b9150915061244c81836116ad90919063ffffffff16565b9250505090565b600060095414801561246757506000600a54145b1561247157612494565b600954600c81905550600a54600d8190555060006009819055506000600a819055505b565b6000806000806000806124a8876126e6565b95509550955095509550955061250686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259b85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125e7816127f6565b6125f184836128b3565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161264e919061311b565b60405180910390a3505050505050505050565b600c54600981905550600d54600a81905550565b6000806000600754905060006d04ee2d6d415b85acef810000000090506126b56d04ee2d6d415b85acef81000000006007546116ad90919063ffffffff16565b8210156126d9576007546d04ee2d6d415b85acef81000000009350935050506126e2565b81819350935050505b9091565b60008060008060008060008060006127038a600954600a546128ed565b9250925092506000612713612428565b905060008060006127268e878787612983565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061279083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fbf565b905092915050565b60008082846127a79190613200565b9050838110156127ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e390612fbb565b60405180910390fd5b8091505092915050565b6000612800612428565b90506000612817828461163290919063ffffffff16565b905061286b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6128c88260075461274e90919063ffffffff16565b6007819055506128e38160085461279890919063ffffffff16565b6008819055505050565b600080600080612919606461290b888a61163290919063ffffffff16565b6116ad90919063ffffffff16565b905060006129436064612935888b61163290919063ffffffff16565b6116ad90919063ffffffff16565b9050600061296c8261295e858c61274e90919063ffffffff16565b61274e90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061299c858961163290919063ffffffff16565b905060006129b3868961163290919063ffffffff16565b905060006129ca878961163290919063ffffffff16565b905060006129f3826129e5858761274e90919063ffffffff16565b61274e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081359050612a1b816137ef565b92915050565b600081519050612a30816137ef565b92915050565b600081359050612a4581613806565b92915050565b600081359050612a5a8161381d565b92915050565b600060208284031215612a7657612a7561346b565b5b6000612a8484828501612a0c565b91505092915050565b600060208284031215612aa357612aa261346b565b5b6000612ab184828501612a21565b91505092915050565b60008060408385031215612ad157612ad061346b565b5b6000612adf85828601612a0c565b9250506020612af085828601612a0c565b9150509250929050565b600080600060608486031215612b1357612b1261346b565b5b6000612b2186828701612a0c565b9350506020612b3286828701612a0c565b9250506040612b4386828701612a4b565b9150509250925092565b60008060408385031215612b6457612b6361346b565b5b6000612b7285828601612a0c565b9250506020612b8385828601612a4b565b9150509250929050565b600060208284031215612ba357612ba261346b565b5b6000612bb184828501612a36565b91505092915050565b600060208284031215612bd057612bcf61346b565b5b6000612bde84828501612a4b565b91505092915050565b6000612bf38383612bff565b60208301905092915050565b612c0881613315565b82525050565b612c1781613315565b82525050565b6000612c28826131bb565b612c3281856131de565b9350612c3d836131ab565b8060005b83811015612c6e578151612c558882612be7565b9750612c60836131d1565b925050600181019050612c41565b5085935050505092915050565b612c8481613327565b82525050565b612c938161336a565b82525050565b6000612ca4826131c6565b612cae81856131ef565b9350612cbe81856020860161337c565b612cc781613470565b840191505092915050565b6000612cdf6023836131ef565b9150612cea82613481565b604082019050919050565b6000612d02602a836131ef565b9150612d0d826134d0565b604082019050919050565b6000612d256022836131ef565b9150612d308261351f565b604082019050919050565b6000612d48601b836131ef565b9150612d538261356e565b602082019050919050565b6000612d6b6015836131ef565b9150612d7682613597565b602082019050919050565b6000612d8e6023836131ef565b9150612d99826135c0565b604082019050919050565b6000612db16018836131ef565b9150612dbc8261360f565b602082019050919050565b6000612dd4600f836131ef565b9150612ddf82613638565b602082019050919050565b6000612df76021836131ef565b9150612e0282613661565b604082019050919050565b6000612e1a6020836131ef565b9150612e25826136b0565b602082019050919050565b6000612e3d6029836131ef565b9150612e48826136d9565b604082019050919050565b6000612e606025836131ef565b9150612e6b82613728565b604082019050919050565b6000612e836024836131ef565b9150612e8e82613777565b604082019050919050565b6000612ea66018836131ef565b9150612eb1826137c6565b602082019050919050565b612ec581613353565b82525050565b612ed48161335d565b82525050565b6000602082019050612eef6000830184612c0e565b92915050565b6000604082019050612f0a6000830185612c0e565b612f176020830184612c0e565b9392505050565b6000602082019050612f336000830184612c7b565b92915050565b60006020820190508181036000830152612f538184612c99565b905092915050565b60006020820190508181036000830152612f7481612cd2565b9050919050565b60006020820190508181036000830152612f9481612cf5565b9050919050565b60006020820190508181036000830152612fb481612d18565b9050919050565b60006020820190508181036000830152612fd481612d3b565b9050919050565b60006020820190508181036000830152612ff481612d5e565b9050919050565b6000602082019050818103600083015261301481612d81565b9050919050565b6000602082019050818103600083015261303481612da4565b9050919050565b6000602082019050818103600083015261305481612dc7565b9050919050565b6000602082019050818103600083015261307481612dea565b9050919050565b6000602082019050818103600083015261309481612e0d565b9050919050565b600060208201905081810360008301526130b481612e30565b9050919050565b600060208201905081810360008301526130d481612e53565b9050919050565b600060208201905081810360008301526130f481612e76565b9050919050565b6000602082019050818103600083015261311481612e99565b9050919050565b60006020820190506131306000830184612ebc565b92915050565b600060a08201905061314b6000830188612ebc565b6131586020830187612c8a565b818103604083015261316a8186612c1d565b90506131796060830185612c0e565b6131866080830184612ebc565b9695505050505050565b60006020820190506131a56000830184612ecb565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061320b82613353565b915061321683613353565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561324b5761324a6133af565b5b828201905092915050565b600061326182613353565b915061326c83613353565b92508261327c5761327b6133de565b5b828204905092915050565b600061329282613353565b915061329d83613353565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132d6576132d56133af565b5b828202905092915050565b60006132ec82613353565b91506132f783613353565b92508282101561330a576133096133af565b5b828203905092915050565b600061332082613333565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061337582613353565b9050919050565b60005b8381101561339a57808201518184015260208101905061337f565b838111156133a9576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f526174652063616e277420657863656564203530250000000000000000000000600082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f596f7520666f72676f7420796f7572206d6f6f6e206261670000000000000000600082015250565b7f596f75206172652061207768616c650000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6137f881613315565b811461380357600080fd5b50565b61380f81613327565b811461381a57600080fd5b50565b61382681613353565b811461383157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207f7fb9a330608541e24ec462a8f7e120216d315a29b1431c41a2b555e0bbbb4064736f6c63430008050033

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

00000000000000000000000096add0d38eb6dcc205f31ce49289c9e11d1eb2ce

-----Decoded View---------------
Arg [0] : teamWallet (address): 0x96Add0d38EB6Dcc205F31Ce49289c9e11D1Eb2CE

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000096add0d38eb6dcc205f31ce49289c9e11d1eb2ce


Deployed Bytecode Sourcemap

3691:13119:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5661:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6513:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16201:606;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5938:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15336:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6682:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15524:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5847:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14775:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15846:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15001:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14507:190;;;;;;;;;;;;;:::i;:::-;;6041:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3043:148;;;;;;;;;;;;;:::i;:::-;;2829:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5752:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6187:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15632:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15958:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14304:191;;;;;;;;;;;;;:::i;:::-;;13883:413;;;;;;;;;;;;;:::i;:::-;;15167:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15740:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16092:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6362:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5661:83;5698:13;5731:5;;;;;;;;;;;;;;;;;5724:12;;5661:83;:::o;6513:161::-;6588:4;6605:39;6614:12;:10;:12::i;:::-;6628:7;6637:6;6605:8;:39::i;:::-;6662:4;6655:11;;6513:161;;;;:::o;16201:606::-;16248:7;16265:19;16287:23;16306:3;16287:14;16299:1;4145:21;16287:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;16265:45;;16318:19;16340:14;:12;:14::i;:::-;16318:36;;16380:1;16365:11;:16;16362:39;;;16390:11;16383:18;;;;;;16362:39;16426:24;16446:3;16426:15;16438:2;4145:21;16426:11;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;16412:11;:38;16409:85;;;16466:28;16490:3;16466:19;16482:2;16466:11;:15;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16452:42;;16409:85;16519:24;16539:3;16519:15;16531:2;4145:21;16519:11;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;16505:11;:38;16502:85;;;16559:28;16583:3;16559:19;16575:2;16559:11;:15;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16545:42;;16502:85;16612:24;16632:3;16612:15;16624:2;4145:21;16612:11;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;16598:11;:38;16595:85;;;16652:28;16676:3;16652:19;16668:2;16652:11;:15;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16638:42;;16595:85;16705:24;16725:3;16705:15;16717:2;4145:21;16705:11;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;16691:11;:38;16688:85;;;16745:28;16769:3;16745:19;16761:2;16745:11;:15;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16731:42;;16688:85;16788:11;16781:18;;;;16201:606;;:::o;5938:95::-;5991:7;4145:21;6011:14;;5938:95;:::o;15336:176::-;2966:12;:10;:12::i;:::-;2956:22;;:6;;;;;;;;;;:22;;;2948:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15435:5:::1;15412:20;;:28;;;;;;;;;;;;;;;;;;15456:48;15483:20;;;;;;;;;;;15456:48;;;;;;:::i;:::-;;;;;;;;15336:176:::0;:::o;6682:313::-;6780:4;6797:36;6807:6;6815:9;6826:6;6797:9;:36::i;:::-;6844:121;6853:6;6861:12;:10;:12::i;:::-;6875:89;6913:6;6875:89;;;;;;;;;;;;;;;;;:11;:19;6887:6;6875:19;;;;;;;;;;;;;;;:33;6895:12;:10;:12::i;:::-;6875:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6844:8;:121::i;:::-;6983:4;6976:11;;6682:313;;;;;:::o;15524:100::-;15568:4;15592:24;15610:4;15592:9;:24::i;:::-;15585:31;;15524:100;:::o;5847:83::-;5888:5;4398:2;5906:16;;5847:83;:::o;14775:218::-;14853:11;;;;;;;;;;;14837:27;;:12;:10;:12::i;:::-;:27;;;14829:36;;;;;;14891:2;14884:4;:9;14876:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;14941:4;14930:8;:15;;;;14961:24;14976:8;;14961:24;;;;;;:::i;:::-;;;;;;;;14775:218;:::o;15846:104::-;15898:4;15922:20;;;;;;;;;;;15915:27;;15846:104;:::o;15001:160::-;2966:12;:10;:12::i;:::-;2956:22;;:6;;;;;;;;;;:22;;;2948:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15092:5:::1;15073:16;;:24;;;;;;;;;;;;;;;;;;15113:40;15136:16;;;;;;;;;;;15113:40;;;;;;:::i;:::-;;;;;;;;15001:160:::0;:::o;14507:190::-;14573:11;;;;;;;;;;;14557:27;;:12;:10;:12::i;:::-;:27;;;14549:36;;;;;;14596:26;14625:21;14596:50;;14657:32;14670:18;14657:12;:32::i;:::-;14538:159;14507:190::o;6041:138::-;6107:7;6134:37;6154:7;:16;6162:7;6154:16;;;;;;;;;;;;;;;;6134:19;:37::i;:::-;6127:44;;6041:138;;;:::o;3043:148::-;2966:12;:10;:12::i;:::-;2956:22;;:6;;;;;;;;;;:22;;;2948:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3150:1:::1;3113:40;;3134:6;::::0;::::1;;;;;;;;3113:40;;;;;;;;;;;;3181:1;3164:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3043:148::o:0;2829:79::-;2867:7;2894:6;;;;;;;;;;;2887:13;;2829:79;:::o;5752:87::-;5791:13;5824:7;;;;;;;;;;;;;;;;;5817:14;;5752:87;:::o;6187:167::-;6265:4;6282:42;6292:12;:10;:12::i;:::-;6306:9;6317:6;6282:9;:42::i;:::-;6342:4;6335:11;;6187:167;;;;:::o;15632:96::-;15680:4;15704:16;;;;;;;;;;;15697:23;;15632:96;:::o;15958:126::-;16014:4;16056:8;:15;16065:5;16056:15;;;;;;;;;;;;;;;:20;;;16038:15;:38;;;;:::i;:::-;16031:45;;15958:126;;;:::o;14304:191::-;14370:11;;;;;;;;;;;14354:27;;:12;:10;:12::i;:::-;:27;;;14346:36;;;;;;14393:23;14419:24;14437:4;14419:9;:24::i;:::-;14393:50;;14454:33;14471:15;14454:16;:33::i;:::-;14335:160;14304:191::o;13883:413::-;2966:12;:10;:12::i;:::-;2956:22;;:6;;;;;;;;;;:22;;;2948:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13931:35:::1;13988:42;13931:100;;14057:16;14039:15;;:34;;;;;;;;;;;;;;;;;;14081:58;14098:4;14113:15;;;;;;;;;;;4145:21;14081:8;:58::i;:::-;14184:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14166:53;;;14228:4;14235:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14166:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14150:13;;:109;;;;;;;;;;;;;;;;;;14284:4;14270:11;;:18;;;;;;;;;;;;;;;;;;13923:373;13883:413::o:0;15167:157::-;2966:12;:10;:12::i;:::-;2956:22;;:6;;;;;;;;;;:22;;;2948:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15256:5:::1;15238:15;;:23;;;;;;;;;;;;;;;;;;15277:39;15299:16;;;;;;;;;;;15277:39;;;;;;:::i;:::-;;;;;;;;15167:157:::0;:::o;15740:94::-;15787:4;15811:15;;;;;;;;;;;15804:22;;15740:94;:::o;16092:101::-;16137:4;16161:24;16171:13;;;;;;;;;;;16161:9;:24::i;:::-;16154:31;;16092:101;:::o;6362:143::-;6443:7;6470:11;:18;6482:5;6470:18;;;;;;;;;;;;;;;:27;6489:7;6470:27;;;;;;;;;;;;;;;;6463:34;;6362:143;;;;:::o;238:98::-;291:7;318:10;311:17;;238:98;:::o;7610:335::-;7720:1;7703:19;;:5;:19;;;;7695:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7801:1;7782:21;;:7;:21;;;;7774:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7883:6;7853:11;:18;7865:5;7853:18;;;;;;;;;;;;;;;:27;7872:7;7853:27;;;;;;;;;;;;;;;:36;;;;7921:7;7905:32;;7914:5;7905:32;;;7930:6;7905:32;;;;;;:::i;:::-;;;;;;;;7610:335;;;:::o;1573:245::-;1631:7;1659:1;1654;:6;1651:46;;;1684:1;1677:8;;;;1651:46;1707:9;1723:1;1719;:5;;;;:::i;:::-;1707:17;;1752:1;1747;1743;:5;;;;:::i;:::-;:10;1735:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1809:1;1802:8;;;1573:245;;;;;:::o;1826:132::-;1884:7;1911:39;1915:1;1918;1911:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1904:46;;1826:132;;;;:::o;7953:2442::-;8057:1;8041:18;;:4;:18;;;;8033:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8134:1;8120:16;;:2;:16;;;;8112:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8204:1;8195:6;:10;8187:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8275:7;:5;:7::i;:::-;8267:15;;:4;:15;;;;:32;;;;;8292:7;:5;:7::i;:::-;8286:13;;:2;:13;;;;8267:32;8264:1927;;;8319:16;;;;;;;;;;;8316:172;;;8360:8;:20;8369:10;8360:20;;;;;;;;;;;;;;;:27;;;;;;;;;;;;8356:117;;8435:18;;;;;;;;8440:1;8435:18;;;;8442:5;8435:18;;;;;;8448:4;8435:18;;;;;8412:8;:20;8421:10;8412:20;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8356:117;8316:172;8532:11;;;;;;;;;;;8524:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8598:13;;;;;;;;;;;8590:21;;:4;:21;;;:55;;;;;8629:15;;;;;;;;;;;8615:30;;:2;:30;;;;8590:55;:82;;;;;8650:18;:22;8669:2;8650:22;;;;;;;;;;;;;;;;;;;;;;;;;8649:23;8590:82;8587:235;;;8696:16;;;;;;;;;;;8693:114;;;8776:10;8757:15;:30;;;;:::i;:::-;8737:8;:12;8746:2;8737:12;;;;;;;;;;;;;;;:17;;:50;;;;8693:114;8587:235;8836:28;8867:24;8885:4;8867:9;:24::i;:::-;8836:55;;8933:6;;;;;;;;;;;8932:7;:32;;;;;8951:13;;;;;;;;;;;8943:21;;:4;:21;;;;8932:32;8929:1251;;;8990:16;;;;;;;;;;;8987:638;;;9061:15;9039:8;:14;9048:4;9039:14;;;;;;;;;;;;;;;:19;;;:37;9031:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9184:15;;;;;;;;;;;:44;;;;;9204:8;:14;9213:4;9204:14;;;;;;;;;;;;;;;:24;;;;;;;;;;;;9203:25;9184:44;9181:229;;;9271:32;9299:3;9271:23;9291:2;9271:15;9281:4;9271:9;:15::i;:::-;:19;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;9261:6;:42;;9253:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9382:4;9355:8;:14;9364:4;9355:14;;;;;;;;;;;;;;;:24;;;:31;;;;;;;;;;;;;;;;;;9181:229;9480:20;;;;;;;;;;;9477:129;;;9546:16;:14;:16::i;:::-;9536:6;:26;;9528:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9477:129;8987:638;9671:1;9648:20;:24;9645:328;;;9723:47;9766:3;9723:38;9752:8;;9723:24;9733:13;;;;;;;;;;;9723:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;9700:20;:70;9697:196;;;9822:47;9865:3;9822:38;9851:8;;9822:24;9832:13;;;;;;;;;;;9822:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;9799:70;;9697:196;9915:38;9932:20;9915:16;:38::i;:::-;9645:328;9991:26;10020:21;9991:50;;10084:1;10063:18;:22;10060:105;;;10110:35;10123:21;10110:12;:35::i;:::-;10060:105;8966:1214;8929:1251;8301:1890;8264:1927;10201:12;10216:4;10201:19;;10236:18;:24;10255:4;10236:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10264:18;:22;10283:2;10264:22;;;;;;;;;;;;;;;;;;;;;;;;;10236:50;10233:96;;;10312:5;10302:15;;10233:96;10349:38;10364:4;10369:2;10372:6;10379:7;10349:14;:38::i;:::-;8022:2373;7953:2442;;;:::o;1375:190::-;1461:7;1494:1;1489;:6;;1497:12;1481:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1521:9;1537:1;1533;:5;;;;:::i;:::-;1521:17;;1556:1;1549:8;;;1375:190;;;;;:::o;10902:100::-;10959:11;;;;;;;;;;;:20;;:35;10980:13;10991:1;10980:6;:10;;:13;;;;:::i;:::-;10959:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10902:100;:::o;7003:254::-;7070:7;7109;;7098;:18;;7090:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7174:19;7197:10;:8;:10::i;:::-;7174:33;;7225:24;7237:11;7225:7;:11;;:24;;;;:::i;:::-;7218:31;;;7003:254;;;:::o;10403:483::-;5269:4;5260:6;;:13;;;;;;;;;;;;;;;;;;10481:21:::1;10519:1;10505:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10481:40;;10550:4;10532;10537:1;10532:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10576:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10566:4;10571:1;10566:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10609:62;10626:4;10641:15;;;;;;;;;;;10659:11;10609:8;:62::i;:::-;10682:15;;;;;;;;;;;:66;;;10763:11;10789:1;10805:4;10832;10852:15;10682:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10470:416;5305:5:::0;5296:6;;:14;;;;;;;;;;;;;;;;;;10403:483;:::o;1966:189::-;2052:7;2084:1;2080;:5;2087:12;2072:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2111:9;2127:1;2123;:5;;;;:::i;:::-;2111:17;;2146:1;2139:8;;;1966:189;;;;;:::o;11014:263::-;11126:7;11122:40;;11148:14;:12;:14::i;:::-;11122:40;11173:44;11191:6;11199:9;11210:6;11173:17;:44::i;:::-;11232:7;11228:41;;11254:15;:13;:15::i;:::-;11228:41;11014:263;;;;:::o;12618:163::-;12659:7;12680:15;12697;12716:19;:17;:19::i;:::-;12679:56;;;;12753:20;12765:7;12753;:11;;:20;;;;:::i;:::-;12746:27;;;;12618:163;:::o;7265:210::-;7322:1;7311:7;;:12;:29;;;;;7339:1;7327:8;;:13;7311:29;7308:41;;;7342:7;;7308:41;7377:7;;7359:15;:25;;;;7414:8;;7395:16;:27;;;;7443:1;7433:7;:11;;;;7466:1;7455:8;:12;;;;7265:210;:::o;11285:490::-;11384:15;11401:23;11426:12;11440:23;11465:12;11479:13;11496:19;11507:7;11496:10;:19::i;:::-;11383:132;;;;;;;;;;;;11544:28;11564:7;11544;:15;11552:6;11544:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11526:7;:15;11534:6;11526:15;;;;;;;;;;;;;;;:46;;;;11604:39;11627:15;11604:7;:18;11612:9;11604:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11583:7;:18;11591:9;11583:18;;;;;;;;;;;;;;;:60;;;;11657:16;11667:5;11657:9;:16::i;:::-;11684:23;11696:4;11702;11684:11;:23::i;:::-;11740:9;11723:44;;11732:6;11723:44;;;11751:15;11723:44;;;;;;:::i;:::-;;;;;;;;11372:403;;;;;;11285:490;;;:::o;7487:115::-;7541:15;;7531:7;:25;;;;7578:16;;7567:8;:27;;;;7487:115::o;12789:255::-;12839:7;12848;12868:15;12886:7;;12868:25;;12904:15;4145:21;12904:25;;12953:20;4145:21;12953:7;;:11;;:20;;;;:::i;:::-;12943:7;:30;12940:60;;;12983:7;;4145:21;12975:25;;;;;;;;12940:60;13019:7;13028;13011:25;;;;;;12789:255;;;:::o;11783:468::-;11842:7;11851;11860;11869;11878;11887;11908:23;11933:12;11947:13;11964:39;11976:7;11985;;11994:8;;11964:11;:39::i;:::-;11907:96;;;;;;12014:19;12037:10;:8;:10::i;:::-;12014:33;;12059:15;12076:23;12101:12;12117:46;12129:7;12138:4;12144:5;12151:11;12117;:46::i;:::-;12058:105;;;;;;12182:7;12191:15;12208:4;12214:15;12231:4;12237:5;12174:69;;;;;;;;;;;;;;;;;;;11783:468;;;;;;;:::o;1231:136::-;1289:7;1316:43;1320:1;1323;1316:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1309:50;;1231:136;;;;:::o;1044:179::-;1102:7;1122:9;1138:1;1134;:5;;;;:::i;:::-;1122:17;;1163:1;1158;:6;;1150:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1214:1;1207:8;;;1044:179;;;;:::o;13469:214::-;13522:19;13545:10;:8;:10::i;:::-;13522:33;;13566:13;13582:22;13592:11;13582:5;:9;;:22;;;;:::i;:::-;13566:38;;13642:33;13669:5;13642:7;:22;13658:4;13642:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13617:7;:22;13633:4;13617:22;;;;;;;;;;;;;;;:58;;;;13511:172;;13469:214;:::o;13691:147::-;13769:17;13781:4;13769:7;;:11;;:17;;;;:::i;:::-;13759:7;:27;;;;13810:20;13825:4;13810:10;;:14;;:20;;;;:::i;:::-;13797:10;:33;;;;13691:147;;:::o;12259:351::-;12352:7;12361;12370;12390:12;12405:28;12429:3;12405:19;12417:6;12405:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12390:43;;12444:13;12460:29;12485:3;12460:20;12472:7;12460;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12444:45;;12500:23;12526:28;12548:5;12526:17;12538:4;12526:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12500:54;;12573:15;12590:4;12596:5;12565:37;;;;;;;;;12259:351;;;;;;;:::o;13052:409::-;13162:7;13171;13180;13200:15;13218:24;13230:11;13218:7;:11;;:24;;;;:::i;:::-;13200:42;;13253:12;13268:21;13277:11;13268:4;:8;;:21;;;;:::i;:::-;13253:36;;13300:13;13316:22;13326:11;13316:5;:9;;:22;;;;:::i;:::-;13300:38;;13349:23;13375:28;13397:5;13375:17;13387:4;13375:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13349:54;;13422:7;13431:15;13448:4;13414:39;;;;;;;;;;13052:409;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:329::-;644:6;693:2;681:9;672:7;668:23;664:32;661:2;;;699:79;;:::i;:::-;661:2;819:1;844:53;889:7;880:6;869:9;865:22;844:53;:::i;:::-;834:63;;790:117;651:263;;;;:::o;920:351::-;990:6;1039:2;1027:9;1018:7;1014:23;1010:32;1007:2;;;1045:79;;:::i;:::-;1007:2;1165:1;1190:64;1246:7;1237:6;1226:9;1222:22;1190:64;:::i;:::-;1180:74;;1136:128;997:274;;;;:::o;1277:474::-;1345:6;1353;1402:2;1390:9;1381:7;1377:23;1373:32;1370:2;;;1408:79;;:::i;:::-;1370:2;1528:1;1553:53;1598:7;1589:6;1578:9;1574:22;1553:53;:::i;:::-;1543:63;;1499:117;1655:2;1681:53;1726:7;1717:6;1706:9;1702:22;1681:53;:::i;:::-;1671:63;;1626:118;1360:391;;;;;:::o;1757:619::-;1834:6;1842;1850;1899:2;1887:9;1878:7;1874:23;1870:32;1867:2;;;1905:79;;:::i;:::-;1867:2;2025:1;2050:53;2095:7;2086:6;2075:9;2071:22;2050:53;:::i;:::-;2040:63;;1996:117;2152:2;2178:53;2223:7;2214:6;2203:9;2199:22;2178:53;:::i;:::-;2168:63;;2123:118;2280:2;2306:53;2351:7;2342:6;2331:9;2327:22;2306:53;:::i;:::-;2296:63;;2251:118;1857:519;;;;;:::o;2382:474::-;2450:6;2458;2507:2;2495:9;2486:7;2482:23;2478:32;2475:2;;;2513:79;;:::i;:::-;2475:2;2633:1;2658:53;2703:7;2694:6;2683:9;2679:22;2658:53;:::i;:::-;2648:63;;2604:117;2760:2;2786:53;2831:7;2822:6;2811:9;2807:22;2786:53;:::i;:::-;2776:63;;2731:118;2465:391;;;;;:::o;2862:323::-;2918:6;2967:2;2955:9;2946:7;2942:23;2938:32;2935:2;;;2973:79;;:::i;:::-;2935:2;3093:1;3118:50;3160:7;3151:6;3140:9;3136:22;3118:50;:::i;:::-;3108:60;;3064:114;2925:260;;;;:::o;3191:329::-;3250:6;3299:2;3287:9;3278:7;3274:23;3270:32;3267:2;;;3305:79;;:::i;:::-;3267:2;3425:1;3450:53;3495:7;3486:6;3475:9;3471:22;3450:53;:::i;:::-;3440:63;;3396:117;3257:263;;;;:::o;3526:179::-;3595:10;3616:46;3658:3;3650:6;3616:46;:::i;:::-;3694:4;3689:3;3685:14;3671:28;;3606:99;;;;:::o;3711:108::-;3788:24;3806:5;3788:24;:::i;:::-;3783:3;3776:37;3766:53;;:::o;3825:118::-;3912:24;3930:5;3912:24;:::i;:::-;3907:3;3900:37;3890:53;;:::o;3979:732::-;4098:3;4127:54;4175:5;4127:54;:::i;:::-;4197:86;4276:6;4271:3;4197:86;:::i;:::-;4190:93;;4307:56;4357:5;4307:56;:::i;:::-;4386:7;4417:1;4402:284;4427:6;4424:1;4421:13;4402:284;;;4503:6;4497:13;4530:63;4589:3;4574:13;4530:63;:::i;:::-;4523:70;;4616:60;4669:6;4616:60;:::i;:::-;4606:70;;4462:224;4449:1;4446;4442:9;4437:14;;4402:284;;;4406:14;4702:3;4695:10;;4103:608;;;;;;;:::o;4717:109::-;4798:21;4813:5;4798:21;:::i;:::-;4793:3;4786:34;4776:50;;:::o;4832:147::-;4927:45;4966:5;4927:45;:::i;:::-;4922:3;4915:58;4905:74;;:::o;4985:364::-;5073:3;5101:39;5134:5;5101:39;:::i;:::-;5156:71;5220:6;5215:3;5156:71;:::i;:::-;5149:78;;5236:52;5281:6;5276:3;5269:4;5262:5;5258:16;5236:52;:::i;:::-;5313:29;5335:6;5313:29;:::i;:::-;5308:3;5304:39;5297:46;;5077:272;;;;;:::o;5355:366::-;5497:3;5518:67;5582:2;5577:3;5518:67;:::i;:::-;5511:74;;5594:93;5683:3;5594:93;:::i;:::-;5712:2;5707:3;5703:12;5696:19;;5501:220;;;:::o;5727:366::-;5869:3;5890:67;5954:2;5949:3;5890:67;:::i;:::-;5883:74;;5966:93;6055:3;5966:93;:::i;:::-;6084:2;6079:3;6075:12;6068:19;;5873:220;;;:::o;6099:366::-;6241:3;6262:67;6326:2;6321:3;6262:67;:::i;:::-;6255:74;;6338:93;6427:3;6338:93;:::i;:::-;6456:2;6451:3;6447:12;6440:19;;6245:220;;;:::o;6471:366::-;6613:3;6634:67;6698:2;6693:3;6634:67;:::i;:::-;6627:74;;6710:93;6799:3;6710:93;:::i;:::-;6828:2;6823:3;6819:12;6812:19;;6617:220;;;:::o;6843:366::-;6985:3;7006:67;7070:2;7065:3;7006:67;:::i;:::-;6999:74;;7082:93;7171:3;7082:93;:::i;:::-;7200:2;7195:3;7191:12;7184:19;;6989:220;;;:::o;7215:366::-;7357:3;7378:67;7442:2;7437:3;7378:67;:::i;:::-;7371:74;;7454:93;7543:3;7454:93;:::i;:::-;7572:2;7567:3;7563:12;7556:19;;7361:220;;;:::o;7587:366::-;7729:3;7750:67;7814:2;7809:3;7750:67;:::i;:::-;7743:74;;7826:93;7915:3;7826:93;:::i;:::-;7944:2;7939:3;7935:12;7928:19;;7733:220;;;:::o;7959:366::-;8101:3;8122:67;8186:2;8181:3;8122:67;:::i;:::-;8115:74;;8198:93;8287:3;8198:93;:::i;:::-;8316:2;8311:3;8307:12;8300:19;;8105:220;;;:::o;8331:366::-;8473:3;8494:67;8558:2;8553:3;8494:67;:::i;:::-;8487:74;;8570:93;8659:3;8570:93;:::i;:::-;8688:2;8683:3;8679:12;8672:19;;8477:220;;;:::o;8703:366::-;8845:3;8866:67;8930:2;8925:3;8866:67;:::i;:::-;8859:74;;8942:93;9031:3;8942:93;:::i;:::-;9060:2;9055:3;9051:12;9044:19;;8849:220;;;:::o;9075:366::-;9217:3;9238:67;9302:2;9297:3;9238:67;:::i;:::-;9231:74;;9314:93;9403:3;9314:93;:::i;:::-;9432:2;9427:3;9423:12;9416:19;;9221:220;;;:::o;9447:366::-;9589:3;9610:67;9674:2;9669:3;9610:67;:::i;:::-;9603:74;;9686:93;9775:3;9686:93;:::i;:::-;9804:2;9799:3;9795:12;9788:19;;9593:220;;;:::o;9819:366::-;9961:3;9982:67;10046:2;10041:3;9982:67;:::i;:::-;9975:74;;10058:93;10147:3;10058:93;:::i;:::-;10176:2;10171:3;10167:12;10160:19;;9965:220;;;:::o;10191:366::-;10333:3;10354:67;10418:2;10413:3;10354:67;:::i;:::-;10347:74;;10430:93;10519:3;10430:93;:::i;:::-;10548:2;10543:3;10539:12;10532:19;;10337:220;;;:::o;10563:118::-;10650:24;10668:5;10650:24;:::i;:::-;10645:3;10638:37;10628:53;;:::o;10687:112::-;10770:22;10786:5;10770:22;:::i;:::-;10765:3;10758:35;10748:51;;:::o;10805:222::-;10898:4;10936:2;10925:9;10921:18;10913:26;;10949:71;11017:1;11006:9;11002:17;10993:6;10949:71;:::i;:::-;10903:124;;;;:::o;11033:332::-;11154:4;11192:2;11181:9;11177:18;11169:26;;11205:71;11273:1;11262:9;11258:17;11249:6;11205:71;:::i;:::-;11286:72;11354:2;11343:9;11339:18;11330:6;11286:72;:::i;:::-;11159:206;;;;;:::o;11371:210::-;11458:4;11496:2;11485:9;11481:18;11473:26;;11509:65;11571:1;11560:9;11556:17;11547:6;11509:65;:::i;:::-;11463:118;;;;:::o;11587:313::-;11700:4;11738:2;11727:9;11723:18;11715:26;;11787:9;11781:4;11777:20;11773:1;11762:9;11758:17;11751:47;11815:78;11888:4;11879:6;11815:78;:::i;:::-;11807:86;;11705:195;;;;:::o;11906:419::-;12072:4;12110:2;12099:9;12095:18;12087:26;;12159:9;12153:4;12149:20;12145:1;12134:9;12130:17;12123:47;12187:131;12313:4;12187:131;:::i;:::-;12179:139;;12077:248;;;:::o;12331:419::-;12497:4;12535:2;12524:9;12520:18;12512:26;;12584:9;12578:4;12574:20;12570:1;12559:9;12555:17;12548:47;12612:131;12738:4;12612:131;:::i;:::-;12604:139;;12502:248;;;:::o;12756:419::-;12922:4;12960:2;12949:9;12945:18;12937:26;;13009:9;13003:4;12999:20;12995:1;12984:9;12980:17;12973:47;13037:131;13163:4;13037:131;:::i;:::-;13029:139;;12927:248;;;:::o;13181:419::-;13347:4;13385:2;13374:9;13370:18;13362:26;;13434:9;13428:4;13424:20;13420:1;13409:9;13405:17;13398:47;13462:131;13588:4;13462:131;:::i;:::-;13454:139;;13352:248;;;:::o;13606:419::-;13772:4;13810:2;13799:9;13795:18;13787:26;;13859:9;13853:4;13849:20;13845:1;13834:9;13830:17;13823:47;13887:131;14013:4;13887:131;:::i;:::-;13879:139;;13777:248;;;:::o;14031:419::-;14197:4;14235:2;14224:9;14220:18;14212:26;;14284:9;14278:4;14274:20;14270:1;14259:9;14255:17;14248:47;14312:131;14438:4;14312:131;:::i;:::-;14304:139;;14202:248;;;:::o;14456:419::-;14622:4;14660:2;14649:9;14645:18;14637:26;;14709:9;14703:4;14699:20;14695:1;14684:9;14680:17;14673:47;14737:131;14863:4;14737:131;:::i;:::-;14729:139;;14627:248;;;:::o;14881:419::-;15047:4;15085:2;15074:9;15070:18;15062:26;;15134:9;15128:4;15124:20;15120:1;15109:9;15105:17;15098:47;15162:131;15288:4;15162:131;:::i;:::-;15154:139;;15052:248;;;:::o;15306:419::-;15472:4;15510:2;15499:9;15495:18;15487:26;;15559:9;15553:4;15549:20;15545:1;15534:9;15530:17;15523:47;15587:131;15713:4;15587:131;:::i;:::-;15579:139;;15477:248;;;:::o;15731:419::-;15897:4;15935:2;15924:9;15920:18;15912:26;;15984:9;15978:4;15974:20;15970:1;15959:9;15955:17;15948:47;16012:131;16138:4;16012:131;:::i;:::-;16004:139;;15902:248;;;:::o;16156:419::-;16322:4;16360:2;16349:9;16345:18;16337:26;;16409:9;16403:4;16399:20;16395:1;16384:9;16380:17;16373:47;16437:131;16563:4;16437:131;:::i;:::-;16429:139;;16327:248;;;:::o;16581:419::-;16747:4;16785:2;16774:9;16770:18;16762:26;;16834:9;16828:4;16824:20;16820:1;16809:9;16805:17;16798:47;16862:131;16988:4;16862:131;:::i;:::-;16854:139;;16752:248;;;:::o;17006:419::-;17172:4;17210:2;17199:9;17195:18;17187:26;;17259:9;17253:4;17249:20;17245:1;17234:9;17230:17;17223:47;17287:131;17413:4;17287:131;:::i;:::-;17279:139;;17177:248;;;:::o;17431:419::-;17597:4;17635:2;17624:9;17620:18;17612:26;;17684:9;17678:4;17674:20;17670:1;17659:9;17655:17;17648:47;17712:131;17838:4;17712:131;:::i;:::-;17704:139;;17602:248;;;:::o;17856:222::-;17949:4;17987:2;17976:9;17972:18;17964:26;;18000:71;18068:1;18057:9;18053:17;18044:6;18000:71;:::i;:::-;17954:124;;;;:::o;18084:831::-;18347:4;18385:3;18374:9;18370:19;18362:27;;18399:71;18467:1;18456:9;18452:17;18443:6;18399:71;:::i;:::-;18480:80;18556:2;18545:9;18541:18;18532:6;18480:80;:::i;:::-;18607:9;18601:4;18597:20;18592:2;18581:9;18577:18;18570:48;18635:108;18738:4;18729:6;18635:108;:::i;:::-;18627:116;;18753:72;18821:2;18810:9;18806:18;18797:6;18753:72;:::i;:::-;18835:73;18903:3;18892:9;18888:19;18879:6;18835:73;:::i;:::-;18352:563;;;;;;;;:::o;18921:214::-;19010:4;19048:2;19037:9;19033:18;19025:26;;19061:67;19125:1;19114:9;19110:17;19101:6;19061:67;:::i;:::-;19015:120;;;;:::o;19222:132::-;19289:4;19312:3;19304:11;;19342:4;19337:3;19333:14;19325:22;;19294:60;;;:::o;19360:114::-;19427:6;19461:5;19455:12;19445:22;;19434:40;;;:::o;19480:99::-;19532:6;19566:5;19560:12;19550:22;;19539:40;;;:::o;19585:113::-;19655:4;19687;19682:3;19678:14;19670:22;;19660:38;;;:::o;19704:184::-;19803:11;19837:6;19832:3;19825:19;19877:4;19872:3;19868:14;19853:29;;19815:73;;;;:::o;19894:169::-;19978:11;20012:6;20007:3;20000:19;20052:4;20047:3;20043:14;20028:29;;19990:73;;;;:::o;20069:305::-;20109:3;20128:20;20146:1;20128:20;:::i;:::-;20123:25;;20162:20;20180:1;20162:20;:::i;:::-;20157:25;;20316:1;20248:66;20244:74;20241:1;20238:81;20235:2;;;20322:18;;:::i;:::-;20235:2;20366:1;20363;20359:9;20352:16;;20113:261;;;;:::o;20380:185::-;20420:1;20437:20;20455:1;20437:20;:::i;:::-;20432:25;;20471:20;20489:1;20471:20;:::i;:::-;20466:25;;20510:1;20500:2;;20515:18;;:::i;:::-;20500:2;20557:1;20554;20550:9;20545:14;;20422:143;;;;:::o;20571:348::-;20611:7;20634:20;20652:1;20634:20;:::i;:::-;20629:25;;20668:20;20686:1;20668:20;:::i;:::-;20663:25;;20856:1;20788:66;20784:74;20781:1;20778:81;20773:1;20766:9;20759:17;20755:105;20752:2;;;20863:18;;:::i;:::-;20752:2;20911:1;20908;20904:9;20893:20;;20619:300;;;;:::o;20925:191::-;20965:4;20985:20;21003:1;20985:20;:::i;:::-;20980:25;;21019:20;21037:1;21019:20;:::i;:::-;21014:25;;21058:1;21055;21052:8;21049:2;;;21063:18;;:::i;:::-;21049:2;21108:1;21105;21101:9;21093:17;;20970:146;;;;:::o;21122:96::-;21159:7;21188:24;21206:5;21188:24;:::i;:::-;21177:35;;21167:51;;;:::o;21224:90::-;21258:7;21301:5;21294:13;21287:21;21276:32;;21266:48;;;:::o;21320:126::-;21357:7;21397:42;21390:5;21386:54;21375:65;;21365:81;;;:::o;21452:77::-;21489:7;21518:5;21507:16;;21497:32;;;:::o;21535:86::-;21570:7;21610:4;21603:5;21599:16;21588:27;;21578:43;;;:::o;21627:121::-;21685:9;21718:24;21736:5;21718:24;:::i;:::-;21705:37;;21695:53;;;:::o;21754:307::-;21822:1;21832:113;21846:6;21843:1;21840:13;21832:113;;;21931:1;21926:3;21922:11;21916:18;21912:1;21907:3;21903:11;21896:39;21868:2;21865:1;21861:10;21856:15;;21832:113;;;21963:6;21960:1;21957:13;21954:2;;;22043:1;22034:6;22029:3;22025:16;22018:27;21954:2;21803:258;;;;:::o;22067:180::-;22115:77;22112:1;22105:88;22212:4;22209:1;22202:15;22236:4;22233:1;22226:15;22253:180;22301:77;22298:1;22291:88;22398:4;22395:1;22388:15;22422:4;22419:1;22412:15;22439:180;22487:77;22484:1;22477:88;22584:4;22581:1;22574:15;22608:4;22605:1;22598:15;22625:180;22673:77;22670:1;22663:88;22770:4;22767:1;22760:15;22794:4;22791:1;22784:15;22934:117;23043:1;23040;23033:12;23057:102;23098:6;23149:2;23145:7;23140:2;23133:5;23129:14;23125:28;23115:38;;23105:54;;;:::o;23165:222::-;23305:34;23301:1;23293:6;23289:14;23282:58;23374:5;23369:2;23361:6;23357:15;23350:30;23271:116;:::o;23393:229::-;23533:34;23529:1;23521:6;23517:14;23510:58;23602:12;23597:2;23589:6;23585:15;23578:37;23499:123;:::o;23628:221::-;23768:34;23764:1;23756:6;23752:14;23745:58;23837:4;23832:2;23824:6;23820:15;23813:29;23734:115;:::o;23855:177::-;23995:29;23991:1;23983:6;23979:14;23972:53;23961:71;:::o;24038:171::-;24178:23;24174:1;24166:6;24162:14;24155:47;24144:65;:::o;24215:222::-;24355:34;24351:1;24343:6;24339:14;24332:58;24424:5;24419:2;24411:6;24407:15;24400:30;24321:116;:::o;24443:174::-;24583:26;24579:1;24571:6;24567:14;24560:50;24549:68;:::o;24623:165::-;24763:17;24759:1;24751:6;24747:14;24740:41;24729:59;:::o;24794:220::-;24934:34;24930:1;24922:6;24918:14;24911:58;25003:3;24998:2;24990:6;24986:15;24979:28;24900:114;:::o;25020:182::-;25160:34;25156:1;25148:6;25144:14;25137:58;25126:76;:::o;25208:228::-;25348:34;25344:1;25336:6;25332:14;25325:58;25417:11;25412:2;25404:6;25400:15;25393:36;25314:122;:::o;25442:224::-;25582:34;25578:1;25570:6;25566:14;25559:58;25651:7;25646:2;25638:6;25634:15;25627:32;25548:118;:::o;25672:223::-;25812:34;25808:1;25800:6;25796:14;25789:58;25881:6;25876:2;25868:6;25864:15;25857:31;25778:117;:::o;25901:174::-;26041:26;26037:1;26029:6;26025:14;26018:50;26007:68;:::o;26081:122::-;26154:24;26172:5;26154:24;:::i;:::-;26147:5;26144:35;26134:2;;26193:1;26190;26183:12;26134:2;26124:79;:::o;26209:116::-;26279:21;26294:5;26279:21;:::i;:::-;26272:5;26269:32;26259:2;;26315:1;26312;26305:12;26259:2;26249:76;:::o;26331:122::-;26404:24;26422:5;26404:24;:::i;:::-;26397:5;26394:35;26384:2;;26443:1;26440;26433:12;26384:2;26374:79;:::o

Swarm Source

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