ETH Price: $2,869.25 (-10.41%)
Gas: 14 Gwei

Token

Safe Snipe (SNIPE)
 

Overview

Max Total Supply

100,000,000 SNIPE

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,000,000 SNIPE

Value
$0.00
0xde3e84a6dbe1dc551c6f3d86ce8f7d913339dee5
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:
SafeSnipe

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 2 of 2: safesnipe.sol
/**

︻デ═一 ︻デ═一 ︻デ═一 ︻デ═一 ︻デ═一

https://safesnipe.co/
https://t.me/safesnipe		

︻デ═一 ︻デ═一 ︻デ═一 ︻デ═一 ︻デ═一
 */

// SPDX-License-Identifier: unlicensed
pragma solidity ^0.8.9;

import "./Libraries.sol";

/**
 * Contract Code
 */
contract SafeSnipe is IBEP20, Ownable {
    using SafeMath for uint256;
    using SignedSafeMath for int256;

    // Events
    event OwnerEnableTrading(uint256 _deadBlocks,uint256 timestamp);
    event OwnerSwitchTradingStatus(bool enabled,uint256 timestamp);
    event OwnerSetMarketingWallet(address oldMarketingWallet,address marketing);
    event OwnerSetTeamWallet(address oldTeamWallet,address team);
    event OwnerSetsnipeWallet(address oldsnipeWallet,address snipe);
    event OwnerSetBuyFees(uint8 snipe,uint8 team,uint8 marketing,uint8 liquidity);
    event OwnerSetSellFees(uint8 snipe,uint8 team,uint8 marketing,uint8 liquidity);
    event OwnerSetLimits(uint256 maxTxBase1000,uint256 maxWalletBase1000);
    event OwnerSetSwapSetting(uint256 swapThresholdBase10000,bool enabled);
    event OwnerSwitchSameBlock(bool enabled, uint256 timestamp);
    event OwnerSetFeeExempt(address account,bool enabled);
    event OwnerSetTxLimitExempt(address account,bool enabled);
    event OwnerBlacklistAddress(address account,bool enabled);
    event OwnerSetPresaleAddress(address presaler);

    // Mappings
    mapping (address => uint256) _rBalance;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => uint256) private lastTrade;
    mapping (address => bool) public blacklisted;

    // Basic Contract Info
    string constant _name = "Safe Snipe";
    string constant _symbol = "SNIPE";
    uint8 constant _decimals = 9;

    bool tradingEnabled;
    uint256 launchedAt;
    uint256 deadBlocks;

    // Supply Info
    uint256 private constant MAX_UINT256 = ~uint256(0);
    uint256 private constant MAX_SUPPLY = ~uint128(0);
    uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 10**8 * 10**_decimals;
    uint256 private constant rSupply = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);
    
    uint256 public _totalSupply;
    uint256 public rate;

    // Project & Burn Wallets
    address public burnWallet = 0x000000000000000000000000000000000000dEaD;
    address public marketingWallet = 0x1E29Bc45C1321383052577B921c53A540F4aa967; // 
    address public teamWallet = 0x1E29Bc45C1321383052577B921c53A540F4aa967;  //  
    address public snipeWallet = 0x1E29Bc45C1321383052577B921c53A540F4aa967;     //   
 
    // Taxes
    BuyFee public _buy;
    SellFee public _sell;
    uint256 public totalFee;

    struct BuyFee{//Buy taxes set in constructor function
        uint8 snipe;
        uint8 team;
        uint8 marketing;
        uint8 liquidity;
        uint8 total;
    }
    struct SellFee{//Sell taxes set in constructor function
        uint8 snipe;
        uint8 team;
        uint8 marketing;
        uint8 liquidity;
        uint8 total;
    }

    // Limits
    uint256 public _maxTxAmount = rSupply.div(100).mul(2);
    uint256 public _maxWalletSize = rSupply.div(100).mul(3);
    bool public sameBlockActive; 

    // DEX
    IDEXRouter public router;
    address public _pancakeRouterAddress=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    address public pair;
    InterfaceLP public pairContract;

    // SwapAndLiquify
    bool public swapEnabled;
    uint256 public swapThreshold = 1; // 0.1%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(_pancakeRouterAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        pairContract = InterfaceLP(pair);
        _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
        rate = rSupply.div(_totalSupply);

        // Exclude owner and this contract from fee and limits
        isFeeExempt[msg.sender]=isFeeExempt[address(this)]=true;
        isTxLimitExempt[msg.sender]=isTxLimitExempt[address(this)]=true;

        // Set initial Buy taxes
        _buy.snipe=2; _buy.team=3; _buy.marketing=2; _buy.liquidity=2;
        _buy.total=_buy.snipe+_buy.team+_buy.marketing+_buy.liquidity;
        
        // Set initial Sell taxes
        _sell.snipe=2; _sell.team=3; _sell.marketing=2; _sell.liquidity=2;
        _sell.total=_sell.snipe+_sell.team+_sell.marketing+_sell.liquidity;
        
        _rBalance[msg.sender] = rSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

// Basic Internal Functions
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _rBalance[account].div(rate);}
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }
    function approveMax(address spender) external returns (bool) {
        return approve(spender,type(uint256).max);
    }
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");}
        return _transferFrom(sender, recipient, amount);
    }

    receive() external payable { }

// Transfer functions
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(isFeeExempt[sender]||tradingEnabled);
        require(!blacklisted[sender] && !blacklisted[recipient]);
        
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if(sender != owner
            && isFeeExempt[sender]
            && isFeeExempt[recipient]
            && recipient != owner
            && recipient != address(0)
            && sender != address(this)) {
        // If SameBlock function is active, only one transaction per user per block is allowed
            if (sameBlockActive) {
                if (sender == pair){
                    require(lastTrade[recipient] != block.number);
                    lastTrade[recipient] = block.number;
                } else {
                    require(lastTrade[sender] != block.number);
                    lastTrade[sender] = block.number;
                    }
                }
            }
        uint256 rAmount = amount.mul(rate);

        if (sender != owner
        && recipient != address(this)
        && recipient != pair){
            require((_rBalance[recipient] + rAmount) <= _maxWalletSize,"Total Holding is limited, you can not buy that much.");}

        require(rAmount <= _maxTxAmount || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "TX Limit Exceeded");

        if(recipient == pair && shouldSwapBack()){ swapBack(); }

        _rBalance[sender] = _rBalance[sender].sub(rAmount, "Insufficient Balance");

        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? rAmount : takeFee(sender, rAmount,recipient);
        _rBalance[recipient] = _rBalance[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived.div(rate));
        return true;
    }
       
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 rAmount = amount.mul(rate);
        _rBalance[sender] = _rBalance[sender].sub(rAmount, "Insufficient Balance");
        _rBalance[recipient] = _rBalance[recipient].add(rAmount);
        emit Transfer(sender, recipient, rAmount.div(rate));
        return true;
    }

// Taxes
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 rAmount, address recipient) internal returns (uint256) {
        bool Buy = sender == pair;
        bool Sell = recipient == pair;
        bool P2P = recipient != pair && sender != pair;
        uint256 feeAmount;

        if(Buy){totalFee = _buy.total;}
        if(Sell){totalFee = _sell.total;}
        if(P2P){totalFee == 0;}

        if(launchedAt + deadBlocks >= block.number){
        feeAmount = rAmount.div(100).mul(99);}
        else{feeAmount = rAmount.div(100).mul(totalFee);}

        if (feeAmount >0){
        _rBalance[address(this)] = _rBalance[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount.div(rate));
        return rAmount.sub(feeAmount);}
        
        else return rAmount;
    }

// Swap and distribution  
    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _rBalance[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 tokensToSell = balanceOf(address(this));
        if(tokensToSell > _maxTxAmount){ tokensToSell = _maxTxAmount;}

        uint256 liquidity = _buy.liquidity+_sell.liquidity;
        uint256 marketing = _buy.marketing+_sell.marketing;
        uint256 team = _buy.team+_sell.team;
        uint256 snipe = _buy.snipe+_sell.snipe;
        uint256 totalFees = _buy.total+_sell.total;

        uint256 amountToLiquify = tokensToSell.div(totalFees).mul(liquidity).div(2);
        uint256 amountToSwap = tokensToSell.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance;

        uint256 totalBNBFee = totalFees.sub(liquidity.div(2));
        
        uint256 BNBLiquidity = amountBNB.mul(liquidity).div(totalBNBFee).div(2);
        uint256 BNBsnipe = amountBNB.mul(snipe).div(totalBNBFee);
        uint256 BNBMarketing = amountBNB.mul(marketing).div(totalBNBFee);
        uint256 BNBTeam = amountBNB.mul(team).div(totalBNBFee);

        if(BNBMarketing > 0) {payable(marketingWallet).transfer(BNBMarketing);}
        if(BNBsnipe > 0) {payable(snipeWallet).transfer(BNBsnipe);}
        if(BNBTeam > 0) {payable(teamWallet).transfer(BNBTeam);}

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: BNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                owner,
                block.timestamp
            );
        }
    }

function triggerswapback() public{
    swapBack();
}
// Rebase functions
    function rebase_percentage(bool reduce,uint256 _percentage_base1000) public onlyOwner returns (uint256 newSupply){
        if(reduce){
            newSupply = rebase(int(_totalSupply.div(1000).mul(_percentage_base1000)).mul(-1));
        } else{
            newSupply = rebase(int(_totalSupply.div(1000).mul(_percentage_base1000)));
        }
    }

    function rebase(int256 supplyDelta) public onlyOwner returns (uint256) {
        require(!inSwap, "Try again");

        if (supplyDelta == 0) {
            return _totalSupply;
        }

        if (supplyDelta < 0) {
            _totalSupply = _totalSupply.sub(uint256(-supplyDelta));
        } else {
            _totalSupply = _totalSupply.add(uint256(supplyDelta));
        }

        if (_totalSupply > MAX_SUPPLY) {
            _totalSupply = MAX_SUPPLY;
        }

        require(_totalSupply >= 1, "Minimum Supply must be 1 or higher");

        rate = rSupply.div(_totalSupply);
        pairContract.sync();

        return _totalSupply;
    }

// Owner Functions
    function ownerEnableTrading(uint256 _deadBlocks) public onlyOwner {
        require(!tradingEnabled,"Trading already enabled");
        require(_deadBlocks <=5,"Cannot set more than 5 deadBlocks");
        tradingEnabled=true;
        launchedAt=block.number;
        swapEnabled=true;
        sameBlockActive = true;
        deadBlocks=_deadBlocks;
        emit OwnerEnableTrading(_deadBlocks,block.timestamp);
    }
    function ownerSwitchTradingStatus(bool enabled) public onlyOwner {
        tradingEnabled=enabled;
        emit OwnerSwitchTradingStatus(enabled,block.timestamp);
    }
    function ownerSetMarketingWallet(address marketing) public onlyOwner {
        require(marketing != marketingWallet,"Cannot set same address than actual Wallet");
        address oldMarketingWallet=marketingWallet;
        marketingWallet=marketing;
        emit OwnerSetMarketingWallet(oldMarketingWallet,marketing);
    }
    function ownerSetTeamWallet(address team) public onlyOwner {
        require(team != teamWallet,"Cannot set same address than actual Wallet");
        address oldTeamWallet=teamWallet;
        teamWallet=team;
        emit OwnerSetTeamWallet(oldTeamWallet,team);
    }
    function ownerSetsnipeWallet(address snipe) public onlyOwner {
        require(snipe != snipeWallet,"Cannot set same address than actual Wallet");
        address oldsnipeWallet=snipeWallet;
        snipeWallet=snipe;
        emit OwnerSetsnipeWallet(oldsnipeWallet,snipe);
    }
    function ownerSetBuyFees(uint8 snipe, uint8 team, uint8 marketing, uint8 liquidity) public onlyOwner {
        _buy.snipe=snipe;
        _buy.team=team;
        _buy.marketing=marketing;
        _buy.liquidity=liquidity;
        _buy.total=snipe+team+marketing+liquidity;
        emit OwnerSetBuyFees(snipe,team,marketing,liquidity);
    }
    function ownerSetSellFees(uint8 snipe, uint8 team, uint8 marketing, uint8 liquidity) public onlyOwner {
        _sell.snipe=snipe;
        _sell.team=team;
        _sell.marketing=marketing;
        _sell.liquidity=liquidity;
        _sell.total=snipe+team+marketing+liquidity;
        emit OwnerSetSellFees(snipe,team,marketing,liquidity);
    }
    function ownerSetLimits(uint256 maxTxBase1000, uint256 maxWalletBase1000) public onlyOwner {
        require(maxTxBase1000 >=5, "Cannot set Max Transaction below 0.5%");
        require(maxWalletBase1000 >=10, "Cannot set Max Wallet below 1%");
        _maxTxAmount = rSupply/1000*maxTxBase1000;
        _maxWalletSize = rSupply/1000*maxWalletBase1000;
        emit OwnerSetLimits(maxTxBase1000,maxWalletBase1000);
    }
    function ownerSetSwapSetting(uint256 swapThresholdBase10000, bool enabled) public onlyOwner {
        swapThreshold = rSupply/10000*swapThresholdBase10000;
        swapEnabled = enabled;
        emit OwnerSetSwapSetting(swapThresholdBase10000,enabled);
    }
    function ownerSwitchSameBlock(bool enabled) public onlyOwner {
        sameBlockActive = enabled;
        emit OwnerSwitchSameBlock(enabled,block.timestamp);
    }
    function ownerSetFeeExempt(address account, bool enabled) public onlyOwner {
        isFeeExempt[account] = enabled;
        emit OwnerSetFeeExempt(account,enabled);
    }
    function ownerSetTxLimitExempt(address account, bool enabled) public onlyOwner {
        isTxLimitExempt[account] = enabled;
        emit OwnerSetTxLimitExempt(account,enabled);
    }
    function ownerSetBlacklistAddress(address account, bool enabled) public onlyOwner {
        blacklisted[account] = enabled;
        emit OwnerBlacklistAddress(account,enabled);
    }
    function ownerSetPresaleAddress(address presaler) public onlyOwner {
        isFeeExempt[presaler] = true;
        isTxLimitExempt[presaler] = true;
        emit OwnerSetPresaleAddress(presaler);
    }
}

