ETH Price: $3,888.54 (-0.63%)

Token

ERC-20: ShibaMaster (ShibaM)
 

Overview

Max Total Supply

888,011,408,538.704501822 ShibaM

Holders

148

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: ShibaM
Balance
0.000009593 ShibaM

Value
$0.00
0xccc58c208922ca89b2e16bef088abd3400a87f4d
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:
ShibaMaster

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-13
*/

// SPDX-License-Identifier: MIT

/**

ShibaMaster

Web: https://www.shibamaster.xyz/
Twitter: https://twitter.com/ShibaMasterETH

Tokenomics

5% Buy
5% Sell

1% LP
2% ShibMaster Burn
2% External Burn
Refer to website / litepaper for detailed tokenomics on burn

*/

pragma solidity ^0.8.13;

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    )
        external payable;
}

contract ShibaMaster is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _isExcludedFromFee;
   
    string private constant _name = "ShibaMaster";
    string private constant _symbol = "ShibaM ";
    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 1000000000000 * 10**_decimals;

    uint256 public _maxWalletAmount = 10000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 10000000000 * 10**_decimals;
    uint256 public swapTokenAtAmount = 1250000000 * 10**_decimals;

    address public liquidityReceiver;

    uint256 public totalTokenBurned;
    mapping (address => uint256) private _erc20TokenBurned;

    struct BuyFees{
        uint256 liquidity;
        uint256 selfBurn;
        uint256 externalBurn;
    }

    struct SellFees{
        uint256 liquidity;
        uint256 selfBurn;
        uint256 externalBurn;
    }

    BuyFees public buyFee;
    SellFees public sellFee;

    uint256 private liquidityFee;
    uint256 private selfBurnFee;
    uint256 private externalBurnFee;
    
    bool private swapping;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);
        
    constructor () {
        balances[_msgSender()] = _tTotal;
        
        buyFee.liquidity = 4;
        buyFee.selfBurn = 2;
        buyFee.externalBurn = 2;

        sellFee.liquidity = 4;
        sellFee.selfBurn = 2;
        sellFee.externalBurn = 2;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        
        liquidityReceiver = msg.sender;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(this)] = 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 view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return balances[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()] - amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }
    
    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }
    
    receive() external payable {}
    
    function ERC20TokenBurned(address tokenAddress) public view returns (uint256) {
        return _erc20TokenBurned[tokenAddress];
    }

    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; 
        uint256 selfBurnFeeToken = amount * buyFee.selfBurn / 100; 
        uint256 externalBurnFeeToken = amount * buyFee.externalBurn / 100; 

        balances[address(this)] += liquidityFeeToken + externalBurnFeeToken;
        balances[address(0x00)] += selfBurnFeeToken;
        _tTotal -= selfBurnFeeToken;
        totalTokenBurned += selfBurnFeeToken;

        emit Transfer (from, address(0x000), selfBurnFeeToken);
        emit Transfer (from, address(this), externalBurnFeeToken + liquidityFeeToken);

        return (amount -liquidityFeeToken -selfBurnFeeToken -externalBurnFeeToken);
    }

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * sellFee.liquidity / 100; 
        uint256 selfBurnFeeToken = amount * sellFee.selfBurn / 100; 
        uint256 externalBurnFeeToken = amount * sellFee.externalBurn / 100; 

        balances[address(this)] += liquidityFeeToken + externalBurnFeeToken;
        balances[address(0x00)] += selfBurnFeeToken;
        _tTotal -= selfBurnFeeToken;
        totalTokenBurned += selfBurnFeeToken;

        emit Transfer (from, address(0x000), selfBurnFeeToken);
        emit Transfer (from, address(this), externalBurnFeeToken + liquidityFeeToken);

        return (amount -liquidityFeeToken -selfBurnFeeToken -externalBurnFeeToken);
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }
    
    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 setBuyFees(uint256 newLiquidityFee, uint256 newSelfBurnFee, uint256 newExternalBurnFee) public onlyOwner {
        require(newLiquidityFee + newSelfBurnFee + newExternalBurnFee <= 25, "Can't set buyFee above 25%");
        buyFee.liquidity = newLiquidityFee;
        buyFee.selfBurn = newSelfBurnFee;
        buyFee.externalBurn= newExternalBurnFee;
    }

    function setSellFees(uint256 newLiquidityFee, uint256 newSelfBurnFee, uint256 newExternalBurnFee) public onlyOwner {
        require(newLiquidityFee + newSelfBurnFee + newExternalBurnFee <= 25, "Can't set sellFee above 25%");
        sellFee.liquidity = newLiquidityFee;
        sellFee.selfBurn = newSelfBurnFee;
        sellFee.externalBurn= newExternalBurnFee;
    }

    function setMaxTxPercent(uint256 newMaxTxPercent) public onlyOwner {
        require(newMaxTxPercent >= 1, "MaxTx atleast 1% or higher");
        _maxTxAmount = _tTotal.mul(newMaxTxPercent).div(10**2);
    }

    function setMaxWalletPercent(uint256 newMaxWalletPercent) public onlyOwner {
        require(newMaxWalletPercent >= 1, "MaxWallet atleast 1% or higher");
        _maxWalletAmount = _tTotal.mul(newMaxWalletPercent).div(10**2);    
    }

    function setSwapTokenAtAmountPermille(uint256 newSwapTokenAmountPermille) public onlyOwner {
        swapTokenAtAmount = _tTotal.mul(newSwapTokenAmountPermille).div(10**3);
    }

    function buyAndBurnERC20Token(address tokenAddress, uint256 ethAmount) public onlyOwner {
	swapETHForExternalTokens(tokenAddress, ethAmount);
    }

    function setLiquidityReceiver(address newLiqReceiver) public onlyOwner {
        liquidityReceiver = newLiqReceiver;
        _isExcludedFromFee[newLiqReceiver] = true;
    }

    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");
        
        balances[from] -= amount;
        uint256 transferAmount = amount;
        
        bool takeFee;

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            takeFee = true;
        } 

        if(takeFee){
            if(to != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
                 transferAmount = takeBuyFees(amount, from);
            }

            if(from != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount");
                transferAmount = takeSellFees(amount, from);

               if (balanceOf(address(this)) >= swapTokenAtAmount && !swapping) {
                    swapping = true;
                    swapBack();
                    swapping = false;
              }
            }

            if(to != uniswapV2Pair && from != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
            }
        }
        
        balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }
    
    
    function swapBack() private {
        uint256 contractBalance = swapTokenAtAmount;
        uint256 liquidityTokens = contractBalance * (buyFee.liquidity + sellFee.liquidity) / (buyFee.externalBurn + buyFee.liquidity + sellFee.externalBurn + sellFee.liquidity);
        uint256 externalBurnTokens = contractBalance - liquidityTokens;
        uint256 totalTokensToSwap = liquidityTokens + externalBurnTokens;
        
        uint256 tokensForLiquidity = liquidityTokens.div(2);
        uint256 amountToSwapForETH = contractBalance.sub(tokensForLiquidity);
        
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH); 
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForLiquidity = ethBalance.mul(liquidityTokens).div(totalTokensToSwap);

        addLiquidity(tokensForLiquidity, ethForLiquidity);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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 swapETHForExternalTokens(address tokenToBuy, uint256 amount) private {
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = tokenToBuy;
        
        IERC20(uniswapV2Router.WETH()).approve(address(uniswapV2Router), amount);

        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 tokenReceived = IERC20(tokenToBuy).balanceOf(address(this));
        _erc20TokenBurned[tokenToBuy] += tokenReceived;
        IERC20(tokenToBuy).transfer(address(0xdead), tokenReceived);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            liquidityReceiver,
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"ERC20TokenBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"buyAndBurnERC20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"selfBurn","type":"uint256"},{"internalType":"uint256","name":"externalBurn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"selfBurn","type":"uint256"},{"internalType":"uint256","name":"externalBurn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"newSelfBurnFee","type":"uint256"},{"internalType":"uint256","name":"newExternalBurnFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiqReceiver","type":"address"}],"name":"setLiquidityReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"newSelfBurnFee","type":"uint256"},{"internalType":"uint256","name":"newExternalBurnFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTokenAmountPermille","type":"uint256"}],"name":"setSwapTokenAtAmountPermille","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokenAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokenBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200044a565b620000239064e8d4a5100062000462565b600655620000346009600a6200044a565b62000045906402540be40062000462565b600755620000566009600a6200044a565b62000067906402540be40062000462565b600855620000786009600a6200044a565b6200008890634a817c8062000462565b6009553480156200009857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654336000908152600360209081526040808320939093556004600d8190556002600e819055600f81905560108290556011819055601255835163c45a015560e01b81529351737a250d5630b4cf539739df2c5dacb4c659f2488d94859363c45a0155938281019391928290030181865afa1580156200015f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000185919062000484565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f9919062000484565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000247573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026d919062000484565b600180546001600160a01b03199081166001600160a01b03868116919091178355600280548316918516919091179055600a805433921682179055600090815260056020526040808220805460ff1990811685179091553083529120805490911690911790559050620002dd3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200032591815260200190565b60405180910390a35050620004af565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200038c57816000190482111562000370576200037062000335565b808516156200037e57918102915b93841c939080029062000350565b509250929050565b600082620003a55750600162000444565b81620003b45750600062000444565b8160018114620003cd5760028114620003d857620003f8565b600191505062000444565b60ff841115620003ec57620003ec62000335565b50506001821b62000444565b5060208310610133831016604e8410600b84101617156200041d575081810a62000444565b6200042983836200034b565b806000190482111562000440576200044062000335565b0290505b92915050565b60006200045b60ff84168362000394565b9392505050565b60008160001904831182151516156200047f576200047f62000335565b500290565b6000602082840312156200049757600080fd5b81516001600160a01b03811681146200045b57600080fd5b61202c80620004bf6000396000f3fe6080604052600436106101fd5760003560e01c80634da64ddb1161010d57806395d89b41116100a0578063d543dbeb1161006f578063d543dbeb14610617578063d75224da14610637578063dd62ed3e1461066d578063ea2f0b37146106b3578063f2fde38b146106d357600080fd5b806395d89b4114610587578063a457c2d7146105b7578063a9059cbb146105d7578063b57e3682146105f757600080fd5b8063715018a6116100dc578063715018a61461051e5780637d1db4a51461053357806382bf293c146105495780638da5cb5b1461056957600080fd5b80634da64ddb146104795780635342acb4146104995780636c0a24eb146104d257806370a08231146104e857600080fd5b80632221466c11610190578063313ce5671161015f578063313ce567146103de57806339509351146103fa578063437823ec1461041a578063470624021461043a57806349bd5a5e1461045957600080fd5b80632221466c1461034e57806323b872dd14610364578063264d26dd146103845780632b14ca56146103a457600080fd5b80630db180b4116101cc5780630db180b4146102c15780630f683e90146102e15780631694505e1461030157806318160ddd1461033957600080fd5b806303e403b01461020957806306fdde0314610232578063095ea7b31461026f5780630d075d9c1461029f57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f60095481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b5060408051808201909152600b81526a29b434b130a6b0b9ba32b960a91b60208201525b6040516102299190611be2565b34801561027b57600080fd5b5061028f61028a366004611c4f565b6106f3565b6040519015158152602001610229565b3480156102ab57600080fd5b506102bf6102ba366004611c7b565b61070a565b005b3480156102cd57600080fd5b506102bf6102dc366004611c4f565b6107b0565b3480156102ed57600080fd5b506102bf6102fc366004611c7b565b6107e8565b34801561030d57600080fd5b50600154610321906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b34801561034557600080fd5b5060065461021f565b34801561035a57600080fd5b5061021f600b5481565b34801561037057600080fd5b5061028f61037f366004611ca7565b610885565b34801561039057600080fd5b50600a54610321906001600160a01b031681565b3480156103b057600080fd5b506010546011546012546103c392919083565b60408051938452602084019290925290820152606001610229565b3480156103ea57600080fd5b5060405160098152602001610229565b34801561040657600080fd5b5061028f610415366004611c4f565b6108d7565b34801561042657600080fd5b506102bf610435366004611ce8565b61090e565b34801561044657600080fd5b50600d54600e54600f546103c392919083565b34801561046557600080fd5b50600254610321906001600160a01b031681565b34801561048557600080fd5b506102bf610494366004611d05565b61095c565b3480156104a557600080fd5b5061028f6104b4366004611ce8565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104de57600080fd5b5061021f60075481565b3480156104f457600080fd5b5061021f610503366004611ce8565b6001600160a01b031660009081526003602052604090205490565b34801561052a57600080fd5b506102bf6109ad565b34801561053f57600080fd5b5061021f60085481565b34801561055557600080fd5b506102bf610564366004611d05565b610a21565b34801561057557600080fd5b506000546001600160a01b0316610321565b34801561059357600080fd5b50604080518082019091526007815266029b434b130a6960cd1b6020820152610262565b3480156105c357600080fd5b5061028f6105d2366004611c4f565b610abc565b3480156105e357600080fd5b5061028f6105f2366004611c4f565b610af3565b34801561060357600080fd5b506102bf610612366004611ce8565b610b00565b34801561062357600080fd5b506102bf610632366004611d05565b610b64565b34801561064357600080fd5b5061021f610652366004611ce8565b6001600160a01b03166000908152600c602052604090205490565b34801561067957600080fd5b5061021f610688366004611d1e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156106bf57600080fd5b506102bf6106ce366004611ce8565b610bff565b3480156106df57600080fd5b506102bf6106ee366004611ce8565b610c4a565b6000610700338484610d34565b5060015b92915050565b6000546001600160a01b0316331461073d5760405162461bcd60e51b815260040161073490611d57565b60405180910390fd5b60198161074a8486611da2565b6107549190611da2565b11156107a25760405162461bcd60e51b815260206004820152601a60248201527f43616e277420736574206275794665652061626f7665203235250000000000006044820152606401610734565b600d92909255600e55600f55565b6000546001600160a01b031633146107da5760405162461bcd60e51b815260040161073490611d57565b6107e48282610e58565b5050565b6000546001600160a01b031633146108125760405162461bcd60e51b815260040161073490611d57565b60198161081f8486611da2565b6108299190611da2565b11156108775760405162461bcd60e51b815260206004820152601b60248201527f43616e2774207365742073656c6c4665652061626f76652032352500000000006044820152606401610734565b601092909255601155601255565b60006108928484846111a3565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546108cd9186916108c8908690611dba565b610d34565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107009185906108c8908690611da2565b6000546001600160a01b031633146109385760405162461bcd60e51b815260040161073490611d57565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000546001600160a01b031633146109865760405162461bcd60e51b815260040161073490611d57565b6109a76103e86109a18360065461158990919063ffffffff16565b90611612565b60095550565b6000546001600160a01b031633146109d75760405162461bcd60e51b815260040161073490611d57565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a4b5760405162461bcd60e51b815260040161073490611d57565b6001811015610a9c5760405162461bcd60e51b815260206004820152601e60248201527f4d617857616c6c65742061746c65617374203125206f722068696768657200006044820152606401610734565b610ab660646109a18360065461158990919063ffffffff16565b60075550565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107009185906108c8908690611dba565b60006107003384846111a3565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b815260040161073490611d57565b600a80546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161073490611d57565b6001811015610bdf5760405162461bcd60e51b815260206004820152601a60248201527f4d617854782061746c65617374203125206f72206869676865720000000000006044820152606401610734565b610bf960646109a18360065461158990919063ffffffff16565b60085550565b6000546001600160a01b03163314610c295760405162461bcd60e51b815260040161073490611d57565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610c745760405162461bcd60e51b815260040161073490611d57565b6001600160a01b038116610cd95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610734565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610734565b6001600160a01b038216610df75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610734565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6040805160028082526060820183526000926020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee69190611dd1565b81600081518110610ef957610ef9611dee565b60200260200101906001600160a01b031690816001600160a01b0316815250508281600181518110610f2d57610f2d611dee565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faa9190611dd1565b60015460405163095ea7b360e01b81526001600160a01b0391821660048201526024810185905291169063095ea7b3906044016020604051808303816000875af1158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190611e04565b5060015460405163b6f9de9560e01b81526001600160a01b039091169063b6f9de9590849061105a90600090869030904290600401611e6a565b6000604051808303818588803b15801561107357600080fd5b505af1158015611087573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600093506001600160a01b03871692506370a082319150602401602060405180830381865afa1580156110d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f79190611e9f565b6001600160a01b0385166000908152600c6020526040812080549293508392909190611124908490611da2565b909155505060405163a9059cbb60e01b815261dead6004820152602481018290526001600160a01b0385169063a9059cbb906044016020604051808303816000875af1158015611178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190611e04565b5050505050565b6001600160a01b0383166112075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610734565b6001600160a01b0382166112695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610734565b600081116112cb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610734565b6001600160a01b038316600090815260036020526040812080548392906112f3908490611dba565b90915550506001600160a01b03831660009081526005602052604081205482919060ff1615801561133d57506001600160a01b03841660009081526005602052604090205460ff16155b15611346575060015b8015611506576002546001600160a01b038581169116146113db576008548311156113835760405162461bcd60e51b815260040161073490611eb8565b600754836113a6866001600160a01b031660009081526003602052604090205490565b6113b09190611da2565b11156113ce5760405162461bcd60e51b815260040161073490611eff565b6113d88386611654565b91505b6002546001600160a01b03868116911614611468576008548311156114125760405162461bcd60e51b815260040161073490611eb8565b61141c838661180a565b6009543060009081526003602052604090205491935011158015611443575060165460ff16155b15611468576016805460ff1916600117905561145d611862565b6016805460ff191690555b6002546001600160a01b0385811691161480159061149457506002546001600160a01b03868116911614155b15611506576008548311156114bb5760405162461bcd60e51b815260040161073490611eb8565b600754836114de866001600160a01b031660009081526003602052604090205490565b6114e89190611da2565b11156115065760405162461bcd60e51b815260040161073490611eff565b6001600160a01b0384166000908152600360205260408120805484929061152e908490611da2565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161157a91815260200190565b60405180910390a35050505050565b60008260000361159b57506000610704565b60006115a78385611f4b565b9050826115b48583611f6a565b1461160b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610734565b9392505050565b600061160b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611931565b6000806064600d600001548561166a9190611f4b565b6116749190611f6a565b905060006064600d600101548661168b9190611f4b565b6116959190611f6a565b905060006064600d60020154876116ac9190611f4b565b6116b69190611f6a565b90506116c28184611da2565b30600090815260036020526040812080549091906116e1908490611da2565b9091555050600080805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff8054849290611721908490611da2565b92505081905550816006600082825461173a9190611dba565b9250508190555081600b60008282546117539190611da2565b90915550506040518281526000906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3306001600160a01b0386167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117cf8685611da2565b60405190815260200160405180910390a380826117ec8589611dba565b6117f69190611dba565b6118009190611dba565b9695505050505050565b6000806064601060000154856118209190611f4b565b61182a9190611f6a565b905060006064601060010154866118419190611f4b565b61184b9190611f6a565b905060006064601060020154876116ac9190611f4b565b600954601054601254600d54600f54600093929161187f91611da2565b6118899190611da2565b6118939190611da2565b601054600d546118a39190611da2565b6118ad9084611f4b565b6118b79190611f6a565b905060006118c58284611dba565b905060006118d38284611da2565b905060006118e2846002611612565b905060006118f08683611968565b9050476118fc826119aa565b60006119084783611968565b9050600061191a866109a1848b611589565b90506119268582611b04565b505050505050505050565b600081836119525760405162461bcd60e51b81526004016107349190611be2565b50600061195f8486611f6a565b95945050505050565b600061160b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bb1565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119df576119df611dee565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5c9190611dd1565b81600181518110611a6f57611a6f611dee565b6001600160a01b039283166020918202929092010152600154611a959130911684610d34565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ace908590600090869030904290600401611f8c565b600060405180830381600087803b158015611ae857600080fd5b505af1158015611afc573d6000803e3d6000fd5b505050505050565b600154611b1c9030906001600160a01b031684610d34565b600154600a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611b8c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061119c9190611fc8565b60008184841115611bd55760405162461bcd60e51b81526004016107349190611be2565b50600061195f8486611dba565b600060208083528351808285015260005b81811015611c0f57858101830151858201604001528201611bf3565b81811115611c21576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c4c57600080fd5b50565b60008060408385031215611c6257600080fd5b8235611c6d81611c37565b946020939093013593505050565b600080600060608486031215611c9057600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611cbc57600080fd5b8335611cc781611c37565b92506020840135611cd781611c37565b929592945050506040919091013590565b600060208284031215611cfa57600080fd5b813561160b81611c37565b600060208284031215611d1757600080fd5b5035919050565b60008060408385031215611d3157600080fd5b8235611d3c81611c37565b91506020830135611d4c81611c37565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611db557611db5611d8c565b500190565b600082821015611dcc57611dcc611d8c565b500390565b600060208284031215611de357600080fd5b815161160b81611c37565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e1657600080fd5b8151801515811461160b57600080fd5b600081518084526020808501945080840160005b83811015611e5f5781516001600160a01b031687529582019590820190600101611e3a565b509495945050505050565b848152608060208201526000611e836080830186611e26565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215611eb157600080fd5b5051919050565b60208082526027908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152661e105b5bdd5b9d60ca1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b6000816000190483118215151615611f6557611f65611d8c565b500290565b600082611f8757634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a060408201526000611fab60a0830186611e26565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215611fdd57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122051c59a7712cafbb917b987d26cb93b2794d185a25bd2ab8d53090911220b4e3f64736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80634da64ddb1161010d57806395d89b41116100a0578063d543dbeb1161006f578063d543dbeb14610617578063d75224da14610637578063dd62ed3e1461066d578063ea2f0b37146106b3578063f2fde38b146106d357600080fd5b806395d89b4114610587578063a457c2d7146105b7578063a9059cbb146105d7578063b57e3682146105f757600080fd5b8063715018a6116100dc578063715018a61461051e5780637d1db4a51461053357806382bf293c146105495780638da5cb5b1461056957600080fd5b80634da64ddb146104795780635342acb4146104995780636c0a24eb146104d257806370a08231146104e857600080fd5b80632221466c11610190578063313ce5671161015f578063313ce567146103de57806339509351146103fa578063437823ec1461041a578063470624021461043a57806349bd5a5e1461045957600080fd5b80632221466c1461034e57806323b872dd14610364578063264d26dd146103845780632b14ca56146103a457600080fd5b80630db180b4116101cc5780630db180b4146102c15780630f683e90146102e15780631694505e1461030157806318160ddd1461033957600080fd5b806303e403b01461020957806306fdde0314610232578063095ea7b31461026f5780630d075d9c1461029f57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f60095481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b5060408051808201909152600b81526a29b434b130a6b0b9ba32b960a91b60208201525b6040516102299190611be2565b34801561027b57600080fd5b5061028f61028a366004611c4f565b6106f3565b6040519015158152602001610229565b3480156102ab57600080fd5b506102bf6102ba366004611c7b565b61070a565b005b3480156102cd57600080fd5b506102bf6102dc366004611c4f565b6107b0565b3480156102ed57600080fd5b506102bf6102fc366004611c7b565b6107e8565b34801561030d57600080fd5b50600154610321906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b34801561034557600080fd5b5060065461021f565b34801561035a57600080fd5b5061021f600b5481565b34801561037057600080fd5b5061028f61037f366004611ca7565b610885565b34801561039057600080fd5b50600a54610321906001600160a01b031681565b3480156103b057600080fd5b506010546011546012546103c392919083565b60408051938452602084019290925290820152606001610229565b3480156103ea57600080fd5b5060405160098152602001610229565b34801561040657600080fd5b5061028f610415366004611c4f565b6108d7565b34801561042657600080fd5b506102bf610435366004611ce8565b61090e565b34801561044657600080fd5b50600d54600e54600f546103c392919083565b34801561046557600080fd5b50600254610321906001600160a01b031681565b34801561048557600080fd5b506102bf610494366004611d05565b61095c565b3480156104a557600080fd5b5061028f6104b4366004611ce8565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104de57600080fd5b5061021f60075481565b3480156104f457600080fd5b5061021f610503366004611ce8565b6001600160a01b031660009081526003602052604090205490565b34801561052a57600080fd5b506102bf6109ad565b34801561053f57600080fd5b5061021f60085481565b34801561055557600080fd5b506102bf610564366004611d05565b610a21565b34801561057557600080fd5b506000546001600160a01b0316610321565b34801561059357600080fd5b50604080518082019091526007815266029b434b130a6960cd1b6020820152610262565b3480156105c357600080fd5b5061028f6105d2366004611c4f565b610abc565b3480156105e357600080fd5b5061028f6105f2366004611c4f565b610af3565b34801561060357600080fd5b506102bf610612366004611ce8565b610b00565b34801561062357600080fd5b506102bf610632366004611d05565b610b64565b34801561064357600080fd5b5061021f610652366004611ce8565b6001600160a01b03166000908152600c602052604090205490565b34801561067957600080fd5b5061021f610688366004611d1e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156106bf57600080fd5b506102bf6106ce366004611ce8565b610bff565b3480156106df57600080fd5b506102bf6106ee366004611ce8565b610c4a565b6000610700338484610d34565b5060015b92915050565b6000546001600160a01b0316331461073d5760405162461bcd60e51b815260040161073490611d57565b60405180910390fd5b60198161074a8486611da2565b6107549190611da2565b11156107a25760405162461bcd60e51b815260206004820152601a60248201527f43616e277420736574206275794665652061626f7665203235250000000000006044820152606401610734565b600d92909255600e55600f55565b6000546001600160a01b031633146107da5760405162461bcd60e51b815260040161073490611d57565b6107e48282610e58565b5050565b6000546001600160a01b031633146108125760405162461bcd60e51b815260040161073490611d57565b60198161081f8486611da2565b6108299190611da2565b11156108775760405162461bcd60e51b815260206004820152601b60248201527f43616e2774207365742073656c6c4665652061626f76652032352500000000006044820152606401610734565b601092909255601155601255565b60006108928484846111a3565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546108cd9186916108c8908690611dba565b610d34565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107009185906108c8908690611da2565b6000546001600160a01b031633146109385760405162461bcd60e51b815260040161073490611d57565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000546001600160a01b031633146109865760405162461bcd60e51b815260040161073490611d57565b6109a76103e86109a18360065461158990919063ffffffff16565b90611612565b60095550565b6000546001600160a01b031633146109d75760405162461bcd60e51b815260040161073490611d57565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a4b5760405162461bcd60e51b815260040161073490611d57565b6001811015610a9c5760405162461bcd60e51b815260206004820152601e60248201527f4d617857616c6c65742061746c65617374203125206f722068696768657200006044820152606401610734565b610ab660646109a18360065461158990919063ffffffff16565b60075550565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107009185906108c8908690611dba565b60006107003384846111a3565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b815260040161073490611d57565b600a80546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b6000546001600160a01b03163314610b8e5760405162461bcd60e51b815260040161073490611d57565b6001811015610bdf5760405162461bcd60e51b815260206004820152601a60248201527f4d617854782061746c65617374203125206f72206869676865720000000000006044820152606401610734565b610bf960646109a18360065461158990919063ffffffff16565b60085550565b6000546001600160a01b03163314610c295760405162461bcd60e51b815260040161073490611d57565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610c745760405162461bcd60e51b815260040161073490611d57565b6001600160a01b038116610cd95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610734565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610734565b6001600160a01b038216610df75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610734565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6040805160028082526060820183526000926020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee69190611dd1565b81600081518110610ef957610ef9611dee565b60200260200101906001600160a01b031690816001600160a01b0316815250508281600181518110610f2d57610f2d611dee565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faa9190611dd1565b60015460405163095ea7b360e01b81526001600160a01b0391821660048201526024810185905291169063095ea7b3906044016020604051808303816000875af1158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190611e04565b5060015460405163b6f9de9560e01b81526001600160a01b039091169063b6f9de9590849061105a90600090869030904290600401611e6a565b6000604051808303818588803b15801561107357600080fd5b505af1158015611087573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600093506001600160a01b03871692506370a082319150602401602060405180830381865afa1580156110d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f79190611e9f565b6001600160a01b0385166000908152600c6020526040812080549293508392909190611124908490611da2565b909155505060405163a9059cbb60e01b815261dead6004820152602481018290526001600160a01b0385169063a9059cbb906044016020604051808303816000875af1158015611178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190611e04565b5050505050565b6001600160a01b0383166112075760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610734565b6001600160a01b0382166112695760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610734565b600081116112cb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610734565b6001600160a01b038316600090815260036020526040812080548392906112f3908490611dba565b90915550506001600160a01b03831660009081526005602052604081205482919060ff1615801561133d57506001600160a01b03841660009081526005602052604090205460ff16155b15611346575060015b8015611506576002546001600160a01b038581169116146113db576008548311156113835760405162461bcd60e51b815260040161073490611eb8565b600754836113a6866001600160a01b031660009081526003602052604090205490565b6113b09190611da2565b11156113ce5760405162461bcd60e51b815260040161073490611eff565b6113d88386611654565b91505b6002546001600160a01b03868116911614611468576008548311156114125760405162461bcd60e51b815260040161073490611eb8565b61141c838661180a565b6009543060009081526003602052604090205491935011158015611443575060165460ff16155b15611468576016805460ff1916600117905561145d611862565b6016805460ff191690555b6002546001600160a01b0385811691161480159061149457506002546001600160a01b03868116911614155b15611506576008548311156114bb5760405162461bcd60e51b815260040161073490611eb8565b600754836114de866001600160a01b031660009081526003602052604090205490565b6114e89190611da2565b11156115065760405162461bcd60e51b815260040161073490611eff565b6001600160a01b0384166000908152600360205260408120805484929061152e908490611da2565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161157a91815260200190565b60405180910390a35050505050565b60008260000361159b57506000610704565b60006115a78385611f4b565b9050826115b48583611f6a565b1461160b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610734565b9392505050565b600061160b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611931565b6000806064600d600001548561166a9190611f4b565b6116749190611f6a565b905060006064600d600101548661168b9190611f4b565b6116959190611f6a565b905060006064600d60020154876116ac9190611f4b565b6116b69190611f6a565b90506116c28184611da2565b30600090815260036020526040812080549091906116e1908490611da2565b9091555050600080805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff8054849290611721908490611da2565b92505081905550816006600082825461173a9190611dba565b9250508190555081600b60008282546117539190611da2565b90915550506040518281526000906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3306001600160a01b0386167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117cf8685611da2565b60405190815260200160405180910390a380826117ec8589611dba565b6117f69190611dba565b6118009190611dba565b9695505050505050565b6000806064601060000154856118209190611f4b565b61182a9190611f6a565b905060006064601060010154866118419190611f4b565b61184b9190611f6a565b905060006064601060020154876116ac9190611f4b565b600954601054601254600d54600f54600093929161187f91611da2565b6118899190611da2565b6118939190611da2565b601054600d546118a39190611da2565b6118ad9084611f4b565b6118b79190611f6a565b905060006118c58284611dba565b905060006118d38284611da2565b905060006118e2846002611612565b905060006118f08683611968565b9050476118fc826119aa565b60006119084783611968565b9050600061191a866109a1848b611589565b90506119268582611b04565b505050505050505050565b600081836119525760405162461bcd60e51b81526004016107349190611be2565b50600061195f8486611f6a565b95945050505050565b600061160b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bb1565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119df576119df611dee565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5c9190611dd1565b81600181518110611a6f57611a6f611dee565b6001600160a01b039283166020918202929092010152600154611a959130911684610d34565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ace908590600090869030904290600401611f8c565b600060405180830381600087803b158015611ae857600080fd5b505af1158015611afc573d6000803e3d6000fd5b505050505050565b600154611b1c9030906001600160a01b031684610d34565b600154600a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611b8c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061119c9190611fc8565b60008184841115611bd55760405162461bcd60e51b81526004016107349190611be2565b50600061195f8486611dba565b600060208083528351808285015260005b81811015611c0f57858101830151858201604001528201611bf3565b81811115611c21576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611c4c57600080fd5b50565b60008060408385031215611c6257600080fd5b8235611c6d81611c37565b946020939093013593505050565b600080600060608486031215611c9057600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611cbc57600080fd5b8335611cc781611c37565b92506020840135611cd781611c37565b929592945050506040919091013590565b600060208284031215611cfa57600080fd5b813561160b81611c37565b600060208284031215611d1757600080fd5b5035919050565b60008060408385031215611d3157600080fd5b8235611d3c81611c37565b91506020830135611d4c81611c37565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611db557611db5611d8c565b500190565b600082821015611dcc57611dcc611d8c565b500390565b600060208284031215611de357600080fd5b815161160b81611c37565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e1657600080fd5b8151801515811461160b57600080fd5b600081518084526020808501945080840160005b83811015611e5f5781516001600160a01b031687529582019590820190600101611e3a565b509495945050505050565b848152608060208201526000611e836080830186611e26565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215611eb157600080fd5b5051919050565b60208082526027908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152661e105b5bdd5b9d60ca1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b6000816000190483118215151615611f6557611f65611d8c565b500290565b600082611f8757634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a060408201526000611fab60a0830186611e26565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215611fdd57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122051c59a7712cafbb917b987d26cb93b2794d185a25bd2ab8d53090911220b4e3f64736f6c634300080d0033

