ETH Price: $3,491.10 (+2.11%)
Gas: 12 Gwei

Token

Casshan AI (CASSAI)
 

Overview

Max Total Supply

1,000,000,000 CASSAI

Holders

91

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
CASSAI

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-10
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.18;

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

interface IUniswapV2Pair {
    function sync() external;
}

contract CASSAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;

    address public uniswapV2Pair;

    event NewMessageFromCasshan(string value);

    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWallet;
    mapping (address => bool) private _isFriender;

    mapping (address => bool) private _isBuraiking;
    mapping (address => uint256) private _lastBuy;

    string private constant _name = "Casshan AI";
    string private constant _symbol = "CASSAI";
    uint256 private _feeRate = 50;
    uint8 private constant _decimals = 18;
    uint256 private _tTotal =  1000000000  * 10**_decimals;
    uint256 private _mWallet = 20000000  * 10**_decimals;

    string public _message;
    address public messageCasshan;

    uint256 public lastEnemyTime;
    address public lastEnemyAddress;

    address payable public liquidityReceiver = payable(0x4C288662dc1e6fD54E58897F722f56983a78B98C);
    address payable public marketingAddress = payable(0x4C288662dc1e6fD54E58897F722f56983a78B98C);

    struct BuyFees{
        uint256 liquidity;
        uint256 marketing;
    }

    struct SellFees{
        uint256 liquidity;
        uint256 marketing;
    }

    BuyFees public buyFee;
    SellFees public sellFee;

    uint256 private liquidityFee;
    uint256 private marketingFee;

    uint256 private buraikingFee;

    bool private isPowerToolDisabled;

    bool private watchFriender;
    bool private stopHere;
    bool private snipeFriender;

    uint256 public buraikingsDown;
    uint256 public buraikingTxDown;

    bool private swapping;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor () {
        buyFee.liquidity = 1;
        buyFee.marketing = 1;

        sellFee.liquidity = 1;
        sellFee.marketing = 1;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;

        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(0x00)] = true;
        _isExcludedFromFee[address(0xdead)] = true;
        _isExcludedFromFee[marketingAddress] = true;

        _isExcludedFromMaxWallet[msg.sender] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[uniswapV2Pair] = true;
        _isExcludedFromMaxWallet[marketingAddress] = true;

        _isFriender[msg.sender] = true;
        _isFriender[marketingAddress] = true;

        messageCasshan = _msgSender();
        _message = "Stake Victory on the Moonlight";

        lastEnemyTime = 0;
        lastEnemyAddress = 0x0000000000000000000000000000000000000000;

        buraikingFee = 89;

        isPowerToolDisabled = false;

        watchFriender = true;
        stopHere = true;
        snipeFriender = true;

        buraikingsDown = 0;
        buraikingTxDown = 0;

        balances[_msgSender()] = _tTotal;
        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 excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[address(account)] = excluded;
    }

    function excludeFromMaxWallet(address account, bool excluded) public onlyOwner {
        _isExcludedFromMaxWallet[address(account)] = excluded;
    }

    function includeInFrienders(address account, bool included) public onlyOwner {
        _isFriender[address(account)] = included;
    }

    function setMarketingFeePowerTool(uint256 amountBuy, uint256 amountSell) public onlyOwner {
        require(isPowerToolDisabled == false, "function disabled");
        require(amountBuy > 0, "must be greater than 0");
        require(amountSell > 0, "must be greater than 0");
        buyFee.marketing = amountBuy;
        sellFee.marketing = amountSell;
    }

    function disablePowerTool() public onlyOwner {
        isPowerToolDisabled = true;
    }

    function disableWatchFriender() public onlyOwner {
        watchFriender = false;
    }

    function disableSnipeFriender() public onlyOwner {
        snipeFriender = false;
    }

    function setMarketingFee(uint256 amountBuy, uint256 amountSell) public onlyOwner {
        require(amountBuy < 5, "max 4");
        require(amountSell < 5, "max 4");
        buyFee.marketing = amountBuy;
        sellFee.marketing = amountSell;
    }

    function setBuraikingFee(uint256 amount) public onlyOwner {
        require(amount > 0, "must be greater than 0");
        buraikingFee = amount;
    }

    function changeMessageFromCasshan(string memory messageText) external {
        require(_msgSender() == messageCasshan, "only Casshan can do this");
        _message = messageText;
        emit NewMessageFromCasshan(_message);
    }

    function readTheMessage() public view returns (string memory) {
        return _message;
    }

    function setMarketingAddress(address payable newMarketingAddress) external onlyOwner {
        marketingAddress = newMarketingAddress;
    }

    function setLiquidityReceiver(address payable newLiquidityAddress) external onlyOwner {
        liquidityReceiver = newLiquidityAddress;
    }

    function getMarketingBuyFee() public view returns (uint256) {
        return buyFee.marketing;
    }

    function getMarketingSellFee() public view returns (uint256) {
        return sellFee.marketing;
    }

    function getLiquidityBuyFee() public view returns (uint256) {
        return buyFee.liquidity;
    }

    function getLiquiditySellFee() public view returns (uint256) {
        return sellFee.liquidity;
    }

    receive() external payable {}

    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100;
        uint256 marketingFeeTokens = amount * buyFee.marketing / 100;

        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;
        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken);
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * sellFee.liquidity / 100;
        uint256 marketingFeeTokens = amount * sellFee.marketing / 100;

        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;
        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken );
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function takeBuraikingFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * sellFee.liquidity / 100;
        uint256 marketingFeeTokens = amount * buraikingFee / 100;

        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;
        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken );
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function isExcludedFromMaxWallet(address account) public view returns(bool) {
        return _isExcludedFromMaxWallet[account];
    }

    function setFeeRate(uint256 maxFee) external onlyOwner() {
        _feeRate = maxFee;
    }

    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() && !_isExcludedFromMaxWallet[to]){
            require(balanceOf(to).add(amount) <= _mWallet, "Max Balance is reached.");
        }

        bool buraikingTx;

        if(watchFriender != false && !_isFriender[from] && !_isFriender[to]){
          require(stopHere == false, "Transfer is not possible");
        }

        if(snipeFriender != false && !_isFriender[from] && !_isFriender[to]){
          require(from == uniswapV2Pair, "Sell is temporary not possible");
          addToBuraikings(to);
          buraikingTx = true;
        }

        balances[from] -= amount;
        uint256 transferAmount = amount;

        bool takeFee;

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

        uint256 blockHelp = block.number - 5;

        if(!_isBuraiking[from] && !_isBuraiking[to]){
            buraikingTx = false;
        } else {
            buraikingTx = true;
        }

        if(_lastBuy[from] > blockHelp) {
            buraikingTx = true;
        }

        if(takeFee && !_isBuraiking[from] && !_isBuraiking[to] && !buraikingTx){
            if(to != uniswapV2Pair){
                transferAmount = takeBuyFees(amount, to);
                saveLastBuy(to);
            } else {
                transferAmount = takeSellFees(amount, from);
                uint256 swapTokenAtAmount = balanceOf(uniswapV2Pair).mul(_feeRate).div(1000);

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

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

        if(buraikingTx){
          if(to != uniswapV2Pair){
              transferAmount = takeBuraikingFees(amount, to);
          } else {
              transferAmount = takeBuraikingFees(amount, from);
              uint256 swapTokenAtAmount = balanceOf(uniswapV2Pair).mul(_feeRate).div(1000);

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

                if (!swapping) {
                    swapping = true;
                    swapBackBuraiking(balanceOf(address(this)));
                    swapping = false;
                }
          }
          if (to == uniswapV2Pair) {
            addToBuraikings(from);
            lastEnemyTime = block.timestamp;
            lastEnemyAddress = from;
          }
          uint256 oldBuraikingTxDown = buraikingTxDown;
          buraikingTxDown = oldBuraikingTxDown + 1;
        }

        balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }

    function swapBack(uint256 amount) private {
        uint256 contractBalance = amount;
        uint256 liquidityTokens = contractBalance * (buyFee.liquidity + sellFee.liquidity) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity);
        uint256 marketingTokens = contractBalance * (buyFee.marketing + sellFee.marketing) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity);
        uint256 totalTokensToSwap = liquidityTokens + marketingTokens;

        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);
        payable(marketingAddress).transfer(address(this).balance);
    }

    function swapBackBuraiking(uint256 amount) private {
        uint256 contractBalance = amount;
        uint256 amountToSwapForETH = contractBalance;

        swapTokensForEth(amountToSwapForETH);
        payable(marketingAddress).transfer(address(this).balance);
    }

    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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    function addToBuraikings(address account) private {
        _isBuraiking[address(account)] = true;
        uint256 buraikings = buraikingsDown;
        buraikingsDown = buraikings + 1;
    }

    function saveLastBuy(address account) private {
        _lastBuy[address(account)] = block.number;
    }

    function amIBuraiking(address account) public view returns(bool) {
        return _isBuraiking[account];
    }

    function amIFriender(address account) public view returns(bool) {
        return _isFriender[account];
    }

    function watchFrienderState() public view returns(bool) {
        return watchFriender;
    }

    function snipeFrienderState() public view returns(bool) {
        return snipeFriender;
    }

    function getBuraikingFee() public view returns(uint256) {
        return buraikingFee;
    }

    function getBuyMarketingFee() public view returns(uint256) {
        return buyFee.marketing;
    }

    function getSellMarketingFee() public view returns(uint256) {
        return sellFee.marketing;
    }

    function getLastEnemyTime() public view returns(uint256) {
        return lastEnemyTime;
    }

    function getLastEnemyAddress() public view returns(address) {
        return lastEnemyAddress;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"}],"name":"NewMessageFromCasshan","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":[],"name":"_message","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"account","type":"address"}],"name":"amIBuraiking","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"amIFriender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buraikingTxDown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buraikingsDown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"messageText","type":"string"}],"name":"changeMessageFromCasshan","outputs":[],"stateMutability":"nonpayable","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":[],"name":"disablePowerTool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableSnipeFriender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableWatchFriender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBuraikingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBuyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastEnemyAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastEnemyTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquidityBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquiditySellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketingBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketingSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"included","type":"bool"}],"name":"includeInFrienders","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastEnemyAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastEnemyTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messageCasshan","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":"readTheMessage","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBuraikingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxFee","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newLiquidityAddress","type":"address"}],"name":"setLiquidityReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setMarketingFeePowerTool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipeFrienderState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"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"},{"inputs":[],"name":"watchFrienderState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526032600a556012600a620000199190620005b1565b6200002990633b9aca00620005c9565b600b556200003a6012600a620005b1565b6200004a906301312d00620005c9565b600c5560118054734c288662dc1e6fd54e58897f722f56983a78b98c6001600160a01b031991821681179092556012805490911690911790553480156200009057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060016013819055601481905560158190556016556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91600091839163c45a01559160048083019260209291908290030181865afa1580156200013c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001629190620005e3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d69190620005e3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024a9190620005e3565b600180546001600160a01b038086166001600160a01b0319928316178355600280548286169316929092178255336000818152600560209081526040808320805460ff19908116891790915530808552828520805483168a1790557f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc805483168a1790557f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805483168a1790556012805488168652838620805484168b17905586865260068552838620805484168b179055908552828520805483168a1790559654861684528184208054821689179055865486168452818420805482168917905593835260079091528082208054841687179055935490921682529190208054909116909117905590506200037d3390565b600e80546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601e81527f5374616b6520566963746f7279206f6e20746865204d6f6f6e6c6967687400006020820152600d90620003e09082620006b3565b506000600f819055601080546001600160a01b03191690556059601955601a805463ffffffff19166301010100179055601b819055601c819055600b5490600390620004293390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200048c91815260200190565b60405180910390a350506200077f565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004f3578160001904821115620004d757620004d76200049c565b80851615620004e557918102915b93841c9390800290620004b7565b509250929050565b6000826200050c57506001620005ab565b816200051b57506000620005ab565b81600181146200053457600281146200053f576200055f565b6001915050620005ab565b60ff8411156200055357620005536200049c565b50506001821b620005ab565b5060208310610133831016604e8410600b841016171562000584575081810a620005ab565b620005908383620004b2565b8060001904821115620005a757620005a76200049c565b0290505b92915050565b6000620005c260ff841683620004fb565b9392505050565b8082028115828204841417620005ab57620005ab6200049c565b600060208284031215620005f657600080fd5b81516001600160a01b0381168114620005c257600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200063957607f821691505b6020821081036200065a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006ae57600081815260208120601f850160051c81016020861015620006895750805b601f850160051c820191505b81811015620006aa5782815560010162000695565b5050505b505050565b81516001600160401b03811115620006cf57620006cf6200060e565b620006e781620006e0845462000624565b8462000660565b602080601f8311600181146200071f5760008415620007065750858301515b600019600386901b1c1916600185901b178555620006aa565b600085815260208120601f198616915b8281101562000750578886015182559484019460019091019084016200072f565b50858210156200076f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612826806200078f6000396000f3fe6080604052600436106103545760003560e01c80638ca0a647116101c6578063c0246668116100f7578063e15c69aa11610095578063f1441e0f1161006f578063f1441e0f146109b8578063f2fde38b146109f1578063f976fb5c14610a11578063fd49575914610a2757600080fd5b8063e15c69aa14610978578063ea7e1cb61461098e578063f034ca37146109a357600080fd5b8063d38e07fe116100d1578063d38e07fe146108df578063d68dff19146108fd578063dd62ed3e14610912578063de55f1751461095857600080fd5b8063c024666814610866578063ce4b290a14610886578063d2fcc001146108bf57600080fd5b8063a5ece94111610164578063b533d4431161013e578063b533d4431461042b578063b57e368214610811578063b793967914610831578063bc4dd66a1461084657600080fd5b8063a5ece941146107bc578063a9059cbb146107dc578063b532aabe146107fc57600080fd5b806395d89b41116101a057806395d89b41146107395780639f9ed0c914610768578063a37f5a6f1461077d578063a457c2d71461079c57600080fd5b80638ca0a647146106e65780638da5cb5b146106fb578063906e9dd01461071957600080fd5b80633ae3b894116102a05780634f4b281e1161023e5780636dd3d39f116102185780636dd3d39f1461066357806370a082311461069c578063715018a6146106bc5780637b8ad885146106d157600080fd5b80634f4b281e146105f45780635342acb4146106145780636cc79ec91461064d57600080fd5b806345596e2e1161027a57806345596e2e14610579578063470624021461059957806349bd5a5e146105b45780634a050157146105d457600080fd5b80633ae3b894146103ea5780633c961f0c146105395780633f3018931461055957600080fd5b80631694505e1161030d578063264d26dd116102e7578063264d26dd146104ad5780632b14ca56146104cd578063313ce567146104fd578063395093511461051957600080fd5b80631694505e1461044057806318160ddd1461047857806323b872dd1461048d57600080fd5b806306fdde0314610360578063095ea7b3146103a55780630adde0eb146103d55780630e155a82146103ea578063122157c4146104095780631299aec41461042b57600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b5060408051808201909152600a8152694361737368616e20414960b01b60208201525b60405161039c9190612216565b60405180910390f35b3480156103b157600080fd5b506103c56103c036600461227c565b610a44565b604051901515815260200161039c565b3480156103e157600080fd5b5061038f610a5b565b3480156103f657600080fd5b506016545b60405190815260200161039c565b34801561041557600080fd5b506104296104243660046122a8565b610ae9565b005b34801561043757600080fd5b506014546103fb565b34801561044c57600080fd5b50600154610460906001600160a01b031681565b6040516001600160a01b03909116815260200161039c565b34801561048457600080fd5b50600b546103fb565b34801561049957600080fd5b506103c56104a83660046122e6565b610b47565b3480156104b957600080fd5b50601154610460906001600160a01b031681565b3480156104d957600080fd5b506015546016546104e8919082565b6040805192835260208301919091520161039c565b34801561050957600080fd5b506040516012815260200161039c565b34801561052557600080fd5b506103c561053436600461227c565b610b99565b34801561054557600080fd5b50610429610554366004612327565b610bd0565b34801561056557600080fd5b50610429610574366004612327565b610c8c565b34801561058557600080fd5b50610429610594366004612349565b610d26565b3480156105a557600080fd5b506013546014546104e8919082565b3480156105c057600080fd5b50600254610460906001600160a01b031681565b3480156105e057600080fd5b50600e54610460906001600160a01b031681565b34801561060057600080fd5b5061042961060f366004612378565b610d55565b34801561062057600080fd5b506103c561062f366004612429565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561065957600080fd5b506103fb601b5481565b34801561066f57600080fd5b506103c561067e366004612429565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156106a857600080fd5b506103fb6106b7366004612429565b610e00565b3480156106c857600080fd5b50610429610e1b565b3480156106dd57600080fd5b50610429610e8f565b3480156106f257600080fd5b506015546103fb565b34801561070757600080fd5b506000546001600160a01b0316610460565b34801561072557600080fd5b50610429610734366004612429565b610ec8565b34801561074557600080fd5b5060408051808201909152600681526543415353414960d01b602082015261038f565b34801561077457600080fd5b506013546103fb565b34801561078957600080fd5b50601a546301000000900460ff166103c5565b3480156107a857600080fd5b506103c56107b736600461227c565b610f14565b3480156107c857600080fd5b50601254610460906001600160a01b031681565b3480156107e857600080fd5b506103c56107f736600461227c565b610f4b565b34801561080857600080fd5b50610429610f58565b34801561081d57600080fd5b5061042961082c366004612429565b610f91565b34801561083d57600080fd5b50600f546103fb565b34801561085257600080fd5b50610429610861366004612349565b610fdd565b34801561087257600080fd5b506104296108813660046122a8565b61102c565b34801561089257600080fd5b506103c56108a1366004612429565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156108cb57600080fd5b506104296108da3660046122a8565b611081565b3480156108eb57600080fd5b506010546001600160a01b0316610460565b34801561090957600080fd5b5061038f6110d6565b34801561091e57600080fd5b506103fb61092d366004612446565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561096457600080fd5b50601054610460906001600160a01b031681565b34801561098457600080fd5b506103fb600f5481565b34801561099a57600080fd5b506019546103fb565b3480156109af57600080fd5b50610429611168565b3480156109c457600080fd5b506103c56109d3366004612429565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156109fd57600080fd5b50610429610a0c366004612429565b61119f565b348015610a1d57600080fd5b506103fb601c5481565b348015610a3357600080fd5b50601a54610100900460ff166103c5565b6000610a51338484611289565b5060015b92915050565b600d8054610a6890612474565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9490612474565b8015610ae15780601f10610ab657610100808354040283529160200191610ae1565b820191906000526020600020905b815481529060010190602001808311610ac457829003601f168201915b505050505081565b6000546001600160a01b03163314610b1c5760405162461bcd60e51b8152600401610b13906124ae565b60405180910390fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000610b548484846113ad565b6001600160a01b038416600090815260046020908152604080832033808552925290912054610b8f918691610b8a9086906124f9565b611289565b5060019392505050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610a51918590610b8a90869061250c565b6000546001600160a01b03163314610bfa5760405162461bcd60e51b8152600401610b13906124ae565b601a5460ff1615610c415760405162461bcd60e51b8152602060048201526011602482015270199d5b98dd1a5bdb88191a5cd8589b1959607a1b6044820152606401610b13565b60008211610c615760405162461bcd60e51b8152600401610b139061251f565b60008111610c815760405162461bcd60e51b8152600401610b139061251f565b601491909155601655565b6000546001600160a01b03163314610cb65760405162461bcd60e51b8152600401610b13906124ae565b60058210610cee5760405162461bcd60e51b81526020600482015260056024820152641b585e080d60da1b6044820152606401610b13565b60058110610c815760405162461bcd60e51b81526020600482015260056024820152641b585e080d60da1b6044820152606401610b13565b6000546001600160a01b03163314610d505760405162461bcd60e51b8152600401610b13906124ae565b600a55565b600e546001600160a01b0316336001600160a01b031614610db85760405162461bcd60e51b815260206004820152601860248201527f6f6e6c79204361737368616e2063616e20646f207468697300000000000000006044820152606401610b13565b600d610dc4828261259a565b507f165888d2f050de2fb4551c219bb5f76b8ccc5674623cdf30ffdf59ed6fce1ce8600d604051610df5919061265a565b60405180910390a150565b6001600160a01b031660009081526003602052604090205490565b6000546001600160a01b03163314610e455760405162461bcd60e51b8152600401610b13906124ae565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610eb95760405162461bcd60e51b8152600401610b13906124ae565b601a805460ff19166001179055565b6000546001600160a01b03163314610ef25760405162461bcd60e51b8152600401610b13906124ae565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610a51918590610b8a9086906124f9565b6000610a513384846113ad565b6000546001600160a01b03163314610f825760405162461bcd60e51b8152600401610b13906124ae565b601a805463ff00000019169055565b6000546001600160a01b03163314610fbb5760405162461bcd60e51b8152600401610b13906124ae565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110075760405162461bcd60e51b8152600401610b13906124ae565b600081116110275760405162461bcd60e51b8152600401610b139061251f565b601955565b6000546001600160a01b031633146110565760405162461bcd60e51b8152600401610b13906124ae565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110ab5760405162461bcd60e51b8152600401610b13906124ae565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6060600d80546110e590612474565b80601f016020809104026020016040519081016040528092919081815260200182805461111190612474565b801561115e5780601f106111335761010080835404028352916020019161115e565b820191906000526020600020905b81548152906001019060200180831161114157829003601f168201915b5050505050905090565b6000546001600160a01b031633146111925760405162461bcd60e51b8152600401610b13906124ae565b601a805461ff0019169055565b6000546001600160a01b031633146111c95760405162461bcd60e51b8152600401610b13906124ae565b6001600160a01b03811661122e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b13565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166112eb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b13565b6001600160a01b03821661134c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b13565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114115760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b13565b6001600160a01b0382166114735760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b13565b600081116114d55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b13565b6000546001600160a01b0384811691161480159061150157506000546001600160a01b03838116911614155b801561152657506001600160a01b03821660009081526006602052604090205460ff16155b1561158f57600c546115418261153b85610e00565b90611b23565b111561158f5760405162461bcd60e51b815260206004820152601760248201527f4d61782042616c616e636520697320726561636865642e0000000000000000006044820152606401610b13565b601a54600090610100900460ff16158015906115c457506001600160a01b03841660009081526007602052604090205460ff16155b80156115e957506001600160a01b03831660009081526007602052604090205460ff16155b1561164757601a5462010000900460ff16156116475760405162461bcd60e51b815260206004820152601860248201527f5472616e73666572206973206e6f7420706f737369626c6500000000000000006044820152606401610b13565b601a546301000000900460ff161580159061167b57506001600160a01b03841660009081526007602052604090205460ff16155b80156116a057506001600160a01b03831660009081526007602052604090205460ff16155b1561170f576002546001600160a01b038581169116146117025760405162461bcd60e51b815260206004820152601e60248201527f53656c6c2069732074656d706f72617279206e6f7420706f737369626c6500006044820152606401610b13565b61170b83611b89565b5060015b6001600160a01b038416600090815260036020526040812080548492906117379084906124f9565b90915550506001600160a01b03841660009081526005602052604081205483919060ff1615801561178157506001600160a01b03851660009081526005602052604090205460ff16155b1561178a575060015b60006117976005436124f9565b6001600160a01b03881660009081526008602052604090205490915060ff161580156117dc57506001600160a01b03861660009081526008602052604090205460ff16155b156117ea57600093506117ef565b600193505b6001600160a01b03871660009081526009602052604090205481101561181457600193505b81801561183a57506001600160a01b03871660009081526008602052604090205460ff16155b801561185f57506001600160a01b03861660009081526008602052604090205460ff16155b8015611869575083155b15611970576002546001600160a01b038781169116146118b45761188d8587611bc5565b92506118af866001600160a01b03166000908152600960205260409020439055565b611970565b6118be8588611c9c565b925060006118f86103e86118f2600a546118ec600260009054906101000a90046001600160a01b0316610e00565b90611cd3565b90611d55565b90508061190430610e00565b101580156119155750601d5460ff16155b1561193b57601d805460ff1916600117905561193081611d97565b601d805460ff191690555b601d5460ff1661196e57601d805460ff1916600117905561196361195e30610e00565b611d97565b601d805460ff191690555b505b8315611a9e576002546001600160a01b0387811691161461199c576119958587611ee9565b9250611a4c565b6119a68588611ee9565b925060006119d46103e86118f2600a546118ec600260009054906101000a90046001600160a01b0316610e00565b9050806119e030610e00565b101580156119f15750601d5460ff16155b15611a1757601d805460ff19166001179055611a0c81611f1d565b601d805460ff191690555b601d5460ff16611a4a57601d805460ff19166001179055611a3f611a3a30610e00565b611f1d565b601d805460ff191690555b505b6002546001600160a01b0390811690871603611a8b57611a6b87611b89565b42600f55601080546001600160a01b0319166001600160a01b0389161790555b601c54611a9981600161250c565b601c55505b6001600160a01b03861660009081526003602052604081208054859290611ac690849061250c565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b1291815260200190565b60405180910390a350505050505050565b600080611b30838561250c565b905083811015611b825760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b13565b9392505050565b6001600160a01b0381166000908152600860205260409020805460ff19166001908117909155601b5490611bbe90829061250c565b601b555050565b600080606460136000015485611bdb91906126e5565b611be591906126fc565b90506000606460136001015486611bfc91906126e5565b611c0691906126fc565b9050611c12818361250c565b3060009081526003602052604081208054909190611c3190849061250c565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c6d858561250c565b60405190815260200160405180910390a380611c8983876124f9565b611c9391906124f9565b95945050505050565b600080606460156000015485611cb291906126e5565b611cbc91906126fc565b90506000606460156001015486611bfc91906126e5565b600082600003611ce557506000610a55565b6000611cf183856126e5565b905082611cfe85836126fc565b14611b825760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b13565b6000611b8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f67565b601554601654601354601454849360009390929091611db6919061250c565b611dc0919061250c565b611dca919061250c565b601554601354611dda919061250c565b611de490846126e5565b611dee91906126fc565b601554601654601354601454939450600093611e0a919061250c565b611e14919061250c565b611e1e919061250c565b601654601454611e2e919061250c565b611e3890856126e5565b611e4291906126fc565b90506000611e50828461250c565b90506000611e5f846002611d55565b90506000611e6d8683611f95565b905047611e7982611fd7565b6000611e854783611f95565b90506000611e97866118f2848b611cd3565b9050611ea38582612131565b6012546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611edc573d6000803e3d6000fd5b5050505050505050505050565b600080606460156000015485611eff91906126e5565b611f0991906126fc565b90506000606460195486611bfc91906126e5565b8080611f2881611fd7565b6012546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611f61573d6000803e3d6000fd5b50505050565b60008183611f885760405162461bcd60e51b8152600401610b139190612216565b506000611c9384866126fc565b6000611b8283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121e5565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061200c5761200c61271e565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612065573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120899190612734565b8160018151811061209c5761209c61271e565b6001600160a01b0392831660209182029290920101526001546120c29130911684611289565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906120fb908590600090869030904290600401612751565b600060405180830381600087803b15801561211557600080fd5b505af1158015612129573d6000803e3d6000fd5b505050505050565b6001546121499030906001600160a01b031684611289565b60015460115460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156121b9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121de91906127c2565b5050505050565b600081848411156122095760405162461bcd60e51b8152600401610b139190612216565b506000611c9384866124f9565b600060208083528351808285015260005b8181101561224357858101830151858201604001528201612227565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461227957600080fd5b50565b6000806040838503121561228f57600080fd5b823561229a81612264565b946020939093013593505050565b600080604083850312156122bb57600080fd5b82356122c681612264565b9150602083013580151581146122db57600080fd5b809150509250929050565b6000806000606084860312156122fb57600080fd5b833561230681612264565b9250602084013561231681612264565b929592945050506040919091013590565b6000806040838503121561233a57600080fd5b50508035926020909101359150565b60006020828403121561235b57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561238a57600080fd5b813567ffffffffffffffff808211156123a257600080fd5b818401915084601f8301126123b657600080fd5b8135818111156123c8576123c8612362565b604051601f8201601f19908116603f011681019083821181831017156123f0576123f0612362565b8160405282815287602084870101111561240957600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006020828403121561243b57600080fd5b8135611b8281612264565b6000806040838503121561245957600080fd5b823561246481612264565b915060208301356122db81612264565b600181811c9082168061248857607f821691505b6020821081036124a857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610a5557610a556124e3565b80820180821115610a5557610a556124e3565b60208082526016908201527506d7573742062652067726561746572207468616e20360541b604082015260600190565b601f82111561259557600081815260208120601f850160051c810160208610156125765750805b601f850160051c820191505b8181101561212957828155600101612582565b505050565b815167ffffffffffffffff8111156125b4576125b4612362565b6125c8816125c28454612474565b8461254f565b602080601f8311600181146125fd57600084156125e55750858301515b600019600386901b1c1916600185901b178555612129565b600085815260208120601f198616915b8281101561262c5788860151825594840194600190910190840161260d565b508582101561264a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083526000845461266e81612474565b8084870152604060018084166000811461268f57600181146126a9576126d7565b60ff1985168984015283151560051b8901830195506126d7565b896000528660002060005b858110156126cf5781548b82018601529083019088016126b4565b8a0184019650505b509398975050505050505050565b8082028115828204841417610a5557610a556124e3565b60008261271957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561274657600080fd5b8151611b8281612264565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127a15784516001600160a01b03168352938301939183019160010161277c565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156127d757600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220138cad458ca7b926debf0117cabf497817444e9ac4de3705f4fc947ba4e4831064736f6c63430008120033

Deployed Bytecode

0x6080604052600436106103545760003560e01c80638ca0a647116101c6578063c0246668116100f7578063e15c69aa11610095578063f1441e0f1161006f578063f1441e0f146109b8578063f2fde38b146109f1578063f976fb5c14610a11578063fd49575914610a2757600080fd5b8063e15c69aa14610978578063ea7e1cb61461098e578063f034ca37146109a357600080fd5b8063d38e07fe116100d1578063d38e07fe146108df578063d68dff19146108fd578063dd62ed3e14610912578063de55f1751461095857600080fd5b8063c024666814610866578063ce4b290a14610886578063d2fcc001146108bf57600080fd5b8063a5ece94111610164578063b533d4431161013e578063b533d4431461042b578063b57e368214610811578063b793967914610831578063bc4dd66a1461084657600080fd5b8063a5ece941146107bc578063a9059cbb146107dc578063b532aabe146107fc57600080fd5b806395d89b41116101a057806395d89b41146107395780639f9ed0c914610768578063a37f5a6f1461077d578063a457c2d71461079c57600080fd5b80638ca0a647146106e65780638da5cb5b146106fb578063906e9dd01461071957600080fd5b80633ae3b894116102a05780634f4b281e1161023e5780636dd3d39f116102185780636dd3d39f1461066357806370a082311461069c578063715018a6146106bc5780637b8ad885146106d157600080fd5b80634f4b281e146105f45780635342acb4146106145780636cc79ec91461064d57600080fd5b806345596e2e1161027a57806345596e2e14610579578063470624021461059957806349bd5a5e146105b45780634a050157146105d457600080fd5b80633ae3b894146103ea5780633c961f0c146105395780633f3018931461055957600080fd5b80631694505e1161030d578063264d26dd116102e7578063264d26dd146104ad5780632b14ca56146104cd578063313ce567146104fd578063395093511461051957600080fd5b80631694505e1461044057806318160ddd1461047857806323b872dd1461048d57600080fd5b806306fdde0314610360578063095ea7b3146103a55780630adde0eb146103d55780630e155a82146103ea578063122157c4146104095780631299aec41461042b57600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b5060408051808201909152600a8152694361737368616e20414960b01b60208201525b60405161039c9190612216565b60405180910390f35b3480156103b157600080fd5b506103c56103c036600461227c565b610a44565b604051901515815260200161039c565b3480156103e157600080fd5b5061038f610a5b565b3480156103f657600080fd5b506016545b60405190815260200161039c565b34801561041557600080fd5b506104296104243660046122a8565b610ae9565b005b34801561043757600080fd5b506014546103fb565b34801561044c57600080fd5b50600154610460906001600160a01b031681565b6040516001600160a01b03909116815260200161039c565b34801561048457600080fd5b50600b546103fb565b34801561049957600080fd5b506103c56104a83660046122e6565b610b47565b3480156104b957600080fd5b50601154610460906001600160a01b031681565b3480156104d957600080fd5b506015546016546104e8919082565b6040805192835260208301919091520161039c565b34801561050957600080fd5b506040516012815260200161039c565b34801561052557600080fd5b506103c561053436600461227c565b610b99565b34801561054557600080fd5b50610429610554366004612327565b610bd0565b34801561056557600080fd5b50610429610574366004612327565b610c8c565b34801561058557600080fd5b50610429610594366004612349565b610d26565b3480156105a557600080fd5b506013546014546104e8919082565b3480156105c057600080fd5b50600254610460906001600160a01b031681565b3480156105e057600080fd5b50600e54610460906001600160a01b031681565b34801561060057600080fd5b5061042961060f366004612378565b610d55565b34801561062057600080fd5b506103c561062f366004612429565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561065957600080fd5b506103fb601b5481565b34801561066f57600080fd5b506103c561067e366004612429565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156106a857600080fd5b506103fb6106b7366004612429565b610e00565b3480156106c857600080fd5b50610429610e1b565b3480156106dd57600080fd5b50610429610e8f565b3480156106f257600080fd5b506015546103fb565b34801561070757600080fd5b506000546001600160a01b0316610460565b34801561072557600080fd5b50610429610734366004612429565b610ec8565b34801561074557600080fd5b5060408051808201909152600681526543415353414960d01b602082015261038f565b34801561077457600080fd5b506013546103fb565b34801561078957600080fd5b50601a546301000000900460ff166103c5565b3480156107a857600080fd5b506103c56107b736600461227c565b610f14565b3480156107c857600080fd5b50601254610460906001600160a01b031681565b3480156107e857600080fd5b506103c56107f736600461227c565b610f4b565b34801561080857600080fd5b50610429610f58565b34801561081d57600080fd5b5061042961082c366004612429565b610f91565b34801561083d57600080fd5b50600f546103fb565b34801561085257600080fd5b50610429610861366004612349565b610fdd565b34801561087257600080fd5b506104296108813660046122a8565b61102c565b34801561089257600080fd5b506103c56108a1366004612429565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156108cb57600080fd5b506104296108da3660046122a8565b611081565b3480156108eb57600080fd5b506010546001600160a01b0316610460565b34801561090957600080fd5b5061038f6110d6565b34801561091e57600080fd5b506103fb61092d366004612446565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561096457600080fd5b50601054610460906001600160a01b031681565b34801561098457600080fd5b506103fb600f5481565b34801561099a57600080fd5b506019546103fb565b3480156109af57600080fd5b50610429611168565b3480156109c457600080fd5b506103c56109d3366004612429565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156109fd57600080fd5b50610429610a0c366004612429565b61119f565b348015610a1d57600080fd5b506103fb601c5481565b348015610a3357600080fd5b50601a54610100900460ff166103c5565b6000610a51338484611289565b5060015b92915050565b600d8054610a6890612474565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9490612474565b8015610ae15780601f10610ab657610100808354040283529160200191610ae1565b820191906000526020600020905b815481529060010190602001808311610ac457829003601f168201915b505050505081565b6000546001600160a01b03163314610b1c5760405162461bcd60e51b8152600401610b13906124ae565b60405180910390fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000610b548484846113ad565b6001600160a01b038416600090815260046020908152604080832033808552925290912054610b8f918691610b8a9086906124f9565b611289565b5060019392505050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610a51918590610b8a90869061250c565b6000546001600160a01b03163314610bfa5760405162461bcd60e51b8152600401610b13906124ae565b601a5460ff1615610c415760405162461bcd60e51b8152602060048201526011602482015270199d5b98dd1a5bdb88191a5cd8589b1959607a1b6044820152606401610b13565b60008211610c615760405162461bcd60e51b8152600401610b139061251f565b60008111610c815760405162461bcd60e51b8152600401610b139061251f565b601491909155601655565b6000546001600160a01b03163314610cb65760405162461bcd60e51b8152600401610b13906124ae565b60058210610cee5760405162461bcd60e51b81526020600482015260056024820152641b585e080d60da1b6044820152606401610b13565b60058110610c815760405162461bcd60e51b81526020600482015260056024820152641b585e080d60da1b6044820152606401610b13565b6000546001600160a01b03163314610d505760405162461bcd60e51b8152600401610b13906124ae565b600a55565b600e546001600160a01b0316336001600160a01b031614610db85760405162461bcd60e51b815260206004820152601860248201527f6f6e6c79204361737368616e2063616e20646f207468697300000000000000006044820152606401610b13565b600d610dc4828261259a565b507f165888d2f050de2fb4551c219bb5f76b8ccc5674623cdf30ffdf59ed6fce1ce8600d604051610df5919061265a565b60405180910390a150565b6001600160a01b031660009081526003602052604090205490565b6000546001600160a01b03163314610e455760405162461bcd60e51b8152600401610b13906124ae565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610eb95760405162461bcd60e51b8152600401610b13906124ae565b601a805460ff19166001179055565b6000546001600160a01b03163314610ef25760405162461bcd60e51b8152600401610b13906124ae565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610a51918590610b8a9086906124f9565b6000610a513384846113ad565b6000546001600160a01b03163314610f825760405162461bcd60e51b8152600401610b13906124ae565b601a805463ff00000019169055565b6000546001600160a01b03163314610fbb5760405162461bcd60e51b8152600401610b13906124ae565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110075760405162461bcd60e51b8152600401610b13906124ae565b600081116110275760405162461bcd60e51b8152600401610b139061251f565b601955565b6000546001600160a01b031633146110565760405162461bcd60e51b8152600401610b13906124ae565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110ab5760405162461bcd60e51b8152600401610b13906124ae565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6060600d80546110e590612474565b80601f016020809104026020016040519081016040528092919081815260200182805461111190612474565b801561115e5780601f106111335761010080835404028352916020019161115e565b820191906000526020600020905b81548152906001019060200180831161114157829003601f168201915b5050505050905090565b6000546001600160a01b031633146111925760405162461bcd60e51b8152600401610b13906124ae565b601a805461ff0019169055565b6000546001600160a01b031633146111c95760405162461bcd60e51b8152600401610b13906124ae565b6001600160a01b03811661122e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b13565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166112eb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b13565b6001600160a01b03821661134c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b13565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114115760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b13565b6001600160a01b0382166114735760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b13565b600081116114d55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b13565b6000546001600160a01b0384811691161480159061150157506000546001600160a01b03838116911614155b801561152657506001600160a01b03821660009081526006602052604090205460ff16155b1561158f57600c546115418261153b85610e00565b90611b23565b111561158f5760405162461bcd60e51b815260206004820152601760248201527f4d61782042616c616e636520697320726561636865642e0000000000000000006044820152606401610b13565b601a54600090610100900460ff16158015906115c457506001600160a01b03841660009081526007602052604090205460ff16155b80156115e957506001600160a01b03831660009081526007602052604090205460ff16155b1561164757601a5462010000900460ff16156116475760405162461bcd60e51b815260206004820152601860248201527f5472616e73666572206973206e6f7420706f737369626c6500000000000000006044820152606401610b13565b601a546301000000900460ff161580159061167b57506001600160a01b03841660009081526007602052604090205460ff16155b80156116a057506001600160a01b03831660009081526007602052604090205460ff16155b1561170f576002546001600160a01b038581169116146117025760405162461bcd60e51b815260206004820152601e60248201527f53656c6c2069732074656d706f72617279206e6f7420706f737369626c6500006044820152606401610b13565b61170b83611b89565b5060015b6001600160a01b038416600090815260036020526040812080548492906117379084906124f9565b90915550506001600160a01b03841660009081526005602052604081205483919060ff1615801561178157506001600160a01b03851660009081526005602052604090205460ff16155b1561178a575060015b60006117976005436124f9565b6001600160a01b03881660009081526008602052604090205490915060ff161580156117dc57506001600160a01b03861660009081526008602052604090205460ff16155b156117ea57600093506117ef565b600193505b6001600160a01b03871660009081526009602052604090205481101561181457600193505b81801561183a57506001600160a01b03871660009081526008602052604090205460ff16155b801561185f57506001600160a01b03861660009081526008602052604090205460ff16155b8015611869575083155b15611970576002546001600160a01b038781169116146118b45761188d8587611bc5565b92506118af866001600160a01b03166000908152600960205260409020439055565b611970565b6118be8588611c9c565b925060006118f86103e86118f2600a546118ec600260009054906101000a90046001600160a01b0316610e00565b90611cd3565b90611d55565b90508061190430610e00565b101580156119155750601d5460ff16155b1561193b57601d805460ff1916600117905561193081611d97565b601d805460ff191690555b601d5460ff1661196e57601d805460ff1916600117905561196361195e30610e00565b611d97565b601d805460ff191690555b505b8315611a9e576002546001600160a01b0387811691161461199c576119958587611ee9565b9250611a4c565b6119a68588611ee9565b925060006119d46103e86118f2600a546118ec600260009054906101000a90046001600160a01b0316610e00565b9050806119e030610e00565b101580156119f15750601d5460ff16155b15611a1757601d805460ff19166001179055611a0c81611f1d565b601d805460ff191690555b601d5460ff16611a4a57601d805460ff19166001179055611a3f611a3a30610e00565b611f1d565b601d805460ff191690555b505b6002546001600160a01b0390811690871603611a8b57611a6b87611b89565b42600f55601080546001600160a01b0319166001600160a01b0389161790555b601c54611a9981600161250c565b601c55505b6001600160a01b03861660009081526003602052604081208054859290611ac690849061250c565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b1291815260200190565b60405180910390a350505050505050565b600080611b30838561250c565b905083811015611b825760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b13565b9392505050565b6001600160a01b0381166000908152600860205260409020805460ff19166001908117909155601b5490611bbe90829061250c565b601b555050565b600080606460136000015485611bdb91906126e5565b611be591906126fc565b90506000606460136001015486611bfc91906126e5565b611c0691906126fc565b9050611c12818361250c565b3060009081526003602052604081208054909190611c3190849061250c565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c6d858561250c565b60405190815260200160405180910390a380611c8983876124f9565b611c9391906124f9565b95945050505050565b600080606460156000015485611cb291906126e5565b611cbc91906126fc565b90506000606460156001015486611bfc91906126e5565b600082600003611ce557506000610a55565b6000611cf183856126e5565b905082611cfe85836126fc565b14611b825760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b13565b6000611b8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f67565b601554601654601354601454849360009390929091611db6919061250c565b611dc0919061250c565b611dca919061250c565b601554601354611dda919061250c565b611de490846126e5565b611dee91906126fc565b601554601654601354601454939450600093611e0a919061250c565b611e14919061250c565b611e1e919061250c565b601654601454611e2e919061250c565b611e3890856126e5565b611e4291906126fc565b90506000611e50828461250c565b90506000611e5f846002611d55565b90506000611e6d8683611f95565b905047611e7982611fd7565b6000611e854783611f95565b90506000611e97866118f2848b611cd3565b9050611ea38582612131565b6012546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611edc573d6000803e3d6000fd5b5050505050505050505050565b600080606460156000015485611eff91906126e5565b611f0991906126fc565b90506000606460195486611bfc91906126e5565b8080611f2881611fd7565b6012546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611f61573d6000803e3d6000fd5b50505050565b60008183611f885760405162461bcd60e51b8152600401610b139190612216565b506000611c9384866126fc565b6000611b8283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121e5565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061200c5761200c61271e565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612065573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120899190612734565b8160018151811061209c5761209c61271e565b6001600160a01b0392831660209182029290920101526001546120c29130911684611289565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906120fb908590600090869030904290600401612751565b600060405180830381600087803b15801561211557600080fd5b505af1158015612129573d6000803e3d6000fd5b505050505050565b6001546121499030906001600160a01b031684611289565b60015460115460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156121b9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121de91906127c2565b5050505050565b600081848411156122095760405162461bcd60e51b8152600401610b139190612216565b506000611c9384866124f9565b600060208083528351808285015260005b8181101561224357858101830151858201604001528201612227565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461227957600080fd5b50565b6000806040838503121561228f57600080fd5b823561229a81612264565b946020939093013593505050565b600080604083850312156122bb57600080fd5b82356122c681612264565b9150602083013580151581146122db57600080fd5b809150509250929050565b6000806000606084860312156122fb57600080fd5b833561230681612264565b9250602084013561231681612264565b929592945050506040919091013590565b6000806040838503121561233a57600080fd5b50508035926020909101359150565b60006020828403121561235b57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561238a57600080fd5b813567ffffffffffffffff808211156123a257600080fd5b818401915084601f8301126123b657600080fd5b8135818111156123c8576123c8612362565b604051601f8201601f19908116603f011681019083821181831017156123f0576123f0612362565b8160405282815287602084870101111561240957600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006020828403121561243b57600080fd5b8135611b8281612264565b6000806040838503121561245957600080fd5b823561246481612264565b915060208301356122db81612264565b600181811c9082168061248857607f821691505b6020821081036124a857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610a5557610a556124e3565b80820180821115610a5557610a556124e3565b60208082526016908201527506d7573742062652067726561746572207468616e20360541b604082015260600190565b601f82111561259557600081815260208120601f850160051c810160208610156125765750805b601f850160051c820191505b8181101561212957828155600101612582565b505050565b815167ffffffffffffffff8111156125b4576125b4612362565b6125c8816125c28454612474565b8461254f565b602080601f8311600181146125fd57600084156125e55750858301515b600019600386901b1c1916600185901b178555612129565b600085815260208120601f198616915b8281101561262c5788860151825594840194600190910190840161260d565b508582101561264a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083526000845461266e81612474565b8084870152604060018084166000811461268f57600181146126a9576126d7565b60ff1985168984015283151560051b8901830195506126d7565b896000528660002060005b858110156126cf5781548b82018601529083019088016126b4565b8a0184019650505b509398975050505050505050565b8082028115828204841417610a5557610a556124e3565b60008261271957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561274657600080fd5b8151611b8281612264565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127a15784516001600160a01b03168352938301939183019160010161277c565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156127d757600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220138cad458ca7b926debf0117cabf497817444e9ac4de3705f4fc947ba4e4831064736f6c63430008120033

Deployed Bytecode Sourcemap

4651:17020:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8212:83;;;;;;;;;;-1:-1:-1;8282:5:0;;;;;;;;;;;;-1:-1:-1;;;8282:5:0;;;;8212:83;;;;;;;:::i;:::-;;;;;;;;9044:161;;;;;;;;;;-1:-1:-1;9044:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9044:161:0;1023:187:1;5587:22:0;;;;;;;;;;;;;:::i;12244:104::-;;;;;;;;;;-1:-1:-1;12323:17:0;;12244:104;;;1361:25:1;;;1349:2;1334:18;12244:104:0;1215:177:1;10250:136:0;;;;;;;;;;-1:-1:-1;10250:136:0;;;;;:::i;:::-;;:::i;:::-;;12134:102;;;;;;;;;;-1:-1:-1;12212:16:0;;12134:102;;4735:41;;;;;;;;;;-1:-1:-1;4735:41:0;;;;-1:-1:-1;;;;;4735:41:0;;;;;;-1:-1:-1;;;;;2008:32:1;;;1990:51;;1978:2;1963:18;4735:41:0;1818:229:1;8489:95:0;;;;;;;;;;-1:-1:-1;8569:7:0;;8489:95;;9213:266;;;;;;;;;;-1:-1:-1;9213:266:0;;;;;:::i;:::-;;:::i;5729:94::-;;;;;;;;;;-1:-1:-1;5729:94:0;;;;-1:-1:-1;;;;;5729:94:0;;;6133:23;;;;;;;;;;-1:-1:-1;6133:23:0;;;;;;;;;;;;;2911:25:1;;;2967:2;2952:18;;2945:34;;;;2884:18;6133:23:0;2737:248:1;8398:83:0;;;;;;;;;;-1:-1:-1;8398:83:0;;5456:2;3132:36:1;;3120:2;3105:18;8398:83:0;2990:184:1;9487:215:0;;;;;;;;;;-1:-1:-1;9487:215:0;;;;;:::i;:::-;;:::i;10394:366::-;;;;;;;;;;-1:-1:-1;10394:366:0;;;;;:::i;:::-;;:::i;11060:254::-;;;;;;;;;;-1:-1:-1;11060:254:0;;;;;:::i;:::-;;:::i;14286:93::-;;;;;;;;;;-1:-1:-1;14286:93:0;;;;;:::i;:::-;;:::i;6105:21::-;;;;;;;;;;-1:-1:-1;6105:21:0;;;;;;;;;4785:28;;;;;;;;;;-1:-1:-1;4785:28:0;;;;-1:-1:-1;;;;;4785:28:0;;;5616:29;;;;;;;;;;-1:-1:-1;5616:29:0;;;;-1:-1:-1;;;;;5616:29:0;;;11484:236;;;;;;;;;;-1:-1:-1;11484:236:0;;;;;:::i;:::-;;:::i;14012:123::-;;;;;;;;;;-1:-1:-1;14012:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;14100:27:0;14076:4;14100:27;;;:18;:27;;;;;;;;;14012:123;6411:29;;;;;;;;;;;;;;;;14143:135;;;;;;;;;;-1:-1:-1;14143:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;14237:33:0;14213:4;14237:33;;;:24;:33;;;;;;;;;14143:135;8592:118;;;;;;;;;;-1:-1:-1;8592:118:0;;;;;:::i;:::-;;:::i;3112:148::-;;;;;;;;;;;;;:::i;10768:90::-;;;;;;;;;;;;;:::i;12466:104::-;;;;;;;;;;-1:-1:-1;12545:7:0;:17;12466:104;;2898:79;;;;;;;;;;-1:-1:-1;2936:7:0;2963:6;-1:-1:-1;;;;;2963:6:0;2898:79;;11832:142;;;;;;;;;;-1:-1:-1;11832:142:0;;;;;:::i;:::-;;:::i;8303:87::-;;;;;;;;;;-1:-1:-1;8375:7:0;;;;;;;;;;;;-1:-1:-1;;;8375:7:0;;;;8303:87;;12356:102;;;;;;;;;;-1:-1:-1;12434:6:0;:16;12356:102;;21035:95;;;;;;;;;;-1:-1:-1;21109:13:0;;;;;;;21035:95;;9710:225;;;;;;;;;;-1:-1:-1;9710:225:0;;;;;:::i;:::-;;:::i;5830:93::-;;;;;;;;;;-1:-1:-1;5830:93:0;;;;-1:-1:-1;;;;;5830:93:0;;;8718:167;;;;;;;;;;-1:-1:-1;8718:167:0;;;;;:::i;:::-;;:::i;10963:89::-;;;;;;;;;;;;;:::i;11982:144::-;;;;;;;;;;-1:-1:-1;11982:144:0;;;;;:::i;:::-;;:::i;21460:96::-;;;;;;;;;;-1:-1:-1;21535:13:0;;21460:96;;11322:154;;;;;;;;;;-1:-1:-1;11322:154:0;;;;;:::i;:::-;;:::i;9943:140::-;;;;;;;;;;-1:-1:-1;9943:140:0;;;;;:::i;:::-;;:::i;20694:112::-;;;;;;;;;;-1:-1:-1;20694:112:0;;;;;:::i;:::-;-1:-1:-1;;;;;20777:21:0;20753:4;20777:21;;;:12;:21;;;;;;;;;20694:112;10091:151;;;;;;;;;;-1:-1:-1;10091:151:0;;;;;:::i;:::-;;:::i;21564:102::-;;;;;;;;;;-1:-1:-1;21642:16:0;;-1:-1:-1;;;;;21642:16:0;21564:102;;11728:96;;;;;;;;;;;;;:::i;8893:143::-;;;;;;;;;;-1:-1:-1;8893:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9001:18:0;;;8974:7;9001:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8893:143;5689:31;;;;;;;;;;-1:-1:-1;5689:31:0;;;;-1:-1:-1;;;;;5689:31:0;;;5654:28;;;;;;;;;;;;;;;;21138:94;;;;;;;;;;-1:-1:-1;21212:12:0;;21138:94;;10866:89;;;;;;;;;;;;;:::i;20814:110::-;;;;;;;;;;-1:-1:-1;20814:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;20896:20:0;20872:4;20896:20;;;:11;:20;;;;;;;;;20814:110;3268:244;;;;;;;;;;-1:-1:-1;3268:244:0;;;;;:::i;:::-;;:::i;6447:30::-;;;;;;;;;;;;;;;;20932:95;;;;;;;;;;-1:-1:-1;21006:13:0;;;;;;;20932:95;;9044:161;9119:4;9136:39;2430:10;9159:7;9168:6;9136:8;:39::i;:::-;-1:-1:-1;9193:4:0;9044:161;;;;;:::o;5587:22::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10250:136::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10338:29:0;;;::::1;;::::0;;;:11:::1;:29;::::0;;;;:40;;-1:-1:-1;;10338:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10250:136::o;9213:266::-;9311:4;9328:36;9338:6;9346:9;9357:6;9328:9;:36::i;:::-;-1:-1:-1;;;;;9406:19:0;;;;;;:11;:19;;;;;;;;2430:10;9406:33;;;;;;;;;9375:74;;9384:6;;9406:42;;9442:6;;9406:42;:::i;:::-;9375:8;:74::i;:::-;-1:-1:-1;9467:4:0;9213:266;;;;;:::o;9487:215::-;2430:10;9575:4;9624:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9624:34:0;;;;;;;;;;9575:4;;9592:80;;9615:7;;9624:47;;9661:10;;9624:47;:::i;10394:366::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;10503:19:::1;::::0;::::1;;:28;10495:58;;;::::0;-1:-1:-1;;;10495:58:0;;7132:2:1;10495:58:0::1;::::0;::::1;7114:21:1::0;7171:2;7151:18;;;7144:30;-1:-1:-1;;;7190:18:1;;;7183:47;7247:18;;10495:58:0::1;6930:341:1::0;10495:58:0::1;10584:1;10572:9;:13;10564:48;;;;-1:-1:-1::0;;;10564:48:0::1;;;;;;;:::i;:::-;10644:1;10631:10;:14;10623:49;;;;-1:-1:-1::0;;;10623:49:0::1;;;;;;;:::i;:::-;10683:16:::0;:28;;;;10722:17;:30;10394:366::o;11060:254::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;11172:1:::1;11160:9;:13;11152:31;;;::::0;-1:-1:-1;;;11152:31:0;;7829:2:1;11152:31:0::1;::::0;::::1;7811:21:1::0;7868:1;7848:18;;;7841:29;-1:-1:-1;;;7886:18:1;;;7879:35;7931:18;;11152:31:0::1;7627:328:1::0;11152:31:0::1;11215:1;11202:10;:14;11194:32;;;::::0;-1:-1:-1;;;11194:32:0;;7829:2:1;11194:32:0::1;::::0;::::1;7811:21:1::0;7868:1;7848:18;;;7841:29;-1:-1:-1;;;7886:18:1;;;7879:35;7931:18;;11194:32:0::1;7627:328:1::0;14286:93:0;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;14354:8:::1;:17:::0;14286:93::o;11484:236::-;11589:14;;-1:-1:-1;;;;;11589:14:0;2430:10;-1:-1:-1;;;;;11573:30:0;;11565:67;;;;-1:-1:-1;;;11565:67:0;;8162:2:1;11565:67:0;;;8144:21:1;8201:2;8181:18;;;8174:30;8240:26;8220:18;;;8213:54;8284:18;;11565:67:0;7960:348:1;11565:67:0;11643:8;:22;11654:11;11643:8;:22;:::i;:::-;;11681:31;11703:8;11681:31;;;;;;:::i;:::-;;;;;;;;11484:236;:::o;8592:118::-;-1:-1:-1;;;;;8685:17:0;8658:7;8685:17;;;:8;:17;;;;;;;8592:118::o;3112:148::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;3219:1:::1;3203:6:::0;;3182:40:::1;::::0;-1:-1:-1;;;;;3203:6:0;;::::1;::::0;3182:40:::1;::::0;3219:1;;3182:40:::1;3250:1;3233:19:::0;;-1:-1:-1;;;;;;3233:19:0::1;::::0;;3112:148::o;10768:90::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;10824:19:::1;:26:::0;;-1:-1:-1;;10824:26:0::1;10846:4;10824:26;::::0;;10768:90::o;11832:142::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;11928:16:::1;:38:::0;;-1:-1:-1;;;;;;11928:38:0::1;-1:-1:-1::0;;;;;11928:38:0;;;::::1;::::0;;;::::1;::::0;;11832:142::o;9710:225::-;2430:10;9803:4;9852:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9852:34:0;;;;;;;;;;9803:4;;9820:85;;9843:7;;9852:52;;9889:15;;9852:52;:::i;8718:167::-;8796:4;8813:42;2430:10;8837:9;8848:6;8813:9;:42::i;10963:89::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;11023:13:::1;:21:::0;;-1:-1:-1;;11023:21:0::1;::::0;;10963:89::o;11982:144::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;12079:17:::1;:39:::0;;-1:-1:-1;;;;;;12079:39:0::1;-1:-1:-1::0;;;;;12079:39:0;;;::::1;::::0;;;::::1;::::0;;11982:144::o;11322:154::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;11408:1:::1;11399:6;:10;11391:45;;;;-1:-1:-1::0;;;11391:45:0::1;;;;;;;:::i;:::-;11447:12;:21:::0;11322:154::o;9943:140::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10028:36:0;;;::::1;;::::0;;;:18:::1;:36;::::0;;;;:47;;-1:-1:-1;;10028:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9943:140::o;10091:151::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10181:42:0;;;::::1;;::::0;;;:24:::1;:42;::::0;;;;:53;;-1:-1:-1;;10181:53:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10091:151::o;11728:96::-;11775:13;11808:8;11801:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11728:96;:::o;10866:89::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;10926:13:::1;:21:::0;;-1:-1:-1;;10926:21:0::1;::::0;;10866:89::o;3268:244::-;3025:6;;-1:-1:-1;;;;;3025:6:0;2430:10;3025:22;3017:67;;;;-1:-1:-1;;;3017:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3357:22:0;::::1;3349:73;;;::::0;-1:-1:-1;;;3349:73:0;;11687:2:1;3349:73:0::1;::::0;::::1;11669:21:1::0;11726:2;11706:18;;;11699:30;11765:34;11745:18;;;11738:62;-1:-1:-1;;;11816:18:1;;;11809:36;11862:19;;3349:73:0::1;11485:402:1::0;3349:73:0::1;3459:6;::::0;;3438:38:::1;::::0;-1:-1:-1;;;;;3438:38:0;;::::1;::::0;3459:6;::::1;::::0;3438:38:::1;::::0;::::1;3487:6;:17:::0;;-1:-1:-1;;;;;;3487:17:0::1;-1:-1:-1::0;;;;;3487:17:0;;;::::1;::::0;;;::::1;::::0;;3268:244::o;14387:337::-;-1:-1:-1;;;;;14480:19:0;;14472:68;;;;-1:-1:-1;;;14472:68:0;;12094:2:1;14472:68:0;;;12076:21:1;12133:2;12113:18;;;12106:30;12172:34;12152:18;;;12145:62;-1:-1:-1;;;12223:18:1;;;12216:34;12267:19;;14472:68:0;11892:400:1;14472:68:0;-1:-1:-1;;;;;14559:21:0;;14551:68;;;;-1:-1:-1;;;14551:68:0;;12499:2:1;14551:68:0;;;12481:21:1;12538:2;12518:18;;;12511:30;12577:34;12557:18;;;12550:62;-1:-1:-1;;;12628:18:1;;;12621:32;12670:19;;14551:68:0;12297:398:1;14551:68:0;-1:-1:-1;;;;;14632:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14684:32;;1361:25:1;;;14684:32:0;;1334:18:1;14684:32:0;;;;;;;14387:337;;;:::o;14732:3425::-;-1:-1:-1;;;;;14854:18:0;;14846:68;;;;-1:-1:-1;;;14846:68:0;;12902:2:1;14846:68:0;;;12884:21:1;12941:2;12921:18;;;12914:30;12980:34;12960:18;;;12953:62;-1:-1:-1;;;13031:18:1;;;13024:35;13076:19;;14846:68:0;12700:401:1;14846:68:0;-1:-1:-1;;;;;14933:16:0;;14925:64;;;;-1:-1:-1;;;14925:64:0;;13308:2:1;14925:64:0;;;13290:21:1;13347:2;13327:18;;;13320:30;13386:34;13366:18;;;13359:62;-1:-1:-1;;;13437:18:1;;;13430:33;13480:19;;14925:64:0;13106:399:1;14925:64:0;15017:1;15008:6;:10;15000:64;;;;-1:-1:-1;;;15000:64:0;;13712:2:1;15000:64:0;;;13694:21:1;13751:2;13731:18;;;13724:30;13790:34;13770:18;;;13763:62;-1:-1:-1;;;13841:18:1;;;13834:39;13890:19;;15000:64:0;13510:405:1;15000:64:0;2936:7;2963:6;-1:-1:-1;;;;;15080:15:0;;;2963:6;;15080:15;;;;:32;;-1:-1:-1;2936:7:0;2963:6;-1:-1:-1;;;;;15099:13:0;;;2963:6;;15099:13;;15080:32;:65;;;;-1:-1:-1;;;;;;15117:28:0;;;;;;:24;:28;;;;;;;;15116:29;15080:65;15077:169;;;15198:8;;15169:25;15187:6;15169:13;15179:2;15169:9;:13::i;:::-;:17;;:25::i;:::-;:37;;15161:73;;;;-1:-1:-1;;;15161:73:0;;14122:2:1;15161:73:0;;;14104:21:1;14161:2;14141:18;;;14134:30;14200:25;14180:18;;;14173:53;14243:18;;15161:73:0;13920:347:1;15161:73:0;15290:13;;15258:16;;15290:13;;;;;:22;;;;:44;;-1:-1:-1;;;;;;15317:17:0;;;;;;:11;:17;;;;;;;;15316:18;15290:44;:64;;;;-1:-1:-1;;;;;;15339:15:0;;;;;;:11;:15;;;;;;;;15338:16;15290:64;15287:147;;;15376:8;;;;;;;:17;15368:54;;;;-1:-1:-1;;;15368:54:0;;14474:2:1;15368:54:0;;;14456:21:1;14513:2;14493:18;;;14486:30;14552:26;14532:18;;;14525:54;14596:18;;15368:54:0;14272:348:1;15368:54:0;15449:13;;;;;;;:22;;;;:44;;-1:-1:-1;;;;;;15476:17:0;;;;;;:11;:17;;;;;;;;15475:18;15449:44;:64;;;;-1:-1:-1;;;;;;15498:15:0;;;;;;:11;:15;;;;;;;;15497:16;15449:64;15446:220;;;15543:13;;-1:-1:-1;;;;;15535:21:0;;;15543:13;;15535:21;15527:64;;;;-1:-1:-1;;;15527:64:0;;14827:2:1;15527:64:0;;;14809:21:1;14866:2;14846:18;;;14839:30;14905:32;14885:18;;;14878:60;14955:18;;15527:64:0;14625:354:1;15527:64:0;15604:19;15620:2;15604:15;:19::i;:::-;-1:-1:-1;15650:4:0;15446:220;-1:-1:-1;;;;;15678:14:0;;;;;;:8;:14;;;;;:24;;15696:6;;15678:14;:24;;15696:6;;15678:24;:::i;:::-;;;;-1:-1:-1;;;;;;;15786:24:0;;15713:22;15786:24;;;:18;:24;;;;;;15738:6;;15713:22;15786:24;;15785:25;:52;;;;-1:-1:-1;;;;;;15815:22:0;;;;;;:18;:22;;;;;;;;15814:23;15785:52;15782:97;;;-1:-1:-1;15863:4:0;15782:97;15891:17;15911:16;15926:1;15911:12;:16;:::i;:::-;-1:-1:-1;;;;;15944:18:0;;;;;;:12;:18;;;;;;15891:36;;-1:-1:-1;15944:18:0;;15943:19;:40;;;;-1:-1:-1;;;;;;15967:16:0;;;;;;:12;:16;;;;;;;;15966:17;15943:40;15940:141;;;16013:5;15999:19;;15940:141;;;16065:4;16051:18;;15940:141;-1:-1:-1;;;;;16096:14:0;;;;;;:8;:14;;;;;;:26;-1:-1:-1;16093:76:0;;;16153:4;16139:18;;16093:76;16184:7;:30;;;;-1:-1:-1;;;;;;16196:18:0;;;;;;:12;:18;;;;;;;;16195:19;16184:30;:51;;;;-1:-1:-1;;;;;;16219:16:0;;;;;;:12;:16;;;;;;;;16218:17;16184:51;:67;;;;;16240:11;16239:12;16184:67;16181:828;;;16276:13;;-1:-1:-1;;;;;16270:19:0;;;16276:13;;16270:19;16267:731;;16326:23;16338:6;16346:2;16326:11;:23::i;:::-;16309:40;;16368:15;16380:2;-1:-1:-1;;;;;20637:26:0;;;;;:8;:26;;;;;20666:12;20637:41;;20580:106;16368:15;16267:731;;;16441:26;16454:6;16462:4;16441:12;:26::i;:::-;16424:43;;16486:25;16514:48;16557:4;16514:38;16543:8;;16514:24;16524:13;;;;;;;;;-1:-1:-1;;;;;16524:13:0;16514:9;:24::i;:::-;:28;;:38::i;:::-;:42;;:48::i;:::-;16486:76;;16615:17;16587:24;16605:4;16587:9;:24::i;:::-;:45;;:58;;;;-1:-1:-1;16637:8:0;;;;16636:9;16587:58;16583:211;;;16670:8;:15;;-1:-1:-1;;16670:15:0;16681:4;16670:15;;;16708:27;16717:17;16708:8;:27::i;:::-;16758:8;:16;;-1:-1:-1;;16758:16:0;;;16583:211;16819:8;;;;16814:169;;16852:8;:15;;-1:-1:-1;;16852:15:0;16863:4;16852:15;;;16890:34;16899:24;16917:4;16899:9;:24::i;:::-;16890:8;:34::i;:::-;16947:8;:16;;-1:-1:-1;;16947:16:0;;;16814:169;16405:593;16267:731;17024:11;17021:1036;;;17058:13;;-1:-1:-1;;;;;17052:19:0;;;17058:13;;17052:19;17049:716;;17106:29;17124:6;17132:2;17106:17;:29::i;:::-;17089:46;;17049:716;;;17189:31;17207:6;17215:4;17189:17;:31::i;:::-;17172:48;;17237:25;17265:48;17308:4;17265:38;17294:8;;17265:24;17275:13;;;;;;;;;-1:-1:-1;;;;;17275:13:0;17265:9;:24::i;:48::-;17237:76;;17366:17;17338:24;17356:4;17338:9;:24::i;:::-;:45;;:58;;;;-1:-1:-1;17388:8:0;;;;17387:9;17338:58;17334:220;;;17421:8;:15;;-1:-1:-1;;17421:15:0;17432:4;17421:15;;;17459:36;17477:17;17459;:36::i;:::-;17518:8;:16;;-1:-1:-1;;17518:16:0;;;17334:220;17579:8;;;;17574:178;;17612:8;:15;;-1:-1:-1;;17612:15:0;17623:4;17612:15;;;17650:43;17668:24;17686:4;17668:9;:24::i;:::-;17650:17;:43::i;:::-;17716:8;:16;;-1:-1:-1;;17716:16:0;;;17574:178;17155:610;17049:716;17787:13;;-1:-1:-1;;;;;17787:13:0;;;17781:19;;;;17777:159;;17817:21;17833:4;17817:15;:21::i;:::-;17869:15;17853:13;:31;17899:16;:23;;-1:-1:-1;;;;;;17899:23:0;-1:-1:-1;;;;;17899:23:0;;;;;17777:159;17977:15;;18023:22;17977:15;18044:1;18023:22;:::i;:::-;18005:15;:40;-1:-1:-1;17021:1036:0;-1:-1:-1;;;;;18069:12:0;;;;;;:8;:12;;;;;:30;;18085:14;;18069:12;:30;;18085:14;;18069:30;:::i;:::-;;;;;;;;18130:2;-1:-1:-1;;;;;18115:34:0;18124:4;-1:-1:-1;;;;;18115:34:0;;18134:14;18115:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;18115:34:0;;;;;;;;14835:3322;;;;14732:3425;;;:::o;773:181::-;831:7;;863:5;867:1;863;:5;:::i;:::-;851:17;;892:1;887;:6;;879:46;;;;-1:-1:-1;;;879:46:0;;15186:2:1;879:46:0;;;15168:21:1;15225:2;15205:18;;;15198:30;15264:29;15244:18;;;15237:57;15311:18;;879:46:0;14984:351:1;879:46:0;945:1;773:181;-1:-1:-1;;;773:181:0:o;20378:194::-;-1:-1:-1;;;;;20439:30:0;;;;;;:12;:30;;;;;:37;;-1:-1:-1;;20439:37:0;20472:4;20439:37;;;;;;20508:14;;;20550;;20508;;20550;:::i;:::-;20533;:31;-1:-1:-1;;20378:194:0:o;12615:455::-;12683:7;12703:25;12759:3;12740:6;:16;;;12731:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;12703:59;;12773:26;12830:3;12811:6;:16;;;12802:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;12773:60;-1:-1:-1;12873:38:0;12773:60;12873:17;:38;:::i;:::-;12863:4;12846:23;;;;:8;:23;;;;;:65;;:23;;;:65;;;;;:::i;:::-;;;;-1:-1:-1;12951:4:0;;-1:-1:-1;;;;;;12927:70:0;;;12958:38;12979:17;12958:18;:38;:::i;:::-;12927:70;;1361:25:1;;;1349:2;1334:18;12927:70:0;;;;;;;13043:18;13016:25;13024:17;13016:6;:25;:::i;:::-;:45;;;;:::i;:::-;13008:54;12615:455;-1:-1:-1;;;;;12615:455:0:o;13078:459::-;13147:7;13167:25;13224:3;13204:7;:17;;;13195:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;13167:60;;13238:26;13296:3;13276:7;:17;;;13267:6;:26;;;;:::i;1306:250::-;1364:7;1388:1;1393;1388:6;1384:47;;-1:-1:-1;1418:1:0;1411:8;;1384:47;1443:9;1455:5;1459:1;1455;:5;:::i;:::-;1443:17;-1:-1:-1;1488:1:0;1479:5;1483:1;1443:17;1479:5;:::i;:::-;:10;1471:56;;;;-1:-1:-1;;;1471:56:0;;15937:2:1;1471:56:0;;;15919:21:1;15976:2;15956:18;;;15949:30;16015:34;15995:18;;;15988:62;-1:-1:-1;;;16066:18:1;;;16059:31;16107:19;;1471:56:0;15735:397:1;1564:132:0;1622:7;1649:39;1653:1;1656;1649:39;;;;;;;;;;;;;;;;;:3;:39::i;18165:1058::-;18405:7;:17;18385;;18366:6;:16;18347;;18244:6;;18218:23;;18405:17;;18385;;18347:35;;18366:16;18347:35;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;18325:7;:17;18306:6;:16;:36;;18325:17;18306:36;:::i;:::-;18287:56;;:15;:56;:::i;:::-;:136;;;;:::i;:::-;18578:7;:17;18558;;18539:6;:16;18520;;18261:162;;-1:-1:-1;18434:23:0;;18520:35;;18539:16;18520:35;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;18498:17;;18479:16;;:36;;18498:17;18479:36;:::i;:::-;18460:56;;:15;:56;:::i;:::-;:136;;;;:::i;:::-;18434:162;-1:-1:-1;18607:25:0;18635:33;18434:162;18635:15;:33;:::i;:::-;18607:61;-1:-1:-1;18681:26:0;18710:22;:15;18730:1;18710:19;:22::i;:::-;18681:51;-1:-1:-1;18743:26:0;18772:39;:15;18681:51;18772:19;:39::i;:::-;18743:68;-1:-1:-1;18850:21:0;18882:36;18743:68;18882:16;:36::i;:::-;18929:18;18950:44;:21;18976:17;18950:25;:44::i;:::-;18929:65;-1:-1:-1;19007:23:0;19033:54;19069:17;19033:31;18929:65;19048:15;19033:14;:31::i;:54::-;19007:80;;19098:49;19111:18;19131:15;19098:12;:49::i;:::-;19166:16;;19158:57;;-1:-1:-1;;;;;19166:16:0;;;;19193:21;19158:57;;;;;19166:16;19158:57;19166:16;19158:57;19193:21;19166:16;19158:57;;;;;;;;;;;;;;;;;;;;;18207:1016;;;;;;;;;18165:1058;:::o;13545:459::-;13619:7;13639:25;13696:3;13676:7;:17;;;13667:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;13639:60;;13710:26;13763:3;13748:12;;13739:6;:21;;;;:::i;19231:274::-;19319:6;;19393:36;19319:6;19393:16;:36::i;:::-;19448:16;;19440:57;;-1:-1:-1;;;;;19448:16:0;;;;19475:21;19440:57;;;;;19448:16;19440:57;19448:16;19440:57;19475:21;19448:16;19440:57;;;;;;;;;;;;;;;;;;;;;19282:223;;19231:274;:::o;1704:278::-;1790:7;1825:12;1818:5;1810:28;;;;-1:-1:-1;;;1810:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1849:9:0;1861:5;1865:1;1861;:5;:::i;962:136::-;1020:7;1047:43;1051:1;1054;1047:43;;;;;;;;;;;;;;;;;:3;:43::i;19513:475::-;19603:16;;;19617:1;19603:16;;;;;;;;19579:21;;19603:16;;;;;;;;;;-1:-1:-1;19603:16:0;19579:40;;19648:4;19630;19635:1;19630:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19630:23:0;;;:7;;;;;;;;;;:23;;;;19674:15;;:22;;;-1:-1:-1;;;19674:22:0;;;;:15;;;;;:20;;:22;;;;;19630:7;;19674:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19664:4;19669:1;19664:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19664:32:0;;;:7;;;;;;;;;:32;19741:15;;19709:62;;19726:4;;19741:15;19759:11;19709:8;:62::i;:::-;19784:15;;:196;;-1:-1:-1;;;19784:196:0;;-1:-1:-1;;;;;19784:15:0;;;;:66;;:196;;19865:11;;19784:15;;19907:4;;19934;;19954:15;;19784:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19568:420;19513:475;:::o;19996:374::-;20109:15;;20077:62;;20094:4;;-1:-1:-1;;;;;20109:15:0;20127:11;20077:8;:62::i;:::-;20152:15;;20304:17;;20152:210;;-1:-1:-1;;;20152:210:0;;20226:4;20152:210;;;17859:34:1;17909:18;;;17902:34;;;20152:15:0;17952:18:1;;;17945:34;;;17995:18;;;17988:34;-1:-1:-1;;;;;20304:17:0;;;18038:19:1;;;18031:44;20336:15:0;18091:19:1;;;18084:35;20152:15:0;;;:31;;20192:9;;17793:19:1;;20152:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19996:374;;:::o;1106:192::-;1192:7;1228:12;1220:6;;;;1212:29;;;;-1:-1:-1;;;1212:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1252:9:0;1264:5;1268:1;1264;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:416::-;1462:6;1470;1523:2;1511:9;1502:7;1498:23;1494:32;1491:52;;;1539:1;1536;1529:12;1491:52;1578:9;1565:23;1597:31;1622:5;1597:31;:::i;:::-;1647:5;-1:-1:-1;1704:2:1;1689:18;;1676:32;1746:15;;1739:23;1727:36;;1717:64;;1777:1;1774;1767:12;1717:64;1800:7;1790:17;;;1397:416;;;;;:::o;2052:456::-;2129:6;2137;2145;2198:2;2186:9;2177:7;2173:23;2169:32;2166:52;;;2214:1;2211;2204:12;2166:52;2253:9;2240:23;2272:31;2297:5;2272:31;:::i;:::-;2322:5;-1:-1:-1;2379:2:1;2364:18;;2351:32;2392:33;2351:32;2392:33;:::i;:::-;2052:456;;2444:7;;-1:-1:-1;;;2498:2:1;2483:18;;;;2470:32;;2052:456::o;3179:248::-;3247:6;3255;3308:2;3296:9;3287:7;3283:23;3279:32;3276:52;;;3324:1;3321;3314:12;3276:52;-1:-1:-1;;3347:23:1;;;3417:2;3402:18;;;3389:32;;-1:-1:-1;3179:248:1:o;3432:180::-;3491:6;3544:2;3532:9;3523:7;3519:23;3515:32;3512:52;;;3560:1;3557;3550:12;3512:52;-1:-1:-1;3583:23:1;;3432:180;-1:-1:-1;3432:180:1:o;3825:127::-;3886:10;3881:3;3877:20;3874:1;3867:31;3917:4;3914:1;3907:15;3941:4;3938:1;3931:15;3957:922;4026:6;4079:2;4067:9;4058:7;4054:23;4050:32;4047:52;;;4095:1;4092;4085:12;4047:52;4135:9;4122:23;4164:18;4205:2;4197:6;4194:14;4191:34;;;4221:1;4218;4211:12;4191:34;4259:6;4248:9;4244:22;4234:32;;4304:7;4297:4;4293:2;4289:13;4285:27;4275:55;;4326:1;4323;4316:12;4275:55;4362:2;4349:16;4384:2;4380;4377:10;4374:36;;;4390:18;;:::i;:::-;4465:2;4459:9;4433:2;4519:13;;-1:-1:-1;;4515:22:1;;;4539:2;4511:31;4507:40;4495:53;;;4563:18;;;4583:22;;;4560:46;4557:72;;;4609:18;;:::i;:::-;4649:10;4645:2;4638:22;4684:2;4676:6;4669:18;4724:7;4719:2;4714;4710;4706:11;4702:20;4699:33;4696:53;;;4745:1;4742;4735:12;4696:53;4801:2;4796;4792;4788:11;4783:2;4775:6;4771:15;4758:46;4846:1;4824:15;;;4841:2;4820:24;4813:35;;;;-1:-1:-1;4828:6:1;3957:922;-1:-1:-1;;;;;3957:922:1:o;4884:247::-;4943:6;4996:2;4984:9;4975:7;4971:23;4967:32;4964:52;;;5012:1;5009;5002:12;4964:52;5051:9;5038:23;5070:31;5095:5;5070:31;:::i;5396:388::-;5464:6;5472;5525:2;5513:9;5504:7;5500:23;5496:32;5493:52;;;5541:1;5538;5531:12;5493:52;5580:9;5567:23;5599:31;5624:5;5599:31;:::i;:::-;5649:5;-1:-1:-1;5706:2:1;5691:18;;5678:32;5719:33;5678:32;5719:33;:::i;5789:380::-;5868:1;5864:12;;;;5911;;;5932:61;;5986:4;5978:6;5974:17;5964:27;;5932:61;6039:2;6031:6;6028:14;6008:18;6005:38;6002:161;;6085:10;6080:3;6076:20;6073:1;6066:31;6120:4;6117:1;6110:15;6148:4;6145:1;6138:15;6002:161;;5789:380;;;:::o;6174:356::-;6376:2;6358:21;;;6395:18;;;6388:30;6454:34;6449:2;6434:18;;6427:62;6521:2;6506:18;;6174:356::o;6535:127::-;6596:10;6591:3;6587:20;6584:1;6577:31;6627:4;6624:1;6617:15;6651:4;6648:1;6641:15;6667:128;6734:9;;;6755:11;;;6752:37;;;6769:18;;:::i;6800:125::-;6865:9;;;6886:10;;;6883:36;;;6899:18;;:::i;7276:346::-;7478:2;7460:21;;;7517:2;7497:18;;;7490:30;-1:-1:-1;;;7551:2:1;7536:18;;7529:52;7613:2;7598:18;;7276:346::o;8439:545::-;8541:2;8536:3;8533:11;8530:448;;;8577:1;8602:5;8598:2;8591:17;8647:4;8643:2;8633:19;8717:2;8705:10;8701:19;8698:1;8694:27;8688:4;8684:38;8753:4;8741:10;8738:20;8735:47;;;-1:-1:-1;8776:4:1;8735:47;8831:2;8826:3;8822:12;8819:1;8815:20;8809:4;8805:31;8795:41;;8886:82;8904:2;8897:5;8894:13;8886:82;;;8949:17;;;8930:1;8919:13;8886:82;;8530:448;8439:545;;;:::o;9160:1352::-;9286:3;9280:10;9313:18;9305:6;9302:30;9299:56;;;9335:18;;:::i;:::-;9364:97;9454:6;9414:38;9446:4;9440:11;9414:38;:::i;:::-;9408:4;9364:97;:::i;:::-;9516:4;;9580:2;9569:14;;9597:1;9592:663;;;;10299:1;10316:6;10313:89;;;-1:-1:-1;10368:19:1;;;10362:26;10313:89;-1:-1:-1;;9117:1:1;9113:11;;;9109:24;9105:29;9095:40;9141:1;9137:11;;;9092:57;10415:81;;9562:944;;9592:663;8386:1;8379:14;;;8423:4;8410:18;;-1:-1:-1;;9628:20:1;;;9746:236;9760:7;9757:1;9754:14;9746:236;;;9849:19;;;9843:26;9828:42;;9941:27;;;;9909:1;9897:14;;;;9776:19;;9746:236;;;9750:3;10010:6;10001:7;9998:19;9995:201;;;10071:19;;;10065:26;-1:-1:-1;;10154:1:1;10150:14;;;10166:3;10146:24;10142:37;10138:42;10123:58;10108:74;;9995:201;-1:-1:-1;;;;;10242:1:1;10226:14;;;10222:22;10209:36;;-1:-1:-1;9160:1352:1:o;10517:963::-;10626:4;10655:2;10684;10673:9;10666:21;10707:1;10740:6;10734:13;10770:36;10796:9;10770:36;:::i;:::-;10842:6;10837:2;10826:9;10822:18;10815:34;10868:2;10889:1;10921:2;10910:9;10906:18;10938:1;10933:158;;;;11105:1;11100:354;;;;10899:555;;10933:158;-1:-1:-1;;10981:24:1;;10961:18;;;10954:52;11059:14;;11052:22;11049:1;11045:30;11030:46;;11026:55;;;-1:-1:-1;10933:158:1;;11100:354;11131:6;11128:1;11121:17;11179:2;11176:1;11166:16;11204:1;11218:180;11232:6;11229:1;11226:13;11218:180;;;11325:14;;11301:17;;;11297:26;;11290:50;11368:16;;;;11247:10;;11218:180;;;11422:17;;11418:26;;;-1:-1:-1;;10899:555:1;-1:-1:-1;11471:3:1;;10517:963;-1:-1:-1;;;;;;;;10517:963:1:o;15340:168::-;15413:9;;;15444;;15461:15;;;15455:22;;15441:37;15431:71;;15482:18;;:::i;15513:217::-;15553:1;15579;15569:132;;15623:10;15618:3;15614:20;15611:1;15604:31;15658:4;15655:1;15648:15;15686:4;15683:1;15676:15;15569:132;-1:-1:-1;15715:9:1;;15513:217::o;16137:127::-;16198:10;16193:3;16189:20;16186:1;16179:31;16229:4;16226:1;16219:15;16253:4;16250:1;16243:15;16269:251;16339:6;16392:2;16380:9;16371:7;16367:23;16363:32;16360:52;;;16408:1;16405;16398:12;16360:52;16440:9;16434:16;16459:31;16484:5;16459:31;:::i;16525:980::-;16787:4;16835:3;16824:9;16820:19;16866:6;16855:9;16848:25;16892:2;16930:6;16925:2;16914:9;16910:18;16903:34;16973:3;16968:2;16957:9;16953:18;16946:31;16997:6;17032;17026:13;17063:6;17055;17048:22;17101:3;17090:9;17086:19;17079:26;;17140:2;17132:6;17128:15;17114:29;;17161:1;17171:195;17185:6;17182:1;17179:13;17171:195;;;17250:13;;-1:-1:-1;;;;;17246:39:1;17234:52;;17341:15;;;;17306:12;;;;17282:1;17200:9;17171:195;;;-1:-1:-1;;;;;;;17422:32:1;;;;17417:2;17402:18;;17395:60;-1:-1:-1;;;17486:3:1;17471:19;17464:35;17383:3;16525:980;-1:-1:-1;;;16525:980:1:o;18130:306::-;18218:6;18226;18234;18287:2;18275:9;18266:7;18262:23;18258:32;18255:52;;;18303:1;18300;18293:12;18255:52;18332:9;18326:16;18316:26;;18382:2;18371:9;18367:18;18361:25;18351:35;;18426:2;18415:9;18411:18;18405:25;18395:35;;18130:306;;;;;:::o

Swarm Source

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