File 1 of 2: Libraries.sol
// SPDX-License-Identifier: unlicensed

pragma solidity ^0.8.9;

library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

library SignedSafeMath {
    function mul(int256 a, int256 b) internal pure returns (int256) {
        return a * b;
    }
    function div(int256 a, int256 b) internal pure returns (int256) {
        return a / b;
    }
    function sub(int256 a, int256 b) internal pure returns (int256) {
        return a - b;
    }
    function add(int256 a, int256 b) internal pure returns (int256) {
        return a + b;
    }
}

/**
 * BEP20 standard interface.
 */
interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

/**
 * Basic access control mechanism
 */
abstract contract Ownable {
    address internal owner;
    address private _previousOwner;

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

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!YOU ARE NOT THE OWNER"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

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

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

interface InterfaceLP {
    function sync() external;
}

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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;

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

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":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"OwnerBlacklistAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_deadBlocks","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerEnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"snipe","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"team","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"marketing","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"liquidity","type":"uint8"}],"name":"OwnerSetBuyFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"OwnerSetFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTxBase1000","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxWalletBase1000","type":"uint256"}],"name":"OwnerSetLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldMarketingWallet","type":"address"},{"indexed":false,"internalType":"address","name":"marketing","type":"address"}],"name":"OwnerSetMarketingWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"presaler","type":"address"}],"name":"OwnerSetPresaleAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"snipe","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"team","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"marketing","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"liquidity","type":"uint8"}],"name":"OwnerSetSellFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapThresholdBase10000","type":"uint256"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"OwnerSetSwapSetting","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTeamWallet","type":"address"},{"indexed":false,"internalType":"address","name":"team","type":"address"}],"name":"OwnerSetTeamWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"OwnerSetTxLimitExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldsnipeWallet","type":"address"},{"indexed":false,"internalType":"address","name":"snipe","type":"address"}],"name":"OwnerSetsnipeWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerSwitchSameBlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerSwitchTradingStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buy","outputs":[{"internalType":"uint8","name":"snipe","type":"uint8"},{"internalType":"uint8","name":"team","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"liquidity","type":"uint8"},{"internalType":"uint8","name":"total","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_pancakeRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sell","outputs":[{"internalType":"uint8","name":"snipe","type":"uint8"},{"internalType":"uint8","name":"team","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"liquidity","type":"uint8"},{"internalType":"uint8","name":"total","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"ownerEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"ownerSetBlacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"snipe","type":"uint8"},{"internalType":"uint8","name":"team","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"liquidity","type":"uint8"}],"name":"ownerSetBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"ownerSetFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxBase1000","type":"uint256"},{"internalType":"uint256","name":"maxWalletBase1000","type":"uint256"}],"name":"ownerSetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"}],"name":"ownerSetMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presaler","type":"address"}],"name":"ownerSetPresaleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"snipe","type":"uint8"},{"internalType":"uint8","name":"team","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"liquidity","type":"uint8"}],"name":"ownerSetSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapThresholdBase10000","type":"uint256"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"ownerSetSwapSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"team","type":"address"}],"name":"ownerSetTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"ownerSetTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"snipe","type":"address"}],"name":"ownerSetsnipeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"ownerSwitchSameBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"ownerSwitchTradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int256","name":"supplyDelta","type":"int256"}],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"reduce","type":"bool"},{"internalType":"uint256","name":"_percentage_base1000","type":"uint256"}],"name":"rebase_percentage","outputs":[{"internalType":"uint256","name":"newSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sameBlockActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snipeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"triggerswapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600d80546001600160a01b031990811661dead17909155600e80548216731e29bc45c1321383052577b921c53a540f4aa967908117909155600f805483168217905560108054909216179055620000be6002620000aa60646200006a6009600a62000673565b6200007a906305f5e10062000684565b6200008890600019620006bc565b6200009690600019620006d3565b6200053b60201b62001a881790919060201c565b6200055260201b62001a941790919060201c565b601455620000db6003620000aa60646200006a6009600a62000673565b601555601780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556001601a553480156200011657600080fd5b5060008054336001600160a01b031990911617905560175460168054610100600160a81b0319166101006001600160a01b03938416810291909117918290556040805163c45a015560e01b81529051919092049092169163c45a015591600480820192602092909190829003018186803b1580156200019457600080fd5b505afa158015620001a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cf9190620006ed565b6001600160a01b031663c9c65396601660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022c57600080fd5b505afa15801562000241573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002679190620006ed565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620002af57600080fd5b505af1158015620002c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ea9190620006ed565b601880546001600160a01b03199081166001600160a01b03938416178255306000908152600360209081526040808320601654610100900487168452909152902060001990559054601980549190931691161790556200034d6009600a62000673565b6200035d906305f5e10062000684565b600b81905562000375906200006a6009600a62000673565b600c553060008181526004602090815260408083208054600160ff19918216811790925533808652838620805483168417905595855260059093528184208054841682179055938352909120805490911690911790556011805463ffffffff19166302020302179081905560ff63010000008204811691620100008104821691620004089161010090041660026200071f565b6200041491906200071f565b6200042091906200071f565b6011805460ff60201b191664010000000060ff938416021790556012805463ffffffff1916630202030217908190556301000000810482169162010000820481169162000476916101009091041660026200071f565b6200048291906200071f565b6200048e91906200071f565b6012805460ff929092166401000000000260ff60201b19909216919091179055620004bc6009600a62000673565b620004cc906305f5e10062000684565b620004da90600019620006bc565b620004e890600019620006d3565b33600081815260026020908152604080832094909455600b549351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200075e565b600062000549828462000747565b90505b92915050565b600062000549828462000684565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005b75781600019048211156200059b576200059b62000560565b80851615620005a957918102915b93841c93908002906200057b565b509250929050565b600082620005d0575060016200054c565b81620005df575060006200054c565b8160018114620005f85760028114620006035762000623565b60019150506200054c565b60ff84111562000617576200061762000560565b50506001821b6200054c565b5060208310610133831016604e8410600b841016171562000648575081810a6200054c565b62000654838362000576565b80600019048211156200066b576200066b62000560565b029392505050565b60006200054960ff841683620005bf565b6000816000190483118215151615620006a157620006a162000560565b500290565b634e487b7160e01b600052601260045260246000fd5b600082620006ce57620006ce620006a6565b500690565b600082821015620006e857620006e862000560565b500390565b6000602082840312156200070057600080fd5b81516001600160a01b03811681146200071857600080fd5b9392505050565b600060ff821660ff84168060ff038211156200073f576200073f62000560565b019392505050565b600082620007595762000759620006a6565b500490565b612d57806200076e6000396000f3fe6080604052600436106103035760003560e01c80636e66836a1161019057806398a1e1ba116100dc578063d2cab5ec11610095578063dbac26e91161006f578063dbac26e9146109b3578063dd62ed3e146109e3578063f2fde38b14610a29578063f887ea4014610a4957600080fd5b8063d2cab5ec1461095e578063d646624214610973578063d93218141461099357600080fd5b806398a1e1ba1461089e578063a408a5b5146108be578063a8aa1b31146108de578063a9059cbb146108fe578063b5f0f1411461091e578063c10d51e11461093e57600080fd5b8063893d20e8116101495780638c336a25116101235780638c336a25146107f95780638f9a55c0146108195780639299f2941461082f57806395d89b411461087057600080fd5b8063893d20e81461078b5780638b15be75146107a95780638b42507f146107c957600080fd5b80636e66836a146106e657806370a0823114610706578063715018a61461072657806375f0a8741461073b57806379c4bdc11461075b5780637d1db4a51461077557600080fd5b8063313ce5671161024f5780634d709adf1161020857806359927044116101e257806359927044146106105780635eba7fcc1461063057806364c86931146106a55780636ddd1713146106c557600080fd5b80634d709adf146105b05780634f012d8b146105d0578063571ac8b0146105f057600080fd5b8063313ce567146104ee5780633eaaf86b1461050a5780633f4218e0146105205780633f8877ea14610550578063443b734a14610570578063488674a61461059057600080fd5b8063117917e4116102bc57806323b872dd1161029657806323b872dd14610469578063276f5e21146104895780632c4e722e146104a95780632f54bf6e146104bf57600080fd5b8063117917e41461041e57806318160ddd1461043e5780631df4ccfc1461045357600080fd5b80630445b6671461030f578063062287491461033857806306fdde0314610370578063095ea7b3146103ac5780630ab114f9146103dc5780630c4a2885146103fc57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b50610325601a5481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b50600d54610358906001600160a01b031681565b6040516001600160a01b03909116815260200161032f565b34801561037c57600080fd5b5060408051808201909152600a8152695361666520536e69706560b01b60208201525b60405161032f919061270a565b3480156103b857600080fd5b506103cc6103c7366004612777565b610a6e565b604051901515815260200161032f565b3480156103e857600080fd5b506103256103f73660046127a3565b610adb565b34801561040857600080fd5b5061041c6104173660046127cc565b610cbb565b005b34801561042a57600080fd5b506103256104393660046127e7565b610d32565b34801561044a57600080fd5b50600b54610325565b34801561045f57600080fd5b5061032560135481565b34801561047557600080fd5b506103cc610484366004612803565b610dbf565b34801561049557600080fd5b5061041c6104a4366004612844565b610e7f565b3480156104b557600080fd5b50610325600c5481565b3480156104cb57600080fd5b506103cc6104da366004612879565b6000546001600160a01b0391821691161490565b3480156104fa57600080fd5b506040516009815260200161032f565b34801561051657600080fd5b50610325600b5481565b34801561052c57600080fd5b506103cc61053b366004612879565b60046020526000908152604090205460ff1681565b34801561055c57600080fd5b5061041c61056b366004612879565b610f0d565b34801561057c57600080fd5b5061041c61058b3660046128a7565b610fbf565b34801561059c57600080fd5b5061041c6105ab366004612879565b6110bc565b3480156105bc57600080fd5b50601954610358906001600160a01b031681565b3480156105dc57600080fd5b5061041c6105eb3660046128fb565b61114e565b3480156105fc57600080fd5b506103cc61060b366004612879565b611219565b34801561061c57600080fd5b50600f54610358906001600160a01b031681565b34801561063c57600080fd5b506012546106719060ff80821691610100810482169162010000820481169163010000008104821691600160201b9091041685565b6040805160ff968716815294861660208601529285169284019290925283166060830152909116608082015260a00161032f565b3480156106b157600080fd5b5061041c6106c03660046127cc565b611227565b3480156106d157600080fd5b506019546103cc90600160a01b900460ff1681565b3480156106f257600080fd5b5061041c6107013660046128a7565b611297565b34801561071257600080fd5b50610325610721366004612879565b61138a565b34801561073257600080fd5b5061041c6113b2565b34801561074757600080fd5b50600e54610358906001600160a01b031681565b34801561076757600080fd5b506016546103cc9060ff1681565b34801561078157600080fd5b5061032560145481565b34801561079757600080fd5b506000546001600160a01b0316610358565b3480156107b557600080fd5b5061041c6107c4366004612844565b611426565b3480156107d557600080fd5b506103cc6107e4366004612879565b60056020526000908152604090205460ff1681565b34801561080557600080fd5b50601754610358906001600160a01b031681565b34801561082557600080fd5b5061032560155481565b34801561083b57600080fd5b506011546106719060ff80821691610100810482169162010000820481169163010000008104821691600160201b9091041685565b34801561087c57600080fd5b50604080518082019091526005815264534e49504560d81b602082015261039f565b3480156108aa57600080fd5b5061041c6108b936600461291e565b6114ac565b3480156108ca57600080fd5b5061041c6108d9366004612844565b611656565b3480156108ea57600080fd5b50601854610358906001600160a01b031681565b34801561090a57600080fd5b506103cc610919366004612777565b6116dc565b34801561092a57600080fd5b5061041c610939366004612879565b6116e9565b34801561094a57600080fd5b5061041c6109593660046127a3565b61179b565b34801561096a57600080fd5b5061041c6118e2565b34801561097f57600080fd5b50601054610358906001600160a01b031681565b34801561099f57600080fd5b5061041c6109ae366004612879565b6118ec565b3480156109bf57600080fd5b506103cc6109ce366004612879565b60076020526000908152604090205460ff1681565b3480156109ef57600080fd5b506103256109fe366004612940565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610a3557600080fd5b5061041c610a44366004612879565b61199e565b348015610a5557600080fd5b506016546103589061010090046001600160a01b031681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ac99086815260200190565b60405180910390a35060015b92915050565b600080546001600160a01b03163314610b0f5760405162461bcd60e51b8152600401610b0690612979565b60405180910390fd5b601b5460ff1615610b4e5760405162461bcd60e51b81526020600482015260096024820152682a393c9030b3b0b4b760b91b6044820152606401610b06565b81610b5b575050600b5490565b6000821215610b8157610b79610b70836129bf565b600b5490611aa0565b600b55610b92565b600b54610b8e9083611aac565b600b555b600b546001600160801b031015610baf576001600160801b03600b555b6001600b541015610c0d5760405162461bcd60e51b815260206004820152602260248201527f4d696e696d756d20537570706c79206d7573742062652031206f72206869676860448201526132b960f11b6064820152608401610b06565b600b54610c4c90610c206009600a612ac0565b610c2e906305f5e100612acf565b610c3a90600019612b04565b610c4690600019612b18565b90611a88565b600c556019546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b158015610c9857600080fd5b505af1158015610cac573d6000803e3d6000fd5b50505050600b5490505b919050565b6000546001600160a01b03163314610ce55760405162461bcd60e51b8152600401610b0690612979565b6016805460ff1916821515908117909155604080519182524260208301527f81aa86bcdd6ac24724850726e75010b342c9c5632d97a431aaa00586929e3fbb91015b60405180910390a150565b600080546001600160a01b03163314610d5d5760405162461bcd60e51b8152600401610b0690612979565b8215610d9a57610d936103f7600019610d8d85610d876103e8600b54611a8890919063ffffffff16565b90611a94565b90611ab8565b9050610ad5565b610db86103f783610d876103e8600b54611a8890919063ffffffff16565b9392505050565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610e6c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600382528381203382529091529190912054610e47918490611ac4565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610e77848484611af0565b949350505050565b6000546001600160a01b03163314610ea95760405162461bcd60e51b8152600401610b0690612979565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527ffd2a3ffa46d98a9ed3b4327610ca425186d589b167a94f8181a676c4aae8d70c91015b60405180910390a15050565b6000546001600160a01b03163314610f375760405162461bcd60e51b8152600401610b0690612979565b6010546001600160a01b0382811691161415610f655760405162461bcd60e51b8152600401610b0690612b2f565b601080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fb40a939616bf6e213240130002efebebdb1b3a9abbb773fa7ff35a5c60bd16899101610f01565b6000546001600160a01b03163314610fe95760405162461bcd60e51b8152600401610b0690612979565b6011805460ff86811661ffff1990921691909117610100868316021763ffff00001916620100008583160263ff00000019161763010000009184169190910217905580826110378587612b79565b6110419190612b79565b61104b9190612b79565b6011805464ff000000001916600160201b60ff9384160217905560408051868316815285831660208201528483169181019190915290821660608201527f1692d07e2cf19fc8b97f796889634d3dbc2a69cc217248a8ae770745a59759bc906080015b60405180910390a150505050565b6000546001600160a01b031633146110e65760405162461bcd60e51b8152600401610b0690612979565b6001600160a01b03811660008181526004602090815260408083208054600160ff199182168117909255600584529382902080549094161790925590519182527f8d218396e86cce828b8196d30f1e944dd5cc52ed2f6f3b4fcae22f88f82ea9839101610d27565b6000546001600160a01b031633146111785760405162461bcd60e51b8152600401610b0690612979565b816127106111886009600a612ac0565b611196906305f5e100612acf565b6111a290600019612b04565b6111ae90600019612b18565b6111b89190612b9e565b6111c29190612acf565b601a556019805460ff60a01b1916600160a01b831515908102919091179091556040805184815260208101929092527f5d0828ff2d79289c42dce108364122d11166d5e1f1c2da7658d248c72b74589c9101610f01565b6000610ad582600019610a6e565b6000546001600160a01b031633146112515760405162461bcd60e51b8152600401610b0690612979565b6008805460ff1916821515908117909155604080519182524260208301527f291f39b9705a102e4b0dd43dc793a4026a67604ee7ce51289f4fe47df5aec9779101610d27565b6000546001600160a01b031633146112c15760405162461bcd60e51b8152600401610b0690612979565b6012805460ff86811661ffff1990921691909117610100868316021763ffff00001916620100008583160263ff000000191617630100000091841691909102179055808261130f8587612b79565b6113199190612b79565b6113239190612b79565b6012805464ff000000001916600160201b60ff9384160217905560408051868316815285831660208201528483169181019190915290821660608201527f0fa9bba7bb1f520c880ab5ddf85a691c75fc0cda0c4260f63cf18f8068f0be32906080016110ae565b600c546001600160a01b0382166000908152600260205260408120549091610ad59190611a88565b6000546001600160a01b031633146113dc5760405162461bcd60e51b8152600401610b0690612979565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146114505760405162461bcd60e51b8152600401610b0690612979565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa77310cc069b79ba892dae6b516f36938059d468287d6e9d62c4924c384e2ce49101610f01565b6000546001600160a01b031633146114d65760405162461bcd60e51b8152600401610b0690612979565b60058210156115355760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574204d6178205472616e73616374696f6e2062656c6f7760448201526420302e352560d81b6064820152608401610b06565b600a8110156115865760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f7420736574204d61782057616c6c65742062656c6f7720312500006044820152606401610b06565b816103e86115966009600a612ac0565b6115a4906305f5e100612acf565b6115b090600019612b04565b6115bc90600019612b18565b6115c69190612b9e565b6115d09190612acf565b601455806103e86115e36009600a612ac0565b6115f1906305f5e100612acf565b6115fd90600019612b04565b61160990600019612b18565b6116139190612b9e565b61161d9190612acf565b60155560408051838152602081018390527fa6454bdf33c7fac8e2983ae3b9279e3001f73b9f24fc533688ae513fd01ea52f9101610f01565b6000546001600160a01b031633146116805760405162461bcd60e51b8152600401610b0690612979565b6001600160a01b038216600081815260076020908152604091829020805460ff19168515159081179091558251938452908301527f0c5eaa4802ec95814e31f01595f190b439974412d428f3b93b7039be40ba93ae9101610f01565b6000610db8338484611af0565b6000546001600160a01b031633146117135760405162461bcd60e51b8152600401610b0690612979565b600f546001600160a01b03828116911614156117415760405162461bcd60e51b8152600401610b0690612b2f565b600f80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f05ccfd30f4f39ec3b9d56924bcbb513b981b41111408b721c161cd108b0cb9f39101610f01565b6000546001600160a01b031633146117c55760405162461bcd60e51b8152600401610b0690612979565b60085460ff16156118185760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610b06565b60058111156118735760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420736574206d6f7265207468616e20352064656164426c6f636b6044820152607360f81b6064820152608401610b06565b6008805460ff199081166001908117909255436009556019805460ff60a01b1916600160a01b179055601680549091169091179055600a819055604080518281524260208201527feb835a4f33d9f338e92a5bedd34bc0bc256a86aa10d512e20967fde7499547509101610d27565b6118ea611fcb565b565b6000546001600160a01b031633146119165760405162461bcd60e51b8152600401610b0690612979565b600e546001600160a01b03828116911614156119445760405162461bcd60e51b8152600401610b0690612b2f565b600e80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f9992b4e5f68decab5403ebc4b7c1fd9b8ac760d6761d4efe21d81922df72790e9101610f01565b6000546001600160a01b031633146119c85760405162461bcd60e51b8152600401610b0690612979565b6001600160a01b038116611a2d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b06565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610db88284612b9e565b6000610db88284612acf565b6000610db88284612b18565b6000610db88284612bb2565b6000610db88284612bca565b60008184841115611ae85760405162461bcd60e51b8152600401610b06919061270a565b505050900390565b6001600160a01b03831660009081526004602052604081205460ff1680611b19575060085460ff165b611b2257600080fd5b6001600160a01b03841660009081526007602052604090205460ff16158015611b6457506001600160a01b03831660009081526007602052604090205460ff16155b611b6d57600080fd5b601b5460ff1615611b8a57611b8384848461244c565b9050610db8565b6000546001600160a01b03858116911614801590611bc057506001600160a01b03841660009081526004602052604090205460ff165b8015611be457506001600160a01b03831660009081526004602052604090205460ff165b8015611bfe57506000546001600160a01b03848116911614155b8015611c1257506001600160a01b03831615155b8015611c2757506001600160a01b0384163014155b15611cd35760165460ff1615611cd3576018546001600160a01b0385811691161415611c92576001600160a01b038316600090815260066020526040902054431415611c7257600080fd5b6001600160a01b0383166000908152600660205260409020439055611cd3565b6001600160a01b038416600090815260066020526040902054431415611cb757600080fd5b6001600160a01b03841660009081526006602052604090204390555b6000611cea600c5484611a9490919063ffffffff16565b6000549091506001600160a01b03868116911614801590611d1457506001600160a01b0384163014155b8015611d2e57506018546001600160a01b03858116911614155b15611dc5576015546001600160a01b038516600090815260026020526040902054611d5a908390612bb2565b1115611dc55760405162461bcd60e51b815260206004820152603460248201527f546f74616c20486f6c64696e67206973206c696d697465642c20796f7520636160448201527337103737ba10313abc903a3430ba1036bab1b41760611b6064820152608401610b06565b60145481111580611dee57506001600160a01b03851660009081526005602052604090205460ff165b80611e1157506001600160a01b03841660009081526005602052604090205460ff165b611e515760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b06565b6018546001600160a01b038581169116148015611e715750611e71612568565b15611e7e57611e7e611fcb565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260029091529190912054611ed0918390611ac4565b6001600160a01b038616600090815260026020908152604080832093909355600490529081205460ff16151580611f2157506001600160a01b03851660009081526004602052604090205460ff1615155b611f3557611f308683876125c0565b611f37565b815b6001600160a01b038616600090815260026020526040902054909150611f5d9082611aac565b6001600160a01b03808716600081815260026020526040902092909255600c54908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611fae908590611a88565b60405190815260200160405180910390a350600195945050505050565b601b805460ff191660011790556000611fe33061138a565b9050601454811115611ff457506014545b6012546011546000916120189160ff63010000009283900481169290910416612b79565b60125460115460ff928316935060009261203e9262010000908190048216920416612b79565b60125460115460ff928316935060009261206392610100908190048216920416612b79565b60125460115460ff92831693506000926120809281169116612b79565b60125460115460ff92831693506000926120a792600160201b908190048216920416612b79565b60ff16905060006120c16002610c4688610d878b87611a88565b905060006120cf8883611aa0565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061210957612109612c4f565b60200260200101906001600160a01b031690816001600160a01b031681525050601660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561217757600080fd5b505afa15801561218b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121af9190612c65565b816001815181106121c2576121c2612c4f565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b81526101009091049091169063791ac9479061220f908590600090869030904290600401612c82565b600060405180830381600087803b15801561222957600080fd5b505af115801561223d573d6000803e3d6000fd5b504792506000915061225c90506122558b6002611a88565b8790611aa0565b9050600061227c6002610c4684610c468f88611a9490919063ffffffff16565b9050600061228e83610c46868c611a94565b905060006122a084610c46878f611a94565b905060006122b285610c46888f611a94565b905081156122f657600e546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156122f4573d6000803e3d6000fd5b505b8215612338576010546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015612336573d6000803e3d6000fd5b505b801561237a57600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612378573d6000803e3d6000fd5b505b8815612431576016546000805460405163f305d71960e01b8152306004820152602481018d90526044810183905260648101929092526001600160a01b0390811660848301524260a48301526101009092049091169063f305d71990869060c4016060604051808303818588803b1580156123f457600080fd5b505af1158015612408573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061242d9190612cf3565b5050505b5050601b805460ff1916905550505050505050505050505050565b600080612464600c5484611a9490919063ffffffff16565b90506124cc8160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060026000896001600160a01b03166001600160a01b0316815260200190815260200160002054611ac49092919063ffffffff16565b6001600160a01b0380871660009081526002602052604080822093909355908616815220546124fb9082611aac565b6001600160a01b03808616600081815260026020526040902092909255600c54908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061254c908590611a88565b60405190815260200160405180910390a3506001949350505050565b6018546000906001600160a01b031633148015906125895750601b5460ff16155b801561259e5750601954600160a01b900460ff165b80156125bb5750601a543060009081526002602052604090205410155b905090565b6018546000906001600160a01b03908116858216811491841614828115826125f657506018546001600160a01b03888116911614155b90506000831561261157601154600160201b900460ff166013555b821561262857601254600160201b900460ff166013555b43600a546009546126399190612bb2565b106126555761264e6063610d87896064611a88565b905061266a565b60135461266790610d87896064611a88565b90505b80156126fe573060009081526002602052604090205461268a9082611aac565b30600081815260026020526040902091909155600c546001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906126d8908590611a88565b60405190815260200160405180910390a36126f38782611aa0565b945050505050610db8565b86945050505050610db8565b600060208083528351808285015260005b818110156127375785810183015185820160400152820161271b565b81811115612749576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461277457600080fd5b50565b6000806040838503121561278a57600080fd5b82356127958161275f565b946020939093013593505050565b6000602082840312156127b557600080fd5b5035919050565b80358015158114610cb657600080fd5b6000602082840312156127de57600080fd5b610db8826127bc565b600080604083850312156127fa57600080fd5b612795836127bc565b60008060006060848603121561281857600080fd5b83356128238161275f565b925060208401356128338161275f565b929592945050506040919091013590565b6000806040838503121561285757600080fd5b82356128628161275f565b9150612870602084016127bc565b90509250929050565b60006020828403121561288b57600080fd5b8135610db88161275f565b803560ff81168114610cb657600080fd5b600080600080608085870312156128bd57600080fd5b6128c685612896565b93506128d460208601612896565b92506128e260408601612896565b91506128f060608601612896565b905092959194509250565b6000806040838503121561290e57600080fd5b82359150612870602084016127bc565b6000806040838503121561293157600080fd5b50508035926020909101359150565b6000806040838503121561295357600080fd5b823561295e8161275f565b9150602083013561296e8161275f565b809150509250929050565b60208082526016908201527510aca7aa9020a922902727aa102a24229027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8214156129d5576129d56129a9565b5060000390565b600181815b80851115612a175781600019048211156129fd576129fd6129a9565b80851615612a0a57918102915b93841c93908002906129e1565b509250929050565b600082612a2e57506001610ad5565b81612a3b57506000610ad5565b8160018114612a515760028114612a5b57612a77565b6001915050610ad5565b60ff841115612a6c57612a6c6129a9565b50506001821b610ad5565b5060208310610133831016604e8410600b8410161715612a9a575081810a610ad5565b612aa483836129dc565b8060001904821115612ab857612ab86129a9565b029392505050565b6000610db860ff841683612a1f565b6000816000190483118215151615612ae957612ae96129a9565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612b1357612b13612aee565b500690565b600082821015612b2a57612b2a6129a9565b500390565b6020808252602a908201527f43616e6e6f74207365742073616d652061646472657373207468616e206163746040820152691d585b0815d85b1b195d60b21b606082015260800190565b600060ff821660ff84168060ff03821115612b9657612b966129a9565b019392505050565b600082612bad57612bad612aee565b500490565b60008219821115612bc557612bc56129a9565b500190565b60006001600160ff1b0381841382841380821686840486111615612bf057612bf06129a9565b600160ff1b6000871282811687830589121615612c0f57612c0f6129a9565b60008712925087820587128484161615612c2b57612c2b6129a9565b87850587128184161615612c4157612c416129a9565b505050929093029392505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612c7757600080fd5b8151610db88161275f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612cd25784516001600160a01b031683529383019391830191600101612cad565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612d0857600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122056240bc7235066b0dfaa67ef5ad78a68a8eb120a21502bf99a36804c7d7e604e64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106103035760003560e01c80636e66836a1161019057806398a1e1ba116100dc578063d2cab5ec11610095578063dbac26e91161006f578063dbac26e9146109b3578063dd62ed3e146109e3578063f2fde38b14610a29578063f887ea4014610a4957600080fd5b8063d2cab5ec1461095e578063d646624214610973578063d93218141461099357600080fd5b806398a1e1ba1461089e578063a408a5b5146108be578063a8aa1b31146108de578063a9059cbb146108fe578063b5f0f1411461091e578063c10d51e11461093e57600080fd5b8063893d20e8116101495780638c336a25116101235780638c336a25146107f95780638f9a55c0146108195780639299f2941461082f57806395d89b411461087057600080fd5b8063893d20e81461078b5780638b15be75146107a95780638b42507f146107c957600080fd5b80636e66836a146106e657806370a0823114610706578063715018a61461072657806375f0a8741461073b57806379c4bdc11461075b5780637d1db4a51461077557600080fd5b8063313ce5671161024f5780634d709adf1161020857806359927044116101e257806359927044146106105780635eba7fcc1461063057806364c86931146106a55780636ddd1713146106c557600080fd5b80634d709adf146105b05780634f012d8b146105d0578063571ac8b0146105f057600080fd5b8063313ce567146104ee5780633eaaf86b1461050a5780633f4218e0146105205780633f8877ea14610550578063443b734a14610570578063488674a61461059057600080fd5b8063117917e4116102bc57806323b872dd1161029657806323b872dd14610469578063276f5e21146104895780632c4e722e146104a95780632f54bf6e146104bf57600080fd5b8063117917e41461041e57806318160ddd1461043e5780631df4ccfc1461045357600080fd5b80630445b6671461030f578063062287491461033857806306fdde0314610370578063095ea7b3146103ac5780630ab114f9146103dc5780630c4a2885146103fc57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b50610325601a5481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b50600d54610358906001600160a01b031681565b6040516001600160a01b03909116815260200161032f565b34801561037c57600080fd5b5060408051808201909152600a8152695361666520536e69706560b01b60208201525b60405161032f919061270a565b3480156103b857600080fd5b506103cc6103c7366004612777565b610a6e565b604051901515815260200161032f565b3480156103e857600080fd5b506103256103f73660046127a3565b610adb565b34801561040857600080fd5b5061041c6104173660046127cc565b610cbb565b005b34801561042a57600080fd5b506103256104393660046127e7565b610d32565b34801561044a57600080fd5b50600b54610325565b34801561045f57600080fd5b5061032560135481565b34801561047557600080fd5b506103cc610484366004612803565b610dbf565b34801561049557600080fd5b5061041c6104a4366004612844565b610e7f565b3480156104b557600080fd5b50610325600c5481565b3480156104cb57600080fd5b506103cc6104da366004612879565b6000546001600160a01b0391821691161490565b3480156104fa57600080fd5b506040516009815260200161032f565b34801561051657600080fd5b50610325600b5481565b34801561052c57600080fd5b506103cc61053b366004612879565b60046020526000908152604090205460ff1681565b34801561055c57600080fd5b5061041c61056b366004612879565b610f0d565b34801561057c57600080fd5b5061041c61058b3660046128a7565b610fbf565b34801561059c57600080fd5b5061041c6105ab366004612879565b6110bc565b3480156105bc57600080fd5b50601954610358906001600160a01b031681565b3480156105dc57600080fd5b5061041c6105eb3660046128fb565b61114e565b3480156105fc57600080fd5b506103cc61060b366004612879565b611219565b34801561061c57600080fd5b50600f54610358906001600160a01b031681565b34801561063c57600080fd5b506012546106719060ff80821691610100810482169162010000820481169163010000008104821691600160201b9091041685565b6040805160ff968716815294861660208601529285169284019290925283166060830152909116608082015260a00161032f565b3480156106b157600080fd5b5061041c6106c03660046127cc565b611227565b3480156106d157600080fd5b506019546103cc90600160a01b900460ff1681565b3480156106f257600080fd5b5061041c6107013660046128a7565b611297565b34801561071257600080fd5b50610325610721366004612879565b61138a565b34801561073257600080fd5b5061041c6113b2565b34801561074757600080fd5b50600e54610358906001600160a01b031681565b34801561076757600080fd5b506016546103cc9060ff1681565b34801561078157600080fd5b5061032560145481565b34801561079757600080fd5b506000546001600160a01b0316610358565b3480156107b557600080fd5b5061041c6107c4366004612844565b611426565b3480156107d557600080fd5b506103cc6107e4366004612879565b60056020526000908152604090205460ff1681565b34801561080557600080fd5b50601754610358906001600160a01b031681565b34801561082557600080fd5b5061032560155481565b34801561083b57600080fd5b506011546106719060ff80821691610100810482169162010000820481169163010000008104821691600160201b9091041685565b34801561087c57600080fd5b50604080518082019091526005815264534e49504560d81b602082015261039f565b3480156108aa57600080fd5b5061041c6108b936600461291e565b6114ac565b3480156108ca57600080fd5b5061041c6108d9366004612844565b611656565b3480156108ea57600080fd5b50601854610358906001600160a01b031681565b34801561090a57600080fd5b506103cc610919366004612777565b6116dc565b34801561092a57600080fd5b5061041c610939366004612879565b6116e9565b34801561094a57600080fd5b5061041c6109593660046127a3565b61179b565b34801561096a57600080fd5b5061041c6118e2565b34801561097f57600080fd5b50601054610358906001600160a01b031681565b34801561099f57600080fd5b5061041c6109ae366004612879565b6118ec565b3480156109bf57600080fd5b506103cc6109ce366004612879565b60076020526000908152604090205460ff1681565b3480156109ef57600080fd5b506103256109fe366004612940565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610a3557600080fd5b5061041c610a44366004612879565b61199e565b348015610a5557600080fd5b506016546103589061010090046001600160a01b031681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ac99086815260200190565b60405180910390a35060015b92915050565b600080546001600160a01b03163314610b0f5760405162461bcd60e51b8152600401610b0690612979565b60405180910390fd5b601b5460ff1615610b4e5760405162461bcd60e51b81526020600482015260096024820152682a393c9030b3b0b4b760b91b6044820152606401610b06565b81610b5b575050600b5490565b6000821215610b8157610b79610b70836129bf565b600b5490611aa0565b600b55610b92565b600b54610b8e9083611aac565b600b555b600b546001600160801b031015610baf576001600160801b03600b555b6001600b541015610c0d5760405162461bcd60e51b815260206004820152602260248201527f4d696e696d756d20537570706c79206d7573742062652031206f72206869676860448201526132b960f11b6064820152608401610b06565b600b54610c4c90610c206009600a612ac0565b610c2e906305f5e100612acf565b610c3a90600019612b04565b610c4690600019612b18565b90611a88565b600c556019546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b158015610c9857600080fd5b505af1158015610cac573d6000803e3d6000fd5b50505050600b5490505b919050565b6000546001600160a01b03163314610ce55760405162461bcd60e51b8152600401610b0690612979565b6016805460ff1916821515908117909155604080519182524260208301527f81aa86bcdd6ac24724850726e75010b342c9c5632d97a431aaa00586929e3fbb91015b60405180910390a150565b600080546001600160a01b03163314610d5d5760405162461bcd60e51b8152600401610b0690612979565b8215610d9a57610d936103f7600019610d8d85610d876103e8600b54611a8890919063ffffffff16565b90611a94565b90611ab8565b9050610ad5565b610db86103f783610d876103e8600b54611a8890919063ffffffff16565b9392505050565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610e6c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600382528381203382529091529190912054610e47918490611ac4565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610e77848484611af0565b949350505050565b6000546001600160a01b03163314610ea95760405162461bcd60e51b8152600401610b0690612979565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527ffd2a3ffa46d98a9ed3b4327610ca425186d589b167a94f8181a676c4aae8d70c91015b60405180910390a15050565b6000546001600160a01b03163314610f375760405162461bcd60e51b8152600401610b0690612979565b6010546001600160a01b0382811691161415610f655760405162461bcd60e51b8152600401610b0690612b2f565b601080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fb40a939616bf6e213240130002efebebdb1b3a9abbb773fa7ff35a5c60bd16899101610f01565b6000546001600160a01b03163314610fe95760405162461bcd60e51b8152600401610b0690612979565b6011805460ff86811661ffff1990921691909117610100868316021763ffff00001916620100008583160263ff00000019161763010000009184169190910217905580826110378587612b79565b6110419190612b79565b61104b9190612b79565b6011805464ff000000001916600160201b60ff9384160217905560408051868316815285831660208201528483169181019190915290821660608201527f1692d07e2cf19fc8b97f796889634d3dbc2a69cc217248a8ae770745a59759bc906080015b60405180910390a150505050565b6000546001600160a01b031633146110e65760405162461bcd60e51b8152600401610b0690612979565b6001600160a01b03811660008181526004602090815260408083208054600160ff199182168117909255600584529382902080549094161790925590519182527f8d218396e86cce828b8196d30f1e944dd5cc52ed2f6f3b4fcae22f88f82ea9839101610d27565b6000546001600160a01b031633146111785760405162461bcd60e51b8152600401610b0690612979565b816127106111886009600a612ac0565b611196906305f5e100612acf565b6111a290600019612b04565b6111ae90600019612b18565b6111b89190612b9e565b6111c29190612acf565b601a556019805460ff60a01b1916600160a01b831515908102919091179091556040805184815260208101929092527f5d0828ff2d79289c42dce108364122d11166d5e1f1c2da7658d248c72b74589c9101610f01565b6000610ad582600019610a6e565b6000546001600160a01b031633146112515760405162461bcd60e51b8152600401610b0690612979565b6008805460ff1916821515908117909155604080519182524260208301527f291f39b9705a102e4b0dd43dc793a4026a67604ee7ce51289f4fe47df5aec9779101610d27565b6000546001600160a01b031633146112c15760405162461bcd60e51b8152600401610b0690612979565b6012805460ff86811661ffff1990921691909117610100868316021763ffff00001916620100008583160263ff000000191617630100000091841691909102179055808261130f8587612b79565b6113199190612b79565b6113239190612b79565b6012805464ff000000001916600160201b60ff9384160217905560408051868316815285831660208201528483169181019190915290821660608201527f0fa9bba7bb1f520c880ab5ddf85a691c75fc0cda0c4260f63cf18f8068f0be32906080016110ae565b600c546001600160a01b0382166000908152600260205260408120549091610ad59190611a88565b6000546001600160a01b031633146113dc5760405162461bcd60e51b8152600401610b0690612979565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146114505760405162461bcd60e51b8152600401610b0690612979565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa77310cc069b79ba892dae6b516f36938059d468287d6e9d62c4924c384e2ce49101610f01565b6000546001600160a01b031633146114d65760405162461bcd60e51b8152600401610b0690612979565b60058210156115355760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574204d6178205472616e73616374696f6e2062656c6f7760448201526420302e352560d81b6064820152608401610b06565b600a8110156115865760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f7420736574204d61782057616c6c65742062656c6f7720312500006044820152606401610b06565b816103e86115966009600a612ac0565b6115a4906305f5e100612acf565b6115b090600019612b04565b6115bc90600019612b18565b6115c69190612b9e565b6115d09190612acf565b601455806103e86115e36009600a612ac0565b6115f1906305f5e100612acf565b6115fd90600019612b04565b61160990600019612b18565b6116139190612b9e565b61161d9190612acf565b60155560408051838152602081018390527fa6454bdf33c7fac8e2983ae3b9279e3001f73b9f24fc533688ae513fd01ea52f9101610f01565b6000546001600160a01b031633146116805760405162461bcd60e51b8152600401610b0690612979565b6001600160a01b038216600081815260076020908152604091829020805460ff19168515159081179091558251938452908301527f0c5eaa4802ec95814e31f01595f190b439974412d428f3b93b7039be40ba93ae9101610f01565b6000610db8338484611af0565b6000546001600160a01b031633146117135760405162461bcd60e51b8152600401610b0690612979565b600f546001600160a01b03828116911614156117415760405162461bcd60e51b8152600401610b0690612b2f565b600f80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f05ccfd30f4f39ec3b9d56924bcbb513b981b41111408b721c161cd108b0cb9f39101610f01565b6000546001600160a01b031633146117c55760405162461bcd60e51b8152600401610b0690612979565b60085460ff16156118185760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610b06565b60058111156118735760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420736574206d6f7265207468616e20352064656164426c6f636b6044820152607360f81b6064820152608401610b06565b6008805460ff199081166001908117909255436009556019805460ff60a01b1916600160a01b179055601680549091169091179055600a819055604080518281524260208201527feb835a4f33d9f338e92a5bedd34bc0bc256a86aa10d512e20967fde7499547509101610d27565b6118ea611fcb565b565b6000546001600160a01b031633146119165760405162461bcd60e51b8152600401610b0690612979565b600e546001600160a01b03828116911614156119445760405162461bcd60e51b8152600401610b0690612b2f565b600e80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f9992b4e5f68decab5403ebc4b7c1fd9b8ac760d6761d4efe21d81922df72790e9101610f01565b6000546001600160a01b031633146119c85760405162461bcd60e51b8152600401610b0690612979565b6001600160a01b038116611a2d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b06565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610db88284612b9e565b6000610db88284612acf565b6000610db88284612b18565b6000610db88284612bb2565b6000610db88284612bca565b60008184841115611ae85760405162461bcd60e51b8152600401610b06919061270a565b505050900390565b6001600160a01b03831660009081526004602052604081205460ff1680611b19575060085460ff165b611b2257600080fd5b6001600160a01b03841660009081526007602052604090205460ff16158015611b6457506001600160a01b03831660009081526007602052604090205460ff16155b611b6d57600080fd5b601b5460ff1615611b8a57611b8384848461244c565b9050610db8565b6000546001600160a01b03858116911614801590611bc057506001600160a01b03841660009081526004602052604090205460ff165b8015611be457506001600160a01b03831660009081526004602052604090205460ff165b8015611bfe57506000546001600160a01b03848116911614155b8015611c1257506001600160a01b03831615155b8015611c2757506001600160a01b0384163014155b15611cd35760165460ff1615611cd3576018546001600160a01b0385811691161415611c92576001600160a01b038316600090815260066020526040902054431415611c7257600080fd5b6001600160a01b0383166000908152600660205260409020439055611cd3565b6001600160a01b038416600090815260066020526040902054431415611cb757600080fd5b6001600160a01b03841660009081526006602052604090204390555b6000611cea600c5484611a9490919063ffffffff16565b6000549091506001600160a01b03868116911614801590611d1457506001600160a01b0384163014155b8015611d2e57506018546001600160a01b03858116911614155b15611dc5576015546001600160a01b038516600090815260026020526040902054611d5a908390612bb2565b1115611dc55760405162461bcd60e51b815260206004820152603460248201527f546f74616c20486f6c64696e67206973206c696d697465642c20796f7520636160448201527337103737ba10313abc903a3430ba1036bab1b41760611b6064820152608401610b06565b60145481111580611dee57506001600160a01b03851660009081526005602052604090205460ff165b80611e1157506001600160a01b03841660009081526005602052604090205460ff165b611e515760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b06565b6018546001600160a01b038581169116148015611e715750611e71612568565b15611e7e57611e7e611fcb565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260029091529190912054611ed0918390611ac4565b6001600160a01b038616600090815260026020908152604080832093909355600490529081205460ff16151580611f2157506001600160a01b03851660009081526004602052604090205460ff1615155b611f3557611f308683876125c0565b611f37565b815b6001600160a01b038616600090815260026020526040902054909150611f5d9082611aac565b6001600160a01b03808716600081815260026020526040902092909255600c54908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611fae908590611a88565b60405190815260200160405180910390a350600195945050505050565b601b805460ff191660011790556000611fe33061138a565b9050601454811115611ff457506014545b6012546011546000916120189160ff63010000009283900481169290910416612b79565b60125460115460ff928316935060009261203e9262010000908190048216920416612b79565b60125460115460ff928316935060009261206392610100908190048216920416612b79565b60125460115460ff92831693506000926120809281169116612b79565b60125460115460ff92831693506000926120a792600160201b908190048216920416612b79565b60ff16905060006120c16002610c4688610d878b87611a88565b905060006120cf8883611aa0565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061210957612109612c4f565b60200260200101906001600160a01b031690816001600160a01b031681525050601660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561217757600080fd5b505afa15801561218b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121af9190612c65565b816001815181106121c2576121c2612c4f565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b81526101009091049091169063791ac9479061220f908590600090869030904290600401612c82565b600060405180830381600087803b15801561222957600080fd5b505af115801561223d573d6000803e3d6000fd5b504792506000915061225c90506122558b6002611a88565b8790611aa0565b9050600061227c6002610c4684610c468f88611a9490919063ffffffff16565b9050600061228e83610c46868c611a94565b905060006122a084610c46878f611a94565b905060006122b285610c46888f611a94565b905081156122f657600e546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156122f4573d6000803e3d6000fd5b505b8215612338576010546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050158015612336573d6000803e3d6000fd5b505b801561237a57600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612378573d6000803e3d6000fd5b505b8815612431576016546000805460405163f305d71960e01b8152306004820152602481018d90526044810183905260648101929092526001600160a01b0390811660848301524260a48301526101009092049091169063f305d71990869060c4016060604051808303818588803b1580156123f457600080fd5b505af1158015612408573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061242d9190612cf3565b5050505b5050601b805460ff1916905550505050505050505050505050565b600080612464600c5484611a9490919063ffffffff16565b90506124cc8160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060026000896001600160a01b03166001600160a01b0316815260200190815260200160002054611ac49092919063ffffffff16565b6001600160a01b0380871660009081526002602052604080822093909355908616815220546124fb9082611aac565b6001600160a01b03808616600081815260026020526040902092909255600c54908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061254c908590611a88565b60405190815260200160405180910390a3506001949350505050565b6018546000906001600160a01b031633148015906125895750601b5460ff16155b801561259e5750601954600160a01b900460ff165b80156125bb5750601a543060009081526002602052604090205410155b905090565b6018546000906001600160a01b03908116858216811491841614828115826125f657506018546001600160a01b03888116911614155b90506000831561261157601154600160201b900460ff166013555b821561262857601254600160201b900460ff166013555b43600a546009546126399190612bb2565b106126555761264e6063610d87896064611a88565b905061266a565b60135461266790610d87896064611a88565b90505b80156126fe573060009081526002602052604090205461268a9082611aac565b30600081815260026020526040902091909155600c546001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906126d8908590611a88565b60405190815260200160405180910390a36126f38782611aa0565b945050505050610db8565b86945050505050610db8565b600060208083528351808285015260005b818110156127375785810183015185820160400152820161271b565b81811115612749576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461277457600080fd5b50565b6000806040838503121561278a57600080fd5b82356127958161275f565b946020939093013593505050565b6000602082840312156127b557600080fd5b5035919050565b80358015158114610cb657600080fd5b6000602082840312156127de57600080fd5b610db8826127bc565b600080604083850312156127fa57600080fd5b612795836127bc565b60008060006060848603121561281857600080fd5b83356128238161275f565b925060208401356128338161275f565b929592945050506040919091013590565b6000806040838503121561285757600080fd5b82356128628161275f565b9150612870602084016127bc565b90509250929050565b60006020828403121561288b57600080fd5b8135610db88161275f565b803560ff81168114610cb657600080fd5b600080600080608085870312156128bd57600080fd5b6128c685612896565b93506128d460208601612896565b92506128e260408601612896565b91506128f060608601612896565b905092959194509250565b6000806040838503121561290e57600080fd5b82359150612870602084016127bc565b6000806040838503121561293157600080fd5b50508035926020909101359150565b6000806040838503121561295357600080fd5b823561295e8161275f565b9150602083013561296e8161275f565b809150509250929050565b60208082526016908201527510aca7aa9020a922902727aa102a24229027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8214156129d5576129d56129a9565b5060000390565b600181815b80851115612a175781600019048211156129fd576129fd6129a9565b80851615612a0a57918102915b93841c93908002906129e1565b509250929050565b600082612a2e57506001610ad5565b81612a3b57506000610ad5565b8160018114612a515760028114612a5b57612a77565b6001915050610ad5565b60ff841115612a6c57612a6c6129a9565b50506001821b610ad5565b5060208310610133831016604e8410600b8410161715612a9a575081810a610ad5565b612aa483836129dc565b8060001904821115612ab857612ab86129a9565b029392505050565b6000610db860ff841683612a1f565b6000816000190483118215151615612ae957612ae96129a9565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612b1357612b13612aee565b500690565b600082821015612b2a57612b2a6129a9565b500390565b6020808252602a908201527f43616e6e6f74207365742073616d652061646472657373207468616e206163746040820152691d585b0815d85b1b195d60b21b606082015260800190565b600060ff821660ff84168060ff03821115612b9657612b966129a9565b019392505050565b600082612bad57612bad612aee565b500490565b60008219821115612bc557612bc56129a9565b500190565b60006001600160ff1b0381841382841380821686840486111615612bf057612bf06129a9565b600160ff1b6000871282811687830589121615612c0f57612c0f6129a9565b60008712925087820587128484161615612c2b57612c2b6129a9565b87850587128184161615612c4157612c416129a9565b505050929093029392505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612c7757600080fd5b8151610db88161275f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612cd25784516001600160a01b031683529383019391830191600101612cad565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612d0857600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122056240bc7235066b0dfaa67ef5ad78a68a8eb120a21502bf99a36804c7d7e604e64736f6c63430008090033

Deployed Bytecode Sourcemap

323:16576:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3650:32;;;;;;;;;;;;;;;;;;;160:25:2;;;148:2;133:18;3650:32:1;;;;;;;;2421:70;;;;;;;;;;-1:-1:-1;2421:70:1;;;;-1:-1:-1;;;;;2421:70:1;;;;;;-1:-1:-1;;;;;360:32:2;;;342:51;;330:2;315:18;2421:70:1;196:203:2;5181:80:1;;;;;;;;;;-1:-1:-1;5253:5:1;;;;;;;;;;;;-1:-1:-1;;;5253:5:1;;;;5181:80;;;;;;;:::i;5608:216::-;;;;;;;;;;-1:-1:-1;5608:216:1;;;;;:::i;:::-;;:::i;:::-;;;1627:14:2;;1620:22;1602:41;;1590:2;1575:18;5608:216:1;1462:187:2;12327:678:1;;;;;;;;;;-1:-1:-1;12327:678:1;;;;;:::i;:::-;;:::i;15956:166::-;;;;;;;;;;-1:-1:-1;15956:166:1;;;;;:::i;:::-;;:::i;:::-;;11965:354;;;;;;;;;;-1:-1:-1;11965:354:1;;;;;:::i;:::-;;:::i;4911:88::-;;;;;;;;;;-1:-1:-1;4984:12:1;;4911:88;;2824:23;;;;;;;;;;;;;;;;6119:358;;;;;;;;;;-1:-1:-1;6119:358:1;;;;;:::i;:::-;;:::i;16308:186::-;;;;;;;;;;-1:-1:-1;16308:186:1;;;;;:::i;:::-;;:::i;2362:19::-;;;;;;;;;;;;;;;;4257:103:0;;;;;;;;;;-1:-1:-1;4257:103:0;;;;;:::i;:::-;4312:4;4347:5;-1:-1:-1;;;;;4336:16:0;;;4347:5;;4336:16;;4257:103;5005:80:1;;;;;;;;;;-1:-1:-1;5005:80:1;;1925:1;3616:36:2;;3604:2;3589:18;5005:80:1;3474:184:2;2328:27:1;;;;;;;;;;;;;;;;1575:44;;;;;;;;;;-1:-1:-1;1575:44:1;;;;;:::i;:::-;;;;;;;;;;;;;;;;14255:284;;;;;;;;;;-1:-1:-1;14255:284:1;;;;;:::i;:::-;;:::i;14545:346::-;;;;;;;;;;-1:-1:-1;14545:346:1;;;;;:::i;:::-;;:::i;16691:205::-;;;;;;;;;;-1:-1:-1;16691:205:1;;;;;:::i;:::-;;:::i;3557:31::-;;;;;;;;;;-1:-1:-1;3557:31:1;;;;-1:-1:-1;;;;;3557:31:1;;;15688:262;;;;;;;;;;-1:-1:-1;15688:262:1;;;;;:::i;:::-;;:::i;5830:121::-;;;;;;;;;;-1:-1:-1;5830:121:1;;;;;:::i;:::-;;:::i;2584:70::-;;;;;;;;;;-1:-1:-1;2584:70:1;;;;-1:-1:-1;;;;;2584:70:1;;;2797:20;;;;;;;;;;-1:-1:-1;2797:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2797:20:1;;;;;;;;;;4971:4:2;4959:17;;;4941:36;;5013:17;;;5008:2;4993:18;;4986:45;5067:17;;;5047:18;;;5040:45;;;;5121:17;;5116:2;5101:18;;5094:45;5176:17;;;5170:3;5155:19;;5148:46;4928:3;4913:19;2797:20:1;4702:498:2;13465:171:1;;;;;;;;;;-1:-1:-1;13465:171:1;;;;;:::i;:::-;;:::i;3620:23::-;;;;;;;;;;-1:-1:-1;3620:23:1;;;;-1:-1:-1;;;3620:23:1;;;;;;14897:353;;;;;;;;;;-1:-1:-1;14897:353:1;;;;;:::i;:::-;;:::i;5351:113::-;;;;;;;;;;-1:-1:-1;5351:113:1;;;;;:::i;:::-;;:::i;4618:146:0:-;;;;;;;;;;;;;:::i;2498:75:1:-;;;;;;;;;;-1:-1:-1;2498:75:1;;;;-1:-1:-1;;;;;2498:75:1;;;3363:27;;;;;;;;;;-1:-1:-1;3363:27:1;;;;;;;;3241:53;;;;;;;;;;;;;;;;5267:78;;;;;;;;;;-1:-1:-1;5319:7:1;5337:5;-1:-1:-1;;;;;5337:5:1;5267:78;;16128:174;;;;;;;;;;-1:-1:-1;16128:174:1;;;;;:::i;:::-;;:::i;1626:48::-;;;;;;;;;;-1:-1:-1;1626:48:1;;;;;:::i;:::-;;;;;;;;;;;;;;;;3443:79;;;;;;;;;;-1:-1:-1;3443:79:1;;;;-1:-1:-1;;;;;3443:79:1;;;3301:55;;;;;;;;;;;;;;;;2772:18;;;;;;;;;;-1:-1:-1;2772:18:1;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2772:18:1;;;;;;5091:84;;;;;;;;;;-1:-1:-1;5165:7:1;;;;;;;;;;;;-1:-1:-1;;;5165:7:1;;;;5091:84;;15256:426;;;;;;;;;;-1:-1:-1;15256:426:1;;;;;:::i;:::-;;:::i;16500:185::-;;;;;;;;;;-1:-1:-1;16500:185:1;;;;;:::i;:::-;;:::i;3531:19::-;;;;;;;;;;-1:-1:-1;3531:19:1;;;;-1:-1:-1;;;;;3531:19:1;;;5957:156;;;;;;;;;;-1:-1:-1;5957:156:1;;;;;:::i;:::-;;:::i;13976:273::-;;;;;;;;;;-1:-1:-1;13976:273:1;;;;;:::i;:::-;;:::i;13033:426::-;;;;;;;;;;-1:-1:-1;13033:426:1;;;;;:::i;:::-;;:::i;11884:54::-;;;;;;;;;;;;;:::i;2667:71::-;;;;;;;;;;-1:-1:-1;2667:71:1;;;;-1:-1:-1;;;;;2667:71:1;;;13642:328;;;;;;;;;;-1:-1:-1;13642:328:1;;;;;:::i;:::-;;:::i;1734:44::-;;;;;;;;;;-1:-1:-1;1734:44:1;;;;;:::i;:::-;;;;;;;;;;;;;;;;5470:132;;;;;;;;;;-1:-1:-1;5470:132:1;;;;;:::i;:::-;-1:-1:-1;;;;;5572:19:1;;;5554:7;5572:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5470:132;4368:242:0;;;;;;;;;;-1:-1:-1;4368:242:0;;;;;:::i;:::-;;:::i;3412:24:1:-;;;;;;;;;;-1:-1:-1;3412:24:1;;;;;;;-1:-1:-1;;;;;3412:24:1;;;5608:216;5712:10;5683:4;5700:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5700:32:1;;;;;;;;;;:41;;;5757:37;5683:4;;5700:32;;5757:37;;;;5735:6;160:25:2;;148:2;133:18;;14:177;5757:37:1;;;;;;;;-1:-1:-1;5812:4:1;5608:216;;;;;:::o;12327:678::-;12389:7;4347:5:0;;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;;;;;;;;;12418:6:1::1;::::0;::::1;;12417:7;12409:29;;;::::0;-1:-1:-1;;;12409:29:1;;6815:2:2;12409:29:1::1;::::0;::::1;6797:21:2::0;6854:1;6834:18;;;6827:29;-1:-1:-1;;;6872:18:2;;;6865:39;6921:18;;12409:29:1::1;6613:332:2::0;12409:29:1::1;12455:16:::0;12451:68:::1;;-1:-1:-1::0;;12495:12:1::1;::::0;;12327:678::o;12451:68::-:1;12549:1;12535:11;:15;12531:188;;;12582:39;12607:12;12608:11:::0;12607:12:::1;:::i;:::-;12582;::::0;;:16:::1;:39::i;:::-;12567:12;:54:::0;12531:188:::1;;;12669:12;::::0;:38:::1;::::0;12694:11;12669:16:::1;:38::i;:::-;12654:12;:53:::0;12531:188:::1;12735:12;::::0;-1:-1:-1;;;;;;12731:83:1::1;;;-1:-1:-1::0;;;;;12777:12:1::1;:25:::0;12731:83:::1;12850:1;12834:12;;:17;;12826:64;;;::::0;-1:-1:-1;;;12826:64:1;;7425:2:2;12826:64:1::1;::::0;::::1;7407:21:2::0;7464:2;7444:18;;;7437:30;7503:34;7483:18;;;7476:62;-1:-1:-1;;;7554:18:2;;;7547:32;7596:19;;12826:64:1::1;7223:398:2::0;12826:64:1::1;12922:12;::::0;12910:25:::1;::::0;2206:13:::1;1925:1;2206:2;:13;:::i;:::-;2198:21;::::0;:5:::1;:21;:::i;:::-;2276:38;::::0;-1:-1:-1;;2276:38:1::1;:::i;:::-;2261:54;::::0;-1:-1:-1;;2261:54:1::1;:::i;:::-;12910:11:::0;::::1;:25::i;:::-;12903:4;:32:::0;12946:12:::1;::::0;:19:::1;::::0;;-1:-1:-1;;;;;;12946:19:1;;;;-1:-1:-1;;;;;12946:12:1;;::::1;::::0;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;:12:::1;::::0;:19;;;;;;;;:12;;:19;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12985:12;;12978:19;;4240:1:0;12327:678:1::0;;;:::o;15956:166::-;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;16028:15:1::1;:25:::0;;-1:-1:-1;;16028:25:1::1;::::0;::::1;;::::0;;::::1;::::0;;;16069:45:::1;::::0;;9729:41:2;;;16098:15:1::1;9801:2:2::0;9786:18;;9779:34;16069:45:1::1;::::0;9702:18:2;16069:45:1::1;;;;;;;;15956:166:::0;:::o;11965:354::-;12060:17;4347:5:0;;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;12092:6:1::1;12089:223;;;12126:69;12133:61;-1:-1:-1::0;;12137:48:1::1;12164:20;12137:22;12154:4;12137:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:48::i;:::-;12133:57:::0;::::1;:61::i;12126:69::-;12114:81;;12089:223;;;12239:61;12250:48;12277:20;12250:22;12267:4;12250:12;;:16;;:22;;;;:::i;12239:61::-;12227:73:::0;11965:354;-1:-1:-1;;;11965:354:1:o;6119:358::-;-1:-1:-1;;;;;6239:19:1;;6219:4;6239:19;;;:11;:19;;;;;;;;6259:10;6239:31;;;;;;;;-1:-1:-1;;6239:52:1;6236:176;;6341:69;;;;;;;;;;;-1:-1:-1;;;6341:69:1;;;;;;;;-1:-1:-1;;;;;6341:19:1;;-1:-1:-1;6341:19:1;;;:11;:19;;;;;6361:10;6341:31;;;;;;;;;;:69;;6377:6;;6341:35;:69::i;:::-;-1:-1:-1;;;;;6307:19:1;;;;;;:11;:19;;;;;;;;6327:10;6307:31;;;;;;;:103;6236:176;6429:40;6443:6;6451:9;6462:6;6429:13;:40::i;:::-;6422:47;6119:358;-1:-1:-1;;;;6119:358:1:o;16308:186::-;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16398:24:1;::::1;;::::0;;;:15:::1;:24;::::0;;;;;;;;:34;;-1:-1:-1;;16398:34:1::1;::::0;::::1;;::::0;;::::1;::::0;;;16448:38;;9992:51:2;;;10059:18;;;10052:50;16448:38:1::1;::::0;9965:18:2;16448:38:1::1;;;;;;;;16308:186:::0;;:::o;14255:284::-;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;14344:11:1::1;::::0;-1:-1:-1;;;;;14335:20:1;;::::1;14344:11:::0;::::1;14335:20;;14327:74;;;;-1:-1:-1::0;;;14327:74:1::1;;;;;;;:::i;:::-;14435:11;::::0;;-1:-1:-1;;;;;14457:17:1;;::::1;-1:-1:-1::0;;;;;;14457:17:1;::::1;::::0;::::1;::::0;;;14490:41:::1;::::0;;14435:11;;;::::1;10736:34:2::0;;;10801:2;10786:18;;10779:43;;;;14490:41:1::1;::::0;10671:18:2;14490:41:1::1;10524:304:2::0;14545:346:1;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;14657:4:1::1;:16:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;14684:14:1;;;;;;;14657:16:::1;14684:14:::0;;::::1;;;-1:-1:-1::0;;14744:24:1;14709;;;::::1;;-1:-1:-1::0;;14744:24:1;;;;;::::1;::::0;;;::::1;;::::0;;;14709;14790:10:::1;14684:14:::0;14657:16;14790:10:::1;:::i;:::-;:20;;;;:::i;:::-;:30;;;;:::i;:::-;14779:4;:41:::0;;-1:-1:-1;;14779:41:1::1;-1:-1:-1::0;;;14779:41:1::1;::::0;;::::1;;;::::0;;14836:47:::1;::::0;;11275:17:2;;;11257:36;;11329:17;;;11324:2;11309:18;;11302:45;11383:17;;;11363:18;;;11356:45;;;;11437:17;;;11432:2;11417:18;;11410:45;14836:47:1::1;::::0;11244:3:2;11229:19;14836:47:1::1;;;;;;;;14545:346:::0;;;;:::o;16691:205::-;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16769:21:1;::::1;;::::0;;;:11:::1;:21;::::0;;;;;;;:28;;16793:4:::1;-1:-1:-1::0;;16769:28:1;;::::1;::::0;::::1;::::0;;;16808:15:::1;:25:::0;;;;;;:32;;;;::::1;;::::0;;;16856;;342:51:2;;;16856:32:1::1;::::0;315:18:2;16856:32:1::1;196:203:2::0;15688:262:1;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;15821:22:1;15815:5:::1;2206:13;1925:1;2206:2;:13;:::i;:::-;2198:21;::::0;:5:::1;:21;:::i;:::-;2276:38;::::0;-1:-1:-1;;2276:38:1::1;:::i;:::-;2261:54;::::0;-1:-1:-1;;2261:54:1::1;:::i;:::-;15807:13;;;;:::i;:::-;:36;;;;:::i;:::-;15791:13;:52:::0;15854:11:::1;:21:::0;;-1:-1:-1;;;;15854:21:1::1;-1:-1:-1::0;;;15854:21:1;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;15891:51:::1;::::0;;11759:25:2;;;11815:2;11800:18;;11793:50;;;;15891:51:1::1;::::0;11732:18:2;15891:51:1::1;11591:258:2::0;5830:121:1;5885:4;5909:34;5917:7;-1:-1:-1;;5909:7:1;:34::i;13465:171::-;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;13541:14:1::1;:22:::0;;-1:-1:-1;;13541:22:1::1;::::0;::::1;;::::0;;::::1;::::0;;;13579:49:::1;::::0;;9729:41:2;;;13612:15:1::1;9801:2:2::0;9786:18;;9779:34;13579:49:1::1;::::0;9702:18:2;13579:49:1::1;9561:258:2::0;14897:353:1;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;15010:5:1::1;:17:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;15038:15:1;;;;;;;15010:17:::1;15038:15:::0;;::::1;;;-1:-1:-1::0;;15100:25:1;15064;;;::::1;;-1:-1:-1::0;;15100:25:1;;;;;::::1;::::0;;;::::1;;::::0;;;15064;15148:10:::1;15038:15:::0;15010:17;15148:10:::1;:::i;:::-;:20;;;;:::i;:::-;:30;;;;:::i;:::-;15136:5;:42:::0;;-1:-1:-1;;15136:42:1::1;-1:-1:-1::0;;;15136:42:1::1;::::0;;::::1;;;::::0;;15194:48:::1;::::0;;11275:17:2;;;11257:36;;11329:17;;;11324:2;11309:18;;11302:45;11383:17;;;11363:18;;;11356:45;;;;11437:17;;;11432:2;11417:18;;11410:45;15194:48:1::1;::::0;11244:3:2;11229:19;15194:48:1::1;11042:419:2::0;5351:113:1;5457:4;;-1:-1:-1;;;;;5434:18:1;;5417:7;5434:18;;;:9;:18;;;;;;5417:7;;5434:28;;:18;:22;:28::i;4618:146:0:-;4312:4;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;4724:1:::1;4709:5:::0;;4688:39:::1;::::0;-1:-1:-1;;;;;4709:5:0;;::::1;::::0;4688:39:::1;::::0;4724:1;;4688:39:::1;4754:1;4738:18:::0;;-1:-1:-1;;;;;;4738:18:0::1;::::0;;4618:146::o;16128:174:1:-;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16214:20:1;::::1;;::::0;;;:11:::1;:20;::::0;;;;;;;;:30;;-1:-1:-1;;16214:30:1::1;::::0;::::1;;::::0;;::::1;::::0;;;16260:34;;9992:51:2;;;10059:18;;;10052:50;16260:34:1::1;::::0;9965:18:2;16260:34:1::1;9824:284:2::0;15256:426:1;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;15382:1:1::1;15366:13;:17;;15358:67;;;::::0;-1:-1:-1;;;15358:67:1;;12056:2:2;15358:67:1::1;::::0;::::1;12038:21:2::0;12095:2;12075:18;;;12068:30;12134:34;12114:18;;;12107:62;-1:-1:-1;;;12185:18:2;;;12178:35;12230:19;;15358:67:1::1;11854:401:2::0;15358:67:1::1;15464:2;15444:17;:22;;15436:65;;;::::0;-1:-1:-1;;;15436:65:1;;12462:2:2;15436:65:1::1;::::0;::::1;12444:21:2::0;12501:2;12481:18;;;12474:30;12540:32;12520:18;;;12513:60;12590:18;;15436:65:1::1;12260:354:2::0;15436:65:1::1;15540:13:::0;15535:4:::1;2206:13;1925:1;2206:2;:13;:::i;:::-;2198:21;::::0;:5:::1;:21;:::i;:::-;2276:38;::::0;-1:-1:-1;;2276:38:1::1;:::i;:::-;2261:54;::::0;-1:-1:-1;;2261:54:1::1;:::i;:::-;15527:12;;;;:::i;:::-;:26;;;;:::i;:::-;15512:12;:41:::0;15594:17;15589:4:::1;2206:13;1925:1;2206:2;:13;:::i;:::-;2198:21;::::0;:5:::1;:21;:::i;:::-;2276:38;::::0;-1:-1:-1;;2276:38:1::1;:::i;:::-;2261:54;::::0;-1:-1:-1;;2261:54:1::1;:::i;:::-;15581:12;;;;:::i;:::-;:30;;;;:::i;:::-;15564:14;:47:::0;15627::::1;::::0;;12793:25:2;;;12849:2;12834:18;;12827:34;;;15627:47:1::1;::::0;12766:18:2;15627:47:1::1;12619:248:2::0;16500:185:1;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16593:20:1;::::1;;::::0;;;:11:::1;:20;::::0;;;;;;;;:30;;-1:-1:-1;;16593:30:1::1;::::0;::::1;;::::0;;::::1;::::0;;;16639:38;;9992:51:2;;;10059:18;;;10052:50;16639:38:1::1;::::0;9965:18:2;16639:38:1::1;9824:284:2::0;5957:156:1;6037:4;6061:44;6075:10;6087:9;6098:6;6061:13;:44::i;13976:273::-;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;14062:10:1::1;::::0;-1:-1:-1;;;;;14054:18:1;;::::1;14062:10:::0;::::1;14054:18;;14046:72;;;;-1:-1:-1::0;;;14046:72:1::1;;;;;;;:::i;:::-;14151:10;::::0;;-1:-1:-1;;;;;14172:15:1;;::::1;-1:-1:-1::0;;;;;;14172:15:1;::::1;::::0;::::1;::::0;;;14203:38:::1;::::0;;14151:10;;;::::1;10736:34:2::0;;;10801:2;10786:18;;10779:43;;;;14203:38:1::1;::::0;10671:18:2;14203:38:1::1;10524:304:2::0;13033:426:1;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;13119:14:1::1;::::0;::::1;;13118:15;13110:50;;;::::0;-1:-1:-1;;;13110:50:1;;13074:2:2;13110:50:1::1;::::0;::::1;13056:21:2::0;13113:2;13093:18;;;13086:30;13152:25;13132:18;;;13125:53;13195:18;;13110:50:1::1;12872:347:2::0;13110:50:1::1;13193:1;13179:11;:15;;13171:60;;;::::0;-1:-1:-1;;;13171:60:1;;13426:2:2;13171:60:1::1;::::0;::::1;13408:21:2::0;13465:2;13445:18;;;13438:30;13504:34;13484:18;;;13477:62;-1:-1:-1;;;13555:18:2;;;13548:31;13596:19;;13171:60:1::1;13224:397:2::0;13171:60:1::1;13242:14;:19:::0;;-1:-1:-1;;13242:19:1;;::::1;13257:4;13242:19:::0;;::::1;::::0;;;13283:12:::1;13272:10;:23:::0;13306:11:::1;:16:::0;;-1:-1:-1;;;;13306:16:1::1;-1:-1:-1::0;;;13306:16:1::1;::::0;;13333:15:::1;:22:::0;;;;::::1;::::0;;::::1;::::0;;13366:10:::1;:22:::0;;;13404:47:::1;::::0;;12793:25:2;;;13435:15:1::1;12849:2:2::0;12834:18;;12827:34;13404:47:1::1;::::0;12766:18:2;13404:47:1::1;12619:248:2::0;11884:54:1;11924:10;:8;:10::i;:::-;11884:54::o;13642:328::-;4312:4:0;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;13743:15:1::1;::::0;-1:-1:-1;;;;;13730:28:1;;::::1;13743:15:::0;::::1;13730:28;;13722:82;;;;-1:-1:-1::0;;;13722:82:1::1;;;;;;;:::i;:::-;13842:15;::::0;;-1:-1:-1;;;;;13868:25:1;;::::1;-1:-1:-1::0;;;;;;13868:25:1;::::1;::::0;::::1;::::0;;;13909:53:::1;::::0;;13842:15;;;::::1;10736:34:2::0;;;10801:2;10786:18;;10779:43;;;;13909:53:1::1;::::0;10671:18:2;13909:53:1::1;10524:304:2::0;4368:242:0;4312:4;4347:5;-1:-1:-1;;;;;4347:5:0;4200:10;4336:16;4184:54;;;;-1:-1:-1;;;4184:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4457:22:0;::::1;4449:73;;;::::0;-1:-1:-1;;;4449:73:0;;13828:2:2;4449:73:0::1;::::0;::::1;13810:21:2::0;13867:2;13847:18;;;13840:30;13906:34;13886:18;;;13879:62;-1:-1:-1;;;13957:18:2;;;13950:36;14003:19;;4449:73:0::1;13626:402:2::0;4449:73:0::1;4559:5;::::0;;4538:37:::1;::::0;-1:-1:-1;;;;;4538:37:0;;::::1;::::0;4559:5;::::1;::::0;4538:37:::1;::::0;::::1;4586:5;:16:::0;;-1:-1:-1;;;;;;4586:16:0::1;-1:-1:-1::0;;;;;4586:16:0;;;::::1;::::0;;;::::1;::::0;;4368:242::o;1511:98::-;1569:7;1596:5;1600:1;1596;:5;:::i;1407:98::-;1465:7;1492:5;1496:1;1492;:5;:::i;1303:98::-;1361:7;1388:5;1392:1;1388;:5;:::i;1199:98::-;1257:7;1284:5;1288:1;1284;:5;:::i;2486:95::-;2542:6;2568:5;2572:1;2568;:5;:::i;1719:240::-;1839:7;1900:12;1892:6;;;;1884:29;;;;-1:-1:-1;;;1884:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1935:5:0;;;1719:240::o;6546:1901:1:-;-1:-1:-1;;;;;6663:19:1;;6638:4;6663:19;;;:11;:19;;;;;;;;;:35;;-1:-1:-1;6684:14:1;;;;6663:35;6655:44;;;;;;-1:-1:-1;;;;;6719:19:1;;;;;;:11;:19;;;;;;;;6718:20;:47;;;;-1:-1:-1;;;;;;6743:22:1;;;;;;:11;:22;;;;;;;;6742:23;6718:47;6710:56;;;;;;6790:6;;;;6787:63;;;6806:41;6821:6;6829:9;6840:6;6806:14;:41::i;:::-;6799:48;;;;6787:63;6883:5;;-1:-1:-1;;;;;6873:15:1;;;6883:5;;6873:15;;;;:51;;-1:-1:-1;;;;;;6905:19:1;;;;;;:11;:19;;;;;;;;6873:51;:90;;;;-1:-1:-1;;;;;;6941:22:1;;;;;;:11;:22;;;;;;;;6873:90;:125;;;;-1:-1:-1;6993:5:1;;-1:-1:-1;;;;;6980:18:1;;;6993:5;;6980:18;;6873:125;:165;;;;-1:-1:-1;;;;;;7015:23:1;;;;6873:165;:205;;;;-1:-1:-1;;;;;;7055:23:1;;7073:4;7055:23;;6873:205;6870:710;;;7195:15;;;;7191:374;;;7245:4;;-1:-1:-1;;;;;7235:14:1;;;7245:4;;7235:14;7231:315;;;-1:-1:-1;;;;;7281:20:1;;;;;;:9;:20;;;;;;7305:12;7281:36;;7273:45;;;;;;-1:-1:-1;;;;;7341:20:1;;;;;;:9;:20;;;;;7364:12;7341:35;;7231:315;;;-1:-1:-1;;;;;7433:17:1;;;;;;:9;:17;;;;;;7454:12;7433:33;;7425:42;;;;;;-1:-1:-1;;;;;7490:17:1;;;;;;:9;:17;;;;;7510:12;7490:32;;7231:315;7590:15;7608:16;7619:4;;7608:6;:10;;:16;;;;:::i;:::-;7651:5;;7590:34;;-1:-1:-1;;;;;;7641:15:1;;;7651:5;;7641:15;;;;:54;;-1:-1:-1;;;;;;7669:26:1;;7690:4;7669:26;;7641:54;:84;;;;-1:-1:-1;7721:4:1;;-1:-1:-1;;;;;7708:17:1;;;7721:4;;7708:17;;7641:84;7637:220;;;7785:14;;-1:-1:-1;;;;;7750:20:1;;;;;;:9;:20;;;;;;:30;;7773:7;;7750:30;:::i;:::-;7749:50;;7741:114;;;;-1:-1:-1;;;7741:114:1;;14926:2:2;7741:114:1;;;14908:21:2;14965:2;14945:18;;;14938:30;15004:34;14984:18;;;14977:62;-1:-1:-1;;;15055:18:2;;;15048:50;15115:19;;7741:114:1;14724:416:2;7741:114:1;7888:12;;7877:7;:23;;:50;;;-1:-1:-1;;;;;;7904:23:1;;;;;;:15;:23;;;;;;;;7877:50;:80;;;-1:-1:-1;;;;;;7931:26:1;;;;;;:15;:26;;;;;;;;7877:80;7869:110;;;;-1:-1:-1;;;7869:110:1;;15347:2:2;7869:110:1;;;15329:21:2;15386:2;15366:18;;;15359:30;-1:-1:-1;;;15405:18:2;;;15398:47;15462:18;;7869:110:1;15145:341:2;7869:110:1;8008:4;;-1:-1:-1;;;;;7995:17:1;;;8008:4;;7995:17;:37;;;;;8016:16;:14;:16::i;:::-;7992:56;;;8035:10;:8;:10::i;:::-;8080:54;;;;;;;;;;;-1:-1:-1;;;8080:54:1;;;;;;;;-1:-1:-1;;;;;8080:17:1;;-1:-1:-1;8080:17:1;;;:9;:17;;;;;;;;:54;;8102:7;;8080:21;:54::i;:::-;-1:-1:-1;;;;;8060:17:1;;;;;;:9;:17;;;;;;;;:74;;;;8955:11;:19;;;;;;;;8954:20;8173:22;:51;;;-1:-1:-1;;;;;;8955:19:1;;8930:4;8955:19;;;:11;:19;;;;;;;;8954:20;8199:25;8173:51;8172:100;;8238:34;8246:6;8254:7;8262:9;8238:7;:34::i;:::-;8172:100;;;8228:7;8172:100;-1:-1:-1;;;;;8306:20:1;;;;;;:9;:20;;;;;;8147:125;;-1:-1:-1;8306:40:1;;8147:125;8306:24;:40::i;:::-;-1:-1:-1;;;;;8283:20:1;;;;;;;:9;:20;;;;;:63;;;;8411:4;;8364:53;;;;;;8392:24;;:14;;:18;:24::i;:::-;8364:53;;160:25:2;;;148:2;133:18;8364:53:1;;;;;;;-1:-1:-1;8435:4:1;;6546:1901;-1:-1:-1;;;;;6546:1901:1:o;10034:1846::-;3737:6;:13;;-1:-1:-1;;3737:13:1;3746:4;3737:13;;;:6;10106:24:::1;10124:4;10106:9;:24::i;:::-;10083:47;;10159:12;;10144;:27;10141:62;;;-1:-1:-1::0;10189:12:1::1;::::0;10141:62:::1;10250:5;:15:::0;10235:4:::1;:14:::0;10215:17:::1;::::0;10235:30:::1;::::0;10250:15:::1;::::0;;;;::::1;::::0;::::1;::::0;10235:14;;::::1;;:30;:::i;:::-;10311:5;:15:::0;10296:4:::1;:14:::0;10215:50:::1;::::0;;::::1;::::0;-1:-1:-1;10276:17:1::1;::::0;10296:30:::1;::::0;10311:15;;;;::::1;::::0;::::1;::::0;10296:14:::1;;:30;:::i;:::-;10362:5;:10:::0;10352:4:::1;:9:::0;10276:50:::1;::::0;;::::1;::::0;-1:-1:-1;10337:12:1::1;::::0;10352:20:::1;::::0;10362:10:::1;::::0;;;::::1;::::0;::::1;::::0;10352:9:::1;;:20;:::i;:::-;10410:5;:11:::0;10399:4:::1;:10:::0;10337:35:::1;::::0;;::::1;::::0;-1:-1:-1;10383:13:1::1;::::0;10399:22:::1;::::0;10410:11;::::1;::::0;10399:10:::1;:22;:::i;:::-;10463:5;:11:::0;10452:4:::1;:10:::0;10383:38:::1;::::0;;::::1;::::0;-1:-1:-1;10432:17:1::1;::::0;10452:22:::1;::::0;-1:-1:-1;;;10463:11:1;;;::::1;::::0;::::1;::::0;10452:10:::1;;:22;:::i;:::-;10432:42;;::::0;-1:-1:-1;10487:23:1::1;10513:49;10560:1;10513:42;10545:9:::0;10513:27:::1;:12:::0;10432:42;10513:16:::1;:27::i;:49::-;10487:75:::0;-1:-1:-1;10573:20:1::1;10596:33;:12:::0;10487:75;10596:16:::1;:33::i;:::-;10666:16;::::0;;10680:1:::1;10666:16:::0;;;;;::::1;::::0;;10573:56;;-1:-1:-1;10642:21:1::1;::::0;10666:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10666:16:1::1;10642:40;;10711:4;10693;10698:1;10693:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;10693:23:1::1;;;-1:-1:-1::0;;;;;10693:23:1::1;;;::::0;::::1;10737:6;;;;;;;;;-1:-1:-1::0;;;;;10737:6:1::1;-1:-1:-1::0;;;;;10737:11:1::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10727:4;10732:1;10727:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10727:23:1;;::::1;:7;::::0;;::::1;::::0;;;;;:23;10763:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;10763:188:1;;:6:::1;::::0;;::::1;::::0;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;10835:12;;10862:1:::1;::::0;10878:4;;10905::::1;::::0;10925:15:::1;::::0;10763:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;10984:21:1::1;::::0;-1:-1:-1;10964:17:1::1;::::0;-1:-1:-1;11040:31:1::1;::::0;-1:-1:-1;11054:16:1::1;:9:::0;11068:1:::1;11054:13;:16::i;:::-;11040:9:::0;;:13:::1;:31::i;:::-;11018:53;;11092:20;11115:48;11161:1;11115:41;11144:11;11115:24;11129:9;11115;:13;;:24;;;;:::i;:48::-;11092:71:::0;-1:-1:-1;11174:16:1::1;11193:37;11218:11:::0;11193:20:::1;:9:::0;11207:5;11193:13:::1;:20::i;:37::-;11174:56:::0;-1:-1:-1;11241:20:1::1;11264:41;11293:11:::0;11264:24:::1;:9:::0;11278;11264:13:::1;:24::i;:41::-;11241:64:::0;-1:-1:-1;11316:15:1::1;11334:36;11358:11:::0;11334:19:::1;:9:::0;11348:4;11334:13:::1;:19::i;:36::-;11316:54:::0;-1:-1:-1;11386:16:1;;11383:71:::1;;11413:15;::::0;11405:47:::1;::::0;-1:-1:-1;;;;;11413:15:1;;::::1;::::0;11405:47;::::1;;;::::0;11439:12;;11413:15:::1;11405:47:::0;11413:15;11405:47;11439:12;11413:15;11405:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11383:71;11467:12:::0;;11464:59:::1;;11490:11;::::0;11482:39:::1;::::0;-1:-1:-1;;;;;11490:11:1;;::::1;::::0;11482:39;::::1;;;::::0;11512:8;;11490:11:::1;11482:39:::0;11490:11;11482:39;11512:8;11490:11;11482:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11464:59;11536:11:::0;;11533:56:::1;;11558:10;::::0;11550:37:::1;::::0;-1:-1:-1;;;;;11558:10:1;;::::1;::::0;11550:37;::::1;;;::::0;11579:7;;11558:10:::1;11550:37:::0;11558:10;11550:37;11579:7;11558:10;11550:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11533:56;11604:19:::0;;11601:272:::1;;11639:6;::::0;11767:1:::1;11807:5:::0;;11639:222:::1;::::0;-1:-1:-1;;;11639:222:1;;11709:4:::1;11639:222;::::0;::::1;17337:34:2::0;17387:18;;;17380:34;;;17430:18;;;17423:34;;;17473:18;;;17466:34;;;;-1:-1:-1;;;;;11807:5:1;;::::1;17516:19:2::0;;;17509:44;11831:15:1::1;17569:19:2::0;;;17562:35;11639:6:1::1;::::0;;::::1;::::0;;::::1;::::0;:22:::1;::::0;11669:12;;17271:19:2;;11639:222:1::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11601:272;-1:-1:-1::0;;3755:6:1;:14;;-1:-1:-1;;3755:14:1;;;-1:-1:-1;;;;;;;;;;;;;10034:1846:1:o;8462:388::-;8555:4;8572:15;8590:16;8601:4;;8590:6;:10;;:16;;;;:::i;:::-;8572:34;;8637:54;8659:7;8637:54;;;;;;;;;;;;;-1:-1:-1;;;8637:54:1;;;:9;:17;8647:6;-1:-1:-1;;;;;8637:17:1;-1:-1:-1;;;;;8637:17:1;;;;;;;;;;;;;:21;;:54;;;;;:::i;:::-;-1:-1:-1;;;;;8617:17:1;;;;;;;:9;:17;;;;;;:74;;;;8725:20;;;;;;;:33;;8750:7;8725:24;:33::i;:::-;-1:-1:-1;;;;;8702:20:1;;;;;;;:9;:20;;;;;:56;;;;8814:4;;8774:46;;;;;;8802:17;;:7;;:11;:17::i;:::-;8774:46;;160:25:2;;;148:2;133:18;8774:46:1;;;;;;;-1:-1:-1;8838:4:1;;8462:388;-1:-1:-1;;;;8462:388:1:o;9829:197::-;9916:4;;9878;;-1:-1:-1;;;;;9916:4:1;9902:10;:18;;;;:38;;-1:-1:-1;9934:6:1;;;;9933:7;9902:38;:62;;;;-1:-1:-1;9953:11:1;;-1:-1:-1;;;9953:11:1;;;;9902:62;:116;;;;-1:-1:-1;10005:13:1;;9995:4;9977:24;;;;:9;:24;;;;;;:41;;9902:116;9895:123;;9829:197;:::o;8990:803::-;9118:4;;9077:7;;-1:-1:-1;;;;;9118:4:1;;;9108:14;;;;;;9145:17;;;9077:7;9184:17;;9145;9184:35;;-1:-1:-1;9215:4:1;;-1:-1:-1;;;;;9205:14:1;;;9215:4;;9205:14;;9184:35;9173:46;;9230:17;9263:3;9260:31;;;9279:4;:10;-1:-1:-1;;;9279:10:1;;;;9268:8;:21;9260:31;9304:4;9301:33;;;9321:5;:11;-1:-1:-1;;;9321:11:1;;;;9310:8;:22;9301:33;9409:12;9395:10;;9382;;:23;;;;:::i;:::-;:39;9379:151;;9445:24;9466:2;9445:16;:7;9457:3;9445:11;:16::i;:24::-;9433:36;;9379:151;;;9519:8;;9498:30;;:16;:7;9510:3;9498:11;:16::i;:30::-;9486:42;;9379:151;9546:12;;9542:243;;9615:4;9597:24;;;;:9;:24;;;;;;:39;;9626:9;9597:28;:39::i;:::-;9588:4;9570:24;;;;:9;:24;;;;;:66;;;;9698:4;;-1:-1:-1;;;;;9652:52:1;;;;;9684:19;;:9;;:13;:19::i;:::-;9652:52;;160:25:2;;;148:2;133:18;9652:52:1;;;;;;;9722:22;:7;9734:9;9722:11;:22::i;:::-;9715:29;;;;;;;;9542:243;9778:7;9771:14;;;;;;;;404:597:2;516:4;545:2;574;563:9;556:21;606:6;600:13;649:6;644:2;633:9;629:18;622:34;674:1;684:140;698:6;695:1;692:13;684:140;;;793:14;;;789:23;;783:30;759:17;;;778:2;755:26;748:66;713:10;;684:140;;;842:6;839:1;836:13;833:91;;;912:1;907:2;898:6;887:9;883:22;879:31;872:42;833:91;-1:-1:-1;985:2:2;964:15;-1:-1:-1;;960:29:2;945:45;;;;992:2;941:54;;404:597;-1:-1:-1;;;404:597:2:o;1006:131::-;-1:-1:-1;;;;;1081:31:2;;1071:42;;1061:70;;1127:1;1124;1117:12;1061:70;1006:131;:::o;1142:315::-;1210:6;1218;1271:2;1259:9;1250:7;1246:23;1242:32;1239:52;;;1287:1;1284;1277:12;1239:52;1326:9;1313:23;1345:31;1370:5;1345:31;:::i;:::-;1395:5;1447:2;1432:18;;;;1419:32;;-1:-1:-1;;;1142:315:2:o;1654:179::-;1712:6;1765:2;1753:9;1744:7;1740:23;1736:32;1733:52;;;1781:1;1778;1771:12;1733:52;-1:-1:-1;1804:23:2;;1654:179;-1:-1:-1;1654:179:2:o;1838:160::-;1903:20;;1959:13;;1952:21;1942:32;;1932:60;;1988:1;1985;1978:12;2003:180;2059:6;2112:2;2100:9;2091:7;2087:23;2083:32;2080:52;;;2128:1;2125;2118:12;2080:52;2151:26;2167:9;2151:26;:::i;2188:248::-;2253:6;2261;2314:2;2302:9;2293:7;2289:23;2285:32;2282:52;;;2330:1;2327;2320:12;2282:52;2353:26;2369:9;2353:26;:::i;2441:456::-;2518:6;2526;2534;2587:2;2575:9;2566:7;2562:23;2558:32;2555:52;;;2603:1;2600;2593:12;2555:52;2642:9;2629:23;2661:31;2686:5;2661:31;:::i;:::-;2711:5;-1:-1:-1;2768:2:2;2753:18;;2740:32;2781:33;2740:32;2781:33;:::i;:::-;2441:456;;2833:7;;-1:-1:-1;;;2887:2:2;2872:18;;;;2859:32;;2441:456::o;2902:315::-;2967:6;2975;3028:2;3016:9;3007:7;3003:23;2999:32;2996:52;;;3044:1;3041;3034:12;2996:52;3083:9;3070:23;3102:31;3127:5;3102:31;:::i;:::-;3152:5;-1:-1:-1;3176:35:2;3207:2;3192:18;;3176:35;:::i;:::-;3166:45;;2902:315;;;;;:::o;3222:247::-;3281:6;3334:2;3322:9;3313:7;3309:23;3305:32;3302:52;;;3350:1;3347;3340:12;3302:52;3389:9;3376:23;3408:31;3433:5;3408:31;:::i;3663:156::-;3729:20;;3789:4;3778:16;;3768:27;;3758:55;;3809:1;3806;3799:12;3824:393;3902:6;3910;3918;3926;3979:3;3967:9;3958:7;3954:23;3950:33;3947:53;;;3996:1;3993;3986:12;3947:53;4019:27;4036:9;4019:27;:::i;:::-;4009:37;;4065:36;4097:2;4086:9;4082:18;4065:36;:::i;:::-;4055:46;;4120:36;4152:2;4141:9;4137:18;4120:36;:::i;:::-;4110:46;;4175:36;4207:2;4196:9;4192:18;4175:36;:::i;:::-;4165:46;;3824:393;;;;;;;:::o;4449:248::-;4514:6;4522;4575:2;4563:9;4554:7;4550:23;4546:32;4543:52;;;4591:1;4588;4581:12;4543:52;4627:9;4614:23;4604:33;;4656:35;4687:2;4676:9;4672:18;4656:35;:::i;5205:248::-;5273:6;5281;5334:2;5322:9;5313:7;5309:23;5305:32;5302:52;;;5350:1;5347;5340:12;5302:52;-1:-1:-1;;5373:23:2;;;5443:2;5428:18;;;5415:32;;-1:-1:-1;5205:248:2:o;5643:388::-;5711:6;5719;5772:2;5760:9;5751:7;5747:23;5743:32;5740:52;;;5788:1;5785;5778:12;5740:52;5827:9;5814:23;5846:31;5871:5;5846:31;:::i;:::-;5896:5;-1:-1:-1;5953:2:2;5938:18;;5925:32;5966:33;5925:32;5966:33;:::i;:::-;6018:7;6008:17;;;5643:388;;;;;:::o;6262:346::-;6464:2;6446:21;;;6503:2;6483:18;;;6476:30;-1:-1:-1;;;6537:2:2;6522:18;;6515:52;6599:2;6584:18;;6262:346::o;6950:127::-;7011:10;7006:3;7002:20;6999:1;6992:31;7042:4;7039:1;7032:15;7066:4;7063:1;7056:15;7082:136;7117:3;-1:-1:-1;;;7138:22:2;;7135:48;;;7163:18;;:::i;:::-;-1:-1:-1;7203:1:2;7199:13;;7082:136::o;7626:422::-;7715:1;7758:5;7715:1;7772:270;7793:7;7783:8;7780:21;7772:270;;;7852:4;7848:1;7844:6;7840:17;7834:4;7831:27;7828:53;;;7861:18;;:::i;:::-;7911:7;7901:8;7897:22;7894:55;;;7931:16;;;;7894:55;8010:22;;;;7970:15;;;;7772:270;;;7776:3;7626:422;;;;;:::o;8053:806::-;8102:5;8132:8;8122:80;;-1:-1:-1;8173:1:2;8187:5;;8122:80;8221:4;8211:76;;-1:-1:-1;8258:1:2;8272:5;;8211:76;8303:4;8321:1;8316:59;;;;8389:1;8384:130;;;;8296:218;;8316:59;8346:1;8337:10;;8360:5;;;8384:130;8421:3;8411:8;8408:17;8405:43;;;8428:18;;:::i;:::-;-1:-1:-1;;8484:1:2;8470:16;;8499:5;;8296:218;;8598:2;8588:8;8585:16;8579:3;8573:4;8570:13;8566:36;8560:2;8550:8;8547:16;8542:2;8536:4;8533:12;8529:35;8526:77;8523:159;;;-1:-1:-1;8635:19:2;;;8667:5;;8523:159;8714:34;8739:8;8733:4;8714:34;:::i;:::-;8784:6;8780:1;8776:6;8772:19;8763:7;8760:32;8757:58;;;8795:18;;:::i;:::-;8833:20;;8053:806;-1:-1:-1;;;8053:806:2:o;8864:140::-;8922:5;8951:47;8992:4;8982:8;8978:19;8972:4;8951:47;:::i;9009:168::-;9049:7;9115:1;9111;9107:6;9103:14;9100:1;9097:21;9092:1;9085:9;9078:17;9074:45;9071:71;;;9122:18;;:::i;:::-;-1:-1:-1;9162:9:2;;9009:168::o;9182:127::-;9243:10;9238:3;9234:20;9231:1;9224:31;9274:4;9271:1;9264:15;9298:4;9295:1;9288:15;9314:112;9346:1;9372;9362:35;;9377:18;;:::i;:::-;-1:-1:-1;9411:9:2;;9314:112::o;9431:125::-;9471:4;9499:1;9496;9493:8;9490:34;;;9504:18;;:::i;:::-;-1:-1:-1;9541:9:2;;9431:125::o;10113:406::-;10315:2;10297:21;;;10354:2;10334:18;;;10327:30;10393:34;10388:2;10373:18;;10366:62;-1:-1:-1;;;10459:2:2;10444:18;;10437:40;10509:3;10494:19;;10113:406::o;10833:204::-;10871:3;10907:4;10904:1;10900:12;10939:4;10936:1;10932:12;10974:3;10968:4;10964:14;10959:3;10956:23;10953:49;;;10982:18;;:::i;:::-;11018:13;;10833:204;-1:-1:-1;;;10833:204:2:o;11466:120::-;11506:1;11532;11522:35;;11537:18;;:::i;:::-;-1:-1:-1;11571:9:2;;11466:120::o;14033:128::-;14073:3;14104:1;14100:6;14097:1;14094:13;14091:39;;;14110:18;;:::i;:::-;-1:-1:-1;14146:9:2;;14033:128::o;14166:553::-;14205:7;-1:-1:-1;;;;;14275:9:2;;;14303;;;14328:11;;;14347:10;;;14341:17;;14324:35;14321:61;;;14362:18;;:::i;:::-;-1:-1:-1;;;14438:1:2;14431:9;;14456:11;;;14476;;;14469:19;;14452:37;14449:63;;;14492:18;;:::i;:::-;14538:1;14535;14531:9;14521:19;;14585:1;14581:2;14576:11;14573:1;14569:19;14564:2;14560;14556:11;14552:37;14549:63;;;14592:18;;:::i;:::-;14657:1;14653:2;14648:11;14645:1;14641:19;14636:2;14632;14628:11;14624:37;14621:63;;;14664:18;;:::i;:::-;-1:-1:-1;;;14704:9:2;;;;;14166:553;-1:-1:-1;;;14166:553:2:o;15623:127::-;15684:10;15679:3;15675:20;15672:1;15665:31;15715:4;15712:1;15705:15;15739:4;15736:1;15729:15;15755:251;15825:6;15878:2;15866:9;15857:7;15853:23;15849:32;15846:52;;;15894:1;15891;15884:12;15846:52;15926:9;15920:16;15945:31;15970:5;15945:31;:::i;16011:980::-;16273:4;16321:3;16310:9;16306:19;16352:6;16341:9;16334:25;16378:2;16416:6;16411:2;16400:9;16396:18;16389:34;16459:3;16454:2;16443:9;16439:18;16432:31;16483:6;16518;16512:13;16549:6;16541;16534:22;16587:3;16576:9;16572:19;16565:26;;16626:2;16618:6;16614:15;16600:29;;16647:1;16657:195;16671:6;16668:1;16665:13;16657:195;;;16736:13;;-1:-1:-1;;;;;16732:39:2;16720:52;;16827:15;;;;16792:12;;;;16768:1;16686:9;16657:195;;;-1:-1:-1;;;;;;;16908:32:2;;;;16903:2;16888:18;;16881:60;-1:-1:-1;;;16972:3:2;16957:19;16950:35;16869:3;16011:980;-1:-1:-1;;;16011:980:2:o;17608:306::-;17696:6;17704;17712;17765:2;17753:9;17744:7;17740:23;17736:32;17733:52;;;17781:1;17778;17771:12;17733:52;17810:9;17804:16;17794:26;;17860:2;17849:9;17845:18;17839:25;17829:35;;17904:2;17893:9;17889:18;17883:25;17873:35;;17608:306;;;;;:::o

Swarm Source

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