Deployed Bytecode Sourcemap

4832:12526:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5545:61;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5545:61:0;;;;;;;;7142:83;;;;;;;;;;-1:-1:-1;7212:5:0;;;;;;;;;;;;-1:-1:-1;;;7212:5:0;;;;7142:83;;;;;;;:::i;7974:161::-;;;;;;;;;;-1:-1:-1;7974:161:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;7974:161:0;1254:187:1;11332:369:0;;;;;;;;;;-1:-1:-1;11332:369:0;;;;;:::i;:::-;;:::i;:::-;;12743:149;;;;;;;;;;-1:-1:-1;12743:149:0;;;;;:::i;:::-;;:::i;11709:374::-;;;;;;;;;;-1:-1:-1;11709:374:0;;;;;:::i;:::-;;:::i;4921:41::-;;;;;;;;;;-1:-1:-1;4921:41:0;;;;-1:-1:-1;;;;;4921:41:0;;;;;;-1:-1:-1;;;;;1957:32:1;;;1939:51;;1927:2;1912:18;4921:41:0;1767:229:1;7419:95:0;;;;;;;;;;-1:-1:-1;7499:7:0;;7419:95;;5656:31;;;;;;;;;;;;;;;;8143:266;;;;;;;;;;-1:-1:-1;8143:266:0;;;;;:::i;:::-;;:::i;5615:32::-;;;;;;;;;;-1:-1:-1;5615:32:0;;;;-1:-1:-1;;;;;5615:32:0;;;6018:23;;;;;;;;;;-1:-1:-1;6018:23:0;;;;;;;;;;;;;;;;2872:25:1;;;2928:2;2913:18;;2906:34;;;;2956:18;;;2949:34;2860:2;2845:18;6018:23:0;2670:319:1;7328:83:0;;;;;;;;;;-1:-1:-1;7328:83:0;;5341:1;3136:36:1;;3124:2;3109:18;7328:83:0;2994:184:1;8417:215:0;;;;;;;;;;-1:-1:-1;8417:215:0;;;;;:::i;:::-;;:::i;8877:111::-;;;;;;;;;;-1:-1:-1;8877:111:0;;;;;:::i;:::-;;:::i;5990:21::-;;;;;;;;;;-1:-1:-1;5990:21:0;;;;;;;;;;;;4969:28;;;;;;;;;;-1:-1:-1;4969:28:0;;;;-1:-1:-1;;;;;4969:28:0;;;12555:180;;;;;;;;;;-1:-1:-1;12555:180:0;;;;;:::i;:::-;;:::i;10852:123::-;;;;;;;;;;-1:-1:-1;10852:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10940:27:0;10916:4;10940:27;;;:18;:27;;;;;;;;;10852:123;5413:61;;;;;;;;;;;;;;;;7522:118;;;;;;;;;;-1:-1:-1;7522:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;7615:17:0;7588:7;7615:17;;;:8;:17;;;;;;;7522:118;3357:148;;;;;;;;;;;;;:::i;5481:57::-;;;;;;;;;;;;;;;;12309:238;;;;;;;;;;-1:-1:-1;12309:238:0;;;;;:::i;:::-;;:::i;3143:79::-;;;;;;;;;;-1:-1:-1;3181:7:0;3208:6;-1:-1:-1;;;;;3208:6:0;3143:79;;7233:87;;;;;;;;;;-1:-1:-1;7305:7:0;;;;;;;;;;;;-1:-1:-1;;;7305:7:0;;;;7233:87;;8640:225;;;;;;;;;;-1:-1:-1;8640:225:0;;;;;:::i;:::-;;:::i;7648:167::-;;;;;;;;;;-1:-1:-1;7648:167:0;;;;;:::i;:::-;;:::i;12900:176::-;;;;;;;;;;-1:-1:-1;12900:176:0;;;;;:::i;:::-;;:::i;12091:210::-;;;;;;;;;;-1:-1:-1;12091:210:0;;;;;:::i;:::-;;:::i;9163:135::-;;;;;;;;;;-1:-1:-1;9163:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;9259:31:0;9232:7;9259:31;;;:17;:31;;;;;;;9163:135;7823:143;;;;;;;;;;-1:-1:-1;7823:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7931:18:0;;;7904:7;7931:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7823:143;9000:110;;;;;;;;;;-1:-1:-1;9000:110:0;;;;;:::i;:::-;;:::i;3513:244::-;;;;;;;;;;-1:-1:-1;3513:244:0;;;;;:::i;:::-;;:::i;7974:161::-;8049:4;8066:39;2675:10;8089:7;8098:6;8066:8;:39::i;:::-;-1:-1:-1;8123:4:0;7974:161;;;;;:::o;11332:369::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;;;;;;;;;11522:2:::1;11500:18:::0;11465:32:::1;11483:14:::0;11465:15;:32:::1;:::i;:::-;:53;;;;:::i;:::-;:59;;11457:98;;;::::0;-1:-1:-1;;;11457:98:0;;4841:2:1;11457:98:0::1;::::0;::::1;4823:21:1::0;4880:2;4860:18;;;4853:30;4919:28;4899:18;;;4892:56;4965:18;;11457:98:0::1;4639:350:1::0;11457:98:0::1;11566:6;:34:::0;;;;11611:15;:32;11654:19;:39;11332:369::o;12743:149::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;12835:49:::1;12860:12;12874:9;12835:24;:49::i;:::-;12743:149:::0;;:::o;11709:374::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;11900:2:::1;11878:18:::0;11843:32:::1;11861:14:::0;11843:15;:32:::1;:::i;:::-;:53;;;;:::i;:::-;:59;;11835:99;;;::::0;-1:-1:-1;;;11835:99:0;;5196:2:1;11835:99:0::1;::::0;::::1;5178:21:1::0;5235:2;5215:18;;;5208:30;5274:29;5254:18;;;5247:57;5321:18;;11835:99:0::1;4994:351:1::0;11835:99:0::1;11945:7;:35:::0;;;;11991:16;:33;12035:20;:40;11709:374::o;8143:266::-;8241:4;8258:36;8268:6;8276:9;8287:6;8258:9;:36::i;:::-;-1:-1:-1;;;;;8336:19:0;;;;;;:11;:19;;;;;;;;2675:10;8336:33;;;;;;;;;8305:74;;8314:6;;8336:42;;8372:6;;8336:42;:::i;:::-;8305:8;:74::i;:::-;-1:-1:-1;8397:4:0;8143:266;;;;;:::o;8417:215::-;2675:10;8505:4;8554:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8554:34:0;;;;;;;;;;8505:4;;8522:80;;8545:7;;8554:47;;8591:10;;8554:47;:::i;8877:111::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8946:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;8946:34:0::1;8976:4;8946:34;::::0;;8877:111::o;12555:180::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;12677:50:::1;12721:5;12677:39;12689:26;12677:7;;:11;;:39;;;;:::i;:::-;:43:::0;::::1;:50::i;:::-;12657:17;:70:::0;-1:-1:-1;12555:180:0:o;3357:148::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;3464:1:::1;3448:6:::0;;3427:40:::1;::::0;-1:-1:-1;;;;;3448:6:0;;::::1;::::0;3427:40:::1;::::0;3464:1;;3427:40:::1;3495:1;3478:19:::0;;-1:-1:-1;;;;;;3478:19:0::1;::::0;;3357:148::o;12309:238::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;12426:1:::1;12403:19;:24;;12395:67;;;::::0;-1:-1:-1;;;12395:67:0;;5682:2:1;12395:67:0::1;::::0;::::1;5664:21:1::0;5721:2;5701:18;;;5694:30;5760:32;5740:18;;;5733:60;5810:18;;12395:67:0::1;5480:354:1::0;12395:67:0::1;12492:43;12529:5;12492:32;12504:19;12492:7;;:11;;:32;;;;:::i;:43::-;12473:16;:62:::0;-1:-1:-1;12309:238:0:o;8640:225::-;2675:10;8733:4;8782:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8782:34:0;;;;;;;;;;8733:4;;8750:85;;8773:7;;8782:52;;8819:15;;8782:52;:::i;7648:167::-;7726:4;7743:42;2675:10;7767:9;7778:6;7743:9;:42::i;12900:176::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;12982:17:::1;:34:::0;;-1:-1:-1;;;;;12982:34:0;;::::1;-1:-1:-1::0;;;;;;12982:34:0;;::::1;::::0;::::1;::::0;;:17:::1;13027:34:::0;;;:18:::1;:34;::::0;;;;:41;;-1:-1:-1;;13027:41:0::1;12982:34:::0;13027:41:::1;::::0;;12900:176::o;12091:210::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;12196:1:::1;12177:15;:20;;12169:59;;;::::0;-1:-1:-1;;;12169:59:0;;6041:2:1;12169:59:0::1;::::0;::::1;6023:21:1::0;6080:2;6060:18;;;6053:30;6119:28;6099:18;;;6092:56;6165:18;;12169:59:0::1;5839:350:1::0;12169:59:0::1;12254:39;12287:5;12254:28;12266:15;12254:7;;:11;;:28;;;;:::i;:39::-;12239:12;:54:::0;-1:-1:-1;12091:210:0:o;9000:110::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9067:27:0::1;9097:5;9067:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9067:35:0::1;::::0;;9000:110::o;3513:244::-;3270:6;;-1:-1:-1;;;;;3270:6:0;2675:10;3270:22;3262:67;;;;-1:-1:-1;;;3262:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3602:22:0;::::1;3594:73;;;::::0;-1:-1:-1;;;3594:73:0;;6396:2:1;3594:73:0::1;::::0;::::1;6378:21:1::0;6435:2;6415:18;;;6408:30;6474:34;6454:18;;;6447:62;-1:-1:-1;;;6525:18:1;;;6518:36;6571:19;;3594:73:0::1;6194:402:1::0;3594:73:0::1;3704:6;::::0;;3683:38:::1;::::0;-1:-1:-1;;;;;3683:38:0;;::::1;::::0;3704:6;::::1;::::0;3683:38:::1;::::0;::::1;3732:6;:17:::0;;-1:-1:-1;;;;;;3732:17:0::1;-1:-1:-1::0;;;;;3732:17:0;;;::::1;::::0;;;::::1;::::0;;3513:244::o;10987:337::-;-1:-1:-1;;;;;11080:19:0;;11072:68;;;;-1:-1:-1;;;11072:68:0;;6803:2:1;11072:68:0;;;6785:21:1;6842:2;6822:18;;;6815:30;6881:34;6861:18;;;6854:62;-1:-1:-1;;;6932:18:1;;;6925:34;6976:19;;11072:68:0;6601:400:1;11072:68:0;-1:-1:-1;;;;;11159:21:0;;11151:68;;;;-1:-1:-1;;;11151:68:0;;7208:2:1;11151:68:0;;;7190:21:1;7247:2;7227:18;;;7220:30;7286:34;7266:18;;;7259:62;-1:-1:-1;;;7337:18:1;;;7330:32;7379:19;;11151:68:0;7006:398:1;11151:68:0;-1:-1:-1;;;;;11232:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11284:32;;160:25:1;;;11284:32:0;;133:18:1;11284:32:0;;;;;;;10987:337;;;:::o;16264:709::-;16377:16;;;16391:1;16377:16;;;;;;;;16353:21;;16377:16;;;;;;;;-1:-1:-1;;16414:15:0;;:22;;;-1:-1:-1;;;16414:22:0;;;;16353:40;;-1:-1:-1;;;;;;16414:15:0;;;;:20;;-1:-1:-1;16414:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16404:4;16409:1;16404:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;16404:32:0;;;-1:-1:-1;;;;;16404:32:0;;;;;16457:10;16447:4;16452:1;16447:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16447:20:0;;;:7;;;;;;;;;;:20;;;;16495:15;;:22;;;-1:-1:-1;;;16495:22:0;;;;:15;;;;;:20;;:22;;;;;16447:7;;16495:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16535:15;;16488:72;;-1:-1:-1;;;16488:72:0;;-1:-1:-1;;;;;16535:15:0;;;16488:72;;;8103:51:1;8170:18;;;8163:34;;;16488:38:0;;;;;8076:18:1;;16488:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;16573:15:0;;:185;;-1:-1:-1;;;16573:185:0;;-1:-1:-1;;;;;16573:15:0;;;;:66;;16647:6;;16573:185;;:15;;16685:4;;16712;;16732:15;;16573:185;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16795:43:0;;-1:-1:-1;;;16795:43:0;;16832:4;16795:43;;;1939:51:1;16771:21:0;;-1:-1:-1;;;;;;16795:28:0;;;-1:-1:-1;16795:28:0;;-1:-1:-1;1912:18:1;;16795:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16849:29:0;;;;;;:17;:29;;;;;:46;;16771:67;;-1:-1:-1;16771:67:0;;16849:29;;;:46;;16771:67;;16849:46;:::i;:::-;;;;-1:-1:-1;;16906:59:0;;-1:-1:-1;;;16906:59:0;;16942:6;16906:59;;;8103:51:1;8170:18;;;8163:34;;;-1:-1:-1;;;;;16906:27:0;;;;;8076:18:1;;16906:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16342:631;;16264:709;;:::o;13084:1746::-;-1:-1:-1;;;;;13206:18:0;;13198:68;;;;-1:-1:-1;;;13198:68:0;;9862:2:1;13198:68:0;;;9844:21:1;9901:2;9881:18;;;9874:30;9940:34;9920:18;;;9913:62;-1:-1:-1;;;9991:18:1;;;9984:35;10036:19;;13198:68:0;9660:401:1;13198:68:0;-1:-1:-1;;;;;13285:16:0;;13277:64;;;;-1:-1:-1;;;13277:64:0;;10268:2:1;13277:64:0;;;10250:21:1;10307:2;10287:18;;;10280:30;10346:34;10326:18;;;10319:62;-1:-1:-1;;;10397:18:1;;;10390:33;10440:19;;13277:64:0;10066:399:1;13277:64:0;13369:1;13360:6;:10;13352:64;;;;-1:-1:-1;;;13352:64:0;;10672:2:1;13352:64:0;;;10654:21:1;10711:2;10691:18;;;10684:30;10750:34;10730:18;;;10723:62;-1:-1:-1;;;10801:18:1;;;10794:39;10850:19;;13352:64:0;10470:405:1;13352:64:0;-1:-1:-1;;;;;13437:14:0;;;;;;:8;:14;;;;;:24;;13455:6;;13437:14;:24;;13455:6;;13437:24;:::i;:::-;;;;-1:-1:-1;;;;;;;13553:24:0;;13472:22;13553:24;;;:18;:24;;;;;;13497:6;;13472:22;13553:24;;13552:25;:52;;;;-1:-1:-1;;;;;;13582:22:0;;;;;;:18;:22;;;;;;;;13581:23;13552:52;13549:97;;;-1:-1:-1;13630:4:0;13549:97;13662:7;13659:1063;;;13694:13;;-1:-1:-1;;;;;13688:19:0;;;13694:13;;13688:19;13685:312;;13745:12;;13735:6;:22;;13727:74;;;;-1:-1:-1;;;13727:74:0;;;;;;;:::i;:::-;13854:16;;13844:6;13828:13;13838:2;-1:-1:-1;;;;;7615:17:0;7588:7;7615:17;;;:8;:17;;;;;;;7522:118;13828:13;:22;;;;:::i;:::-;:42;;13820:99;;;;-1:-1:-1;;;13820:99:0;;;;;;;:::i;:::-;13956:25;13968:6;13976:4;13956:11;:25::i;:::-;13939:42;;13685:312;14024:13;;-1:-1:-1;;;;;14016:21:0;;;14024:13;;14016:21;14013:407;;14075:12;;14065:6;:22;;14057:74;;;;-1:-1:-1;;;14057:74:0;;;;;;;:::i;:::-;14167:26;14180:6;14188:4;14167:12;:26::i;:::-;14245:17;;14235:4;7588:7;7615:17;;;:8;:17;;;;;;14150:43;;-1:-1:-1;;14217:45:0;:58;;;;-1:-1:-1;14267:8:0;;;;14266:9;14217:58;14213:192;;;14300:8;:15;;-1:-1:-1;;14300:15:0;14311:4;14300:15;;;14338:10;:8;:10::i;:::-;14371:8;:16;;-1:-1:-1;;14371:16:0;;;14213:192;14445:13;;-1:-1:-1;;;;;14439:19:0;;;14445:13;;14439:19;;;;:44;;-1:-1:-1;14470:13:0;;-1:-1:-1;;;;;14462:21:0;;;14470:13;;14462:21;;14439:44;14436:275;;;14521:12;;14511:6;:22;;14503:74;;;;-1:-1:-1;;;14503:74:0;;;;;;;:::i;:::-;14630:16;;14620:6;14604:13;14614:2;-1:-1:-1;;;;;7615:17:0;7588:7;7615:17;;;:8;:17;;;;;;;7522:118;14604:13;:22;;;;:::i;:::-;:42;;14596:99;;;;-1:-1:-1;;;14596:99:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14742:12:0;;;;;;:8;:12;;;;;:30;;14758:14;;14742:12;:30;;14758:14;;14742:30;:::i;:::-;;;;;;;;14803:2;-1:-1:-1;;;;;14788:34:0;14797:4;-1:-1:-1;;;;;14788:34:0;;14807:14;14788:34;;;;160:25:1;;148:2;133:18;;14:177;14788:34:0;;;;;;;;13187:1643;;13084:1746;;;:::o;1551:250::-;1609:7;1633:1;1638;1633:6;1629:47;;-1:-1:-1;1663:1:0;1656:8;;1629:47;1688:9;1700:5;1704:1;1700;:5;:::i;:::-;1688:17;-1:-1:-1;1733:1:0;1724:5;1728:1;1688:17;1724:5;:::i;:::-;:10;1716:56;;;;-1:-1:-1;;;1716:56:0;;12298:2:1;1716:56:0;;;12280:21:1;12337:2;12317:18;;;12310:30;12376:34;12356:18;;;12349:62;-1:-1:-1;;;12427:18:1;;;12420:31;12468:19;;1716:56:0;12096:397:1;1716:56:0;1792:1;1551:250;-1:-1:-1;;;1551:250:0:o;1809:132::-;1867:7;1894:39;1898:1;1901;1894:39;;;;;;;;;;;;;;;;;:3;:39::i;9306:763::-;9374:7;9394:25;9450:3;9431:6;:16;;;9422:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9394:59;;9465:24;9519:3;9501:6;:15;;;9492:6;:24;;;;:::i;:::-;:30;;;;:::i;:::-;9465:57;;9534:28;9596:3;9574:6;:19;;;9565:6;:28;;;;:::i;:::-;:34;;;;:::i;:::-;9534:65;-1:-1:-1;9640:40:0;9534:65;9640:17;:40;:::i;:::-;9630:4;9613:23;;;;:8;:23;;;;;:67;;:23;;;:67;;;;;:::i;:::-;;;;-1:-1:-1;;9691:23:0;;;;:8;:23;;;:43;;9718:16;;9691:23;:43;;9718:16;;9691:43;:::i;:::-;;;;;;;;9756:16;9745:7;;:27;;;;;;;:::i;:::-;;;;;;;;9803:16;9783;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;9837:49:0;;160:25:1;;;9861:5:0;;-1:-1:-1;;;;;9837:49:0;;;;;148:2:1;133:18;9837:49:0;;;;;;;9926:4;-1:-1:-1;;;;;9902:72:0;;;9933:40;9956:17;9933:20;:40;:::i;:::-;9902:72;;160:25:1;;;148:2;133:18;9902:72:0;;;;;;;10040:20;10022:16;9995:25;10003:17;9995:6;:25;:::i;:::-;:43;;;;:::i;:::-;:65;;;;:::i;:::-;9987:74;9306:763;-1:-1:-1;;;;;;9306:763:0:o;10077:767::-;10146:7;10166:25;10223:3;10203:7;:17;;;10194:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;10166:60;;10238:24;10293:3;10274:7;:16;;;10265:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;10238:58;;10308:28;10371:3;10348:7;:20;;;10339:6;:29;;;;:::i;14848:925::-;14913:17;;15091:7;:17;15068:20;;15049:6;:16;15027:19;;14887:23;;15091:17;15068:20;15027:38;;;:::i;:::-;:61;;;;:::i;:::-;:81;;;;:::i;:::-;15005:7;:17;14986:6;:16;:36;;15005:17;14986:36;:::i;:::-;14967:56;;:15;:56;:::i;:::-;:142;;;;:::i;:::-;14941:168;-1:-1:-1;15120:26:0;15149:33;14941:168;15149:15;:33;:::i;:::-;15120:62;-1:-1:-1;15193:25:0;15221:36;15120:62;15221:15;:36;:::i;:::-;15193:64;-1:-1:-1;15278:26:0;15307:22;:15;15327:1;15307:19;:22::i;:::-;15278:51;-1:-1:-1;15340:26:0;15369:39;:15;15278:51;15369:19;:39::i;:::-;15340:68;-1:-1:-1;15457:21:0;15489:36;15340:68;15489:16;:36::i;:::-;15537:18;15558:44;:21;15584:17;15558:25;:44::i;:::-;15537:65;-1:-1:-1;15623:23:0;15649:54;15685:17;15649:31;15537:65;15664:15;15649:14;:31::i;:54::-;15623:80;;15716:49;15729:18;15749:15;15716:12;:49::i;:::-;14876:897;;;;;;;;;14848:925::o;1949:278::-;2035:7;2070:12;2063:5;2055:28;;;;-1:-1:-1;;;2055:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2094:9:0;2106:5;2110:1;2106;:5;:::i;:::-;2094:17;1949:278;-1:-1:-1;;;;;1949:278:0:o;1207:136::-;1265:7;1292:43;1296:1;1299;1292:43;;;;;;;;;;;;;;;;;:3;:43::i;15781:475::-;15871:16;;;15885:1;15871:16;;;;;;;;15847:21;;15871:16;;;;;;;;;;-1:-1:-1;15871:16:0;15847:40;;15916:4;15898;15903:1;15898:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15898:23:0;;;:7;;;;;;;;;;:23;;;;15942:15;;:22;;;-1:-1:-1;;;15942:22:0;;;;:15;;;;;:20;;:22;;;;;15898:7;;15942:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15932:4;15937:1;15932:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15932:32:0;;;:7;;;;;;;;;:32;16009:15;;15977:62;;15994:4;;16009:15;16027:11;15977:8;:62::i;:::-;16052:15;;:196;;-1:-1:-1;;;16052:196:0;;-1:-1:-1;;;;;16052:15:0;;;;:66;;:196;;16133:11;;16052:15;;16175:4;;16202;;16222:15;;16052:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15836:420;15781:475;:::o;16981:374::-;17094:15;;17062:62;;17079:4;;-1:-1:-1;;;;;17094:15:0;17112:11;17062:8;:62::i;:::-;17137:15;;17289:17;;17137:210;;-1:-1:-1;;;17137:210:0;;17211:4;17137:210;;;13426:34:1;13476:18;;;13469:34;;;17137:15:0;13519:18:1;;;13512:34;;;13562:18;;;13555:34;-1:-1:-1;;;;;17289:17:0;;;13605:19:1;;;13598:44;17321:15:0;13658:19:1;;;13651:35;17137:15:0;;;:31;;17177:9;;13360:19:1;;17137:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1351:192::-;1437:7;1473:12;1465:6;;;;1457:29;;;;-1:-1:-1;;;1457:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1497:9:0;1509:5;1513:1;1509;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;853:70;798:131;:::o;934:315::-;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:316::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;-1:-1:-1;;1631:23:1;;;1701:2;1686:18;;1673:32;;-1:-1:-1;1752:2:1;1737:18;;;1724:32;;1446:316;-1:-1:-1;1446:316:1:o;2001:456::-;2078:6;2086;2094;2147:2;2135:9;2126:7;2122:23;2118:32;2115:52;;;2163:1;2160;2153:12;2115:52;2202:9;2189:23;2221:31;2246:5;2221:31;:::i;:::-;2271:5;-1:-1:-1;2328:2:1;2313:18;;2300:32;2341:33;2300:32;2341:33;:::i;:::-;2001:456;;2393:7;;-1:-1:-1;;;2447:2:1;2432:18;;;;2419:32;;2001:456::o;3183:247::-;3242:6;3295:2;3283:9;3274:7;3270:23;3266:32;3263:52;;;3311:1;3308;3301:12;3263:52;3350:9;3337:23;3369:31;3394:5;3369:31;:::i;3435:180::-;3494:6;3547:2;3535:9;3526:7;3522:23;3518:32;3515:52;;;3563:1;3560;3553:12;3515:52;-1:-1:-1;3586:23:1;;3435:180;-1:-1:-1;3435:180:1:o;3620:388::-;3688:6;3696;3749:2;3737:9;3728:7;3724:23;3720:32;3717:52;;;3765:1;3762;3755:12;3717:52;3804:9;3791:23;3823:31;3848:5;3823:31;:::i;:::-;3873:5;-1:-1:-1;3930:2:1;3915:18;;3902:32;3943:33;3902:32;3943:33;:::i;:::-;3995:7;3985:17;;;3620:388;;;;;:::o;4013:356::-;4215:2;4197:21;;;4234:18;;;4227:30;4293:34;4288:2;4273:18;;4266:62;4360:2;4345:18;;4013:356::o;4374:127::-;4435:10;4430:3;4426:20;4423:1;4416:31;4466:4;4463:1;4456:15;4490:4;4487:1;4480:15;4506:128;4546:3;4577:1;4573:6;4570:1;4567:13;4564:39;;;4583:18;;:::i;:::-;-1:-1:-1;4619:9:1;;4506:128::o;5350:125::-;5390:4;5418:1;5415;5412:8;5409:34;;;5423:18;;:::i;:::-;-1:-1:-1;5460:9:1;;5350:125::o;7541:251::-;7611:6;7664:2;7652:9;7643:7;7639:23;7635:32;7632:52;;;7680:1;7677;7670:12;7632:52;7712:9;7706:16;7731:31;7756:5;7731:31;:::i;7797:127::-;7858:10;7853:3;7849:20;7846:1;7839:31;7889:4;7886:1;7879:15;7913:4;7910:1;7903:15;8208:277;8275:6;8328:2;8316:9;8307:7;8303:23;8299:32;8296:52;;;8344:1;8341;8334:12;8296:52;8376:9;8370:16;8429:5;8422:13;8415:21;8408:5;8405:32;8395:60;;8451:1;8448;8441:12;8490:461;8543:3;8581:5;8575:12;8608:6;8603:3;8596:19;8634:4;8663:2;8658:3;8654:12;8647:19;;8700:2;8693:5;8689:14;8721:1;8731:195;8745:6;8742:1;8739:13;8731:195;;;8810:13;;-1:-1:-1;;;;;8806:39:1;8794:52;;8866:12;;;;8901:15;;;;8842:1;8760:9;8731:195;;;-1:-1:-1;8942:3:1;;8490:461;-1:-1:-1;;;;;8490:461:1:o;8956:510::-;9227:6;9216:9;9209:25;9270:3;9265:2;9254:9;9250:18;9243:31;9190:4;9291:57;9343:3;9332:9;9328:19;9320:6;9291:57;:::i;:::-;-1:-1:-1;;;;;9384:32:1;;;;9379:2;9364:18;;9357:60;-1:-1:-1;9448:2:1;9433:18;9426:34;9283:65;8956:510;-1:-1:-1;;8956:510:1:o;9471:184::-;9541:6;9594:2;9582:9;9573:7;9569:23;9565:32;9562:52;;;9610:1;9607;9600:12;9562:52;-1:-1:-1;9633:16:1;;9471:184;-1:-1:-1;9471:184:1:o;10880:403::-;11082:2;11064:21;;;11121:2;11101:18;;;11094:30;11160:34;11155:2;11140:18;;11133:62;-1:-1:-1;;;11226:2:1;11211:18;;11204:37;11273:3;11258:19;;10880:403::o;11288:408::-;11490:2;11472:21;;;11529:2;11509:18;;;11502:30;11568:34;11563:2;11548:18;;11541:62;-1:-1:-1;;;11634:2:1;11619:18;;11612:42;11686:3;11671:19;;11288:408::o;11701:168::-;11741:7;11807:1;11803;11799:6;11795:14;11792:1;11789:21;11784:1;11777:9;11770:17;11766:45;11763:71;;;11814:18;;:::i;:::-;-1:-1:-1;11854:9:1;;11701:168::o;11874:217::-;11914:1;11940;11930:132;;11984:10;11979:3;11975:20;11972:1;11965:31;12019:4;12016:1;12009:15;12047:4;12044:1;12037:15;11930:132;-1:-1:-1;12076:9:1;;11874:217::o;12498:582::-;12797:6;12786:9;12779:25;12840:6;12835:2;12824:9;12820:18;12813:34;12883:3;12878:2;12867:9;12863:18;12856:31;12760:4;12904:57;12956:3;12945:9;12941:19;12933:6;12904:57;:::i;:::-;-1:-1:-1;;;;;12997:32:1;;;;12992:2;12977:18;;12970:60;-1:-1:-1;13061:3:1;13046:19;13039:35;12896:65;12498:582;-1:-1:-1;;;12498:582:1:o;13697:306::-;13785:6;13793;13801;13854:2;13842:9;13833:7;13829:23;13825:32;13822:52;;;13870:1;13867;13860:12;13822:52;13899:9;13893:16;13883:26;;13949:2;13938:9;13934:18;13928:25;13918:35;;13993:2;13982:9;13978:18;13972:25;13962:35;;13697:306;;;;;:::o

Swarm Source

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