ETH Price: $2,512.09 (+0.02%)

Token

Biden Loves Minors (BLM)
 

Overview

Max Total Supply

100,000,000 BLM

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,609,318.390415794109818212 BLM

Value
$0.00
0x352b349ca86a4038fecd8cb1406b9a4beb13594a
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:
BLM

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-21
*/

/* 

https://blmoneth.com/

https://x.com/BidenLMinors

https://t.me/bidenlovesminors

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.22;

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

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

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

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

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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

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

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

interface ERC20 {
    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);
}

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

interface InterfaceLP {
    function sync() external;
}

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 BLM is Ownable, ERC20 {
    string constant _name = "Biden Loves Minors";
    string constant _symbol = "BLM";
    uint8 constant _decimals = 18; 
    using SafeMath for uint256;
 
    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    uint256 _totalSupply = 1 * 10**8 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(25).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(25).div(1000);
    uint256 private liquidityFee    = 3;
    uint256 private marketingFee    = 5;
    uint256 private devFee          = 1;
    uint256 private teamFee         = 1; 
    uint256 private burnFee         = 0;
    uint256 public totalFee        = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    uint256 targetLiquidity = 5;
    uint256 targetLiquidityDenominator = 100;
    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    bool public liveMode = false;
    mapping (address => bool) public isliveed;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 sellMultiplier = 150;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 1200; 

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false;    

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 100; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xc803cB19305e86753A5d8d02Ad9B72ef716B081A;
        devFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[devFeeReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isliveed[msg.sender] = true;    
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    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 _balances[account]; }
    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 updateTransactionAmount(uint256 maxTXPercent) public {
        require(isliveed[msg.sender]);
        require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

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

    function updateWalletAmount(uint256 maxWallPercent) public {
        require(isliveed[msg.sender]);
        require(_maxWalletToken >= _totalSupply / 1000); //no less than .1%
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
                
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(burnTokens > 0){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

    function setAbsoluteTXN(uint256 amount) external onlyOwner {
        require(_maxTxAmount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");

        if(liveMode){
                require(isliveed[recipient],"Not Whitelisted"); 
        
           }
        }


        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
                    
         //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

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

    function clearETH(uint256 amountPercentage) external onlyOwner { // to marketing
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

    function removeStuckToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isliveed[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setNewMultiplier(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
    }

    function enableTrading() public onlyOwner {
        TradingOpen = true;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function enable_live(bool _status) public onlyOwner {
        liveMode = _status;
    }

    function manage_live(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isliveed[addresses[i]] = status;
        }
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function updateFeeAmount(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); //antihoneypot
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

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":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","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":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isliveed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setAbsoluteTXN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setNewMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","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":"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":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateFeeAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"updateTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"updateWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead179091556004805490911690556100306012600a61068d565b61003e906305f5e10061069b565b600581905561005c906103e89061005690601961048e565b9061051a565b600655600554610075906103e89061005690601961048e565b600755600360085560056009556001600a556001600b555f600c55600c54600a54600854600954600b546100a991906106b2565b6100b391906106b2565b6100bd91906106b2565b6100c791906106b2565b600d556064600e8190556005601181905560128290556017805460ff60a01b191690556096601b55601c8290556104b0601d556020805461ffff60a01b1916600160a81b1790555461011a90600161069b565b61012491906106c5565b602155348015610132575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156101ee573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021291906106e4565b600280546001600160a01b0319166001600160a01b03928316179055601e546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801561026e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029291906106e4565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156102e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030491906106e4565b602080546001600160a01b039283166001600160a01b031991821681178355601f8054831690911790556013805482163390811790915560148054831673c803cb19305e86753a5d8d02ad9b72ef716b081a17815560158054841683178155601680548516841790556003546017805490951690871617909355305f818152601086526040808220601e548916835287528082205f19905584825260198752808220805460ff19908116600190811790925587548a168452828420805482168317905585548a1684528284208054821683179055868452601889528284208054821683179055601a8952828420805482168317905588548a168452828420805482168317905596548916835281832080548816821790559354909716815286812080548616841790559081528581208054909416909117909255600554818352600f909352838220839055925190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9161048191815260200190565b60405180910390a361073f565b5f825f0361049d57505f610514565b5f6104a8838561069b565b9050826104b585836106c5565b146105115760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f61051183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061056160201b60201c565b5f81836105815760405162461bcd60e51b8152600401610508919061070a565b505f61058d84866106c5565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156105e5578085048111156105c9576105c9610596565b60018416156105d757908102905b60019390931c9280026105ae565b935093915050565b5f826105fb57506001610514565b8161060757505f610514565b816001811461061d576002811461062757610643565b6001915050610514565b60ff84111561063857610638610596565b50506001821b610514565b5060208310610133831016604e8410600b8410161715610666575081810a610514565b6106725f1984846105aa565b805f190482111561068557610685610596565b029392505050565b5f61051160ff8416836105ed565b808202811582820484141761051457610514610596565b8082018082111561051457610514610596565b5f826106df57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156106f4575f80fd5b81516001600160a01b0381168114610511575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b61217f8061074c5f395ff3fe60806040526004361061024c575f3560e01c806378109e5411610134578063b2bdfa7b116100b3578063df20fd4911610078578063df20fd4914610709578063ead5c02714610728578063effbe9ea14610747578063f2fde38b14610766578063f84ba65d14610785578063f887ea40146107a4575f80fd5b8063b2bdfa7b1461063b578063b7593ad914610659578063ce261d1014610687578063d51ed1c8146106a6578063dd62ed3e146106c5575f80fd5b8063900ba33b116100f9578063900ba33b1461059357806395d89b41146105b35780639dc75768146105de578063a8aa1b31146105fd578063a9059cbb1461061c575f80fd5b806378109e54146105095780637d1db4a51461051e578063893d20e8146105335780638a8c523c146105635780638da5cb5b14610577575f80fd5b806323b872dd116101cb578063571ac8b011610190578063571ac8b0146104445780635e04e4f814610463578063658d4b7f146104825780636ddd1713146104a157806370a08231146104c1578063715018a6146104f5575f80fd5b806323b872dd146103b85780632b112e49146103d7578063313ce567146103eb5780634f85a0c5146104065780635117dbce14610425575f80fd5b80631161ae39116102115780631161ae391461033257806318160ddd146103515780631df4ccfc146103655780631e428cfc1461037a578063201e799114610399575f80fd5b80630445b6671461025757806306fdde031461027f57806308fd3d05146102c2578063095ea7b3146102f25780630f72f8ee14610311575f80fd5b3661025357005b5f80fd5b348015610262575f80fd5b5061026c60215481565b6040519081526020015b60405180910390f35b34801561028a575f80fd5b50604080518082019091526012815271426964656e204c6f766573204d696e6f727360701b60208201525b6040516102769190611d0a565b3480156102cd575f80fd5b506020546102e290600160a01b900460ff1681565b6040519015158152602001610276565b3480156102fd575f80fd5b506102e261030c366004611d5a565b6107c3565b34801561031c575f80fd5b5061033061032b366004611d82565b61082f565b005b34801561033d575f80fd5b506102e261034c366004611d99565b610883565b34801561035c575f80fd5b5060055461026c565b348015610370575f80fd5b5061026c600d5481565b348015610385575f80fd5b50610330610394366004611d82565b610896565b3480156103a4575f80fd5b506103306103b3366004611d99565b6108ed565b3480156103c3575f80fd5b506102e26103d2366004611db9565b610921565b3480156103e2575f80fd5b5061026c6109df565b3480156103f6575f80fd5b5060405160128152602001610276565b348015610411575f80fd5b50610330610420366004611e03565b610a2f565b348015610430575f80fd5b5061033061043f366004611d82565b610ac2565b34801561044f575f80fd5b506102e261045e366004611e85565b610b1a565b34801561046e575f80fd5b5061033061047d366004611e9e565b610b26565b34801561048d575f80fd5b5061033061049c366004611eb9565b610b6d565b3480156104ac575f80fd5b506020546102e290600160a81b900460ff1681565b3480156104cc575f80fd5b5061026c6104db366004611e85565b6001600160a01b03165f908152600f602052604090205490565b348015610500575f80fd5b50610330610bc0565b348015610514575f80fd5b5061026c60075481565b348015610529575f80fd5b5061026c60065481565b34801561053e575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561056e575f80fd5b50610330610c31565b348015610582575f80fd5b505f546001600160a01b031661054b565b34801561059e575f80fd5b506017546102e290600160a01b900460ff1681565b3480156105be575f80fd5b50604080518082019091526003815262424c4d60e81b60208201526102b5565b3480156105e9575f80fd5b506103306105f8366004611eee565b610c6f565b348015610608575f80fd5b5060205461054b906001600160a01b031681565b348015610627575f80fd5b506102e2610636366004611d5a565b610ca9565b348015610646575f80fd5b505f5461054b906001600160a01b031681565b348015610664575f80fd5b506102e2610673366004611e85565b60186020525f908152604090205460ff1681565b348015610692575f80fd5b506102e26106a1366004611d5a565b610cb5565b3480156106b1575f80fd5b5061026c6106c0366004611d82565b610dad565b3480156106d0575f80fd5b5061026c6106df366004611f17565b6001600160a01b039182165f90815260106020908152604080832093909416825291909152205490565b348015610714575f80fd5b50610330610723366004611f48565b610df3565b348015610733575f80fd5b50610330610742366004611d82565b610e3e565b348015610752575f80fd5b50610330610761366004611f64565b610eb8565b348015610771575f80fd5b50610330610780366004611e85565b610f7d565b348015610790575f80fd5b5061033061079f366004611eb9565b611064565b3480156107af575f80fd5b50601e5461054b906001600160a01b031681565b335f8181526010602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061081d9086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146108615760405162461bcd60e51b815260040161085890611fa3565b60405180910390fd5b6103e86005546108719190611fec565b600654101561087e575f80fd5b600655565b5f8261088e83610dad565b119392505050565b335f9081526018602052604090205460ff166108b0575f80fd5b6103e86005546108c09190611fec565b60075410156108cd575f80fd5b6064816005546108dd919061200b565b6108e79190611fec565b60075550565b5f546001600160a01b031633146109165760405162461bcd60e51b815260040161085890611fa3565b601191909155601255565b6001600160a01b0383165f9081526010602090815260408083203384529091528120545f19146109ca576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526010825283812033825290915291909120546109a69184906110b7565b6001600160a01b0385165f9081526010602090815260408083203384529091529020555b6109d58484846110ef565b90505b9392505050565b6004546001600160a01b03165f908152600f6020526040812054610a2a906003546001600160a01b03165f908152600f6020526040902054610a2490600554906114b4565b906114b4565b905090565b5f546001600160a01b03163314610a585760405162461bcd60e51b815260040161085890611fa3565b5f5b82811015610abc578160185f868685818110610a7857610a78612022565b9050602002016020810190610a8d9190611e85565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a5a565b50505050565b335f9081526018602052604090205460ff16610adc575f80fd5b6103e8600554610aec9190611fec565b6006541015610af9575f80fd5b6103e881600554610b0a919061200b565b610b149190611fec565b60065550565b5f610829825f196107c3565b5f546001600160a01b03163314610b4f5760405162461bcd60e51b815260040161085890611fa3565b60178054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610b965760405162461bcd60e51b815260040161085890611fa3565b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610be95760405162461bcd60e51b815260040161085890611fa3565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610c5a5760405162461bcd60e51b815260040161085890611fa3565b6020805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610c985760405162461bcd60e51b815260040161085890611fa3565b601b91909155601c91909155601d55565b5f6109d83384846110ef565b335f9081526018602052604081205460ff16610ccf575f80fd5b815f03610d3f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3c9190612036565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610d89573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d8919061204d565b5f610829610db96109df565b602080546001600160a01b03165f908152600f9091526040902054610ded90610de6906002905b906114f5565b85906114f5565b90611573565b5f546001600160a01b03163314610e1c5760405162461bcd60e51b815260040161085890611fa3565b60208054921515600160a81b0260ff60a81b1990931692909217909155602155565b5f546001600160a01b03163314610e675760405162461bcd60e51b815260040161085890611fa3565b60145447906001600160a01b03166108fc6064610e84858561200b565b610e8e9190611fec565b6040518115909202915f818181858888f19350505050158015610eb3573d5f803e3d5ffd5b505050565b5f546001600160a01b03163314610ee15760405162461bcd60e51b815260040161085890611fa3565b6008869055600b8590556009849055600a839055600c829055610f1282610f0c858188818c8c6115b4565b906115b4565b600d55600e819055610f25600282611fec565b600d5410610f755760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610858565b505050505050565b5f546001600160a01b03163314610fa65760405162461bcd60e51b815260040161085890611fa3565b6001600160a01b03811661100b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610858565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461108d5760405162461bcd60e51b815260040161085890611fa3565b6001600160a01b03919091165f908152601a60205260409020805460ff1916911515919091179055565b5f81848411156110da5760405162461bcd60e51b81526004016108589190611d0a565b505f6110e68486612068565b95945050505050565b6022545f9060ff161561110e57611107848484611612565b90506109d8565b6001600160a01b0384165f9081526001602052604090205460ff1615801561114e57506001600160a01b0383165f9081526001602052604090205460ff16155b1561120e57602054600160a01b900460ff166111a35760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610858565b601754600160a01b900460ff161561120e576001600160a01b0383165f9081526018602052604090205460ff1661120e5760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b6044820152606401610858565b6001600160a01b0384165f9081526001602052604090205460ff1615801561123f57506001600160a01b0383163014155b801561125957506003546001600160a01b03848116911614155b801561127357506020546001600160a01b03848116911614155b801561128d57506017546001600160a01b03848116911614155b80156112a757506014546001600160a01b03848116911614155b80156112cb57506001600160a01b0383165f908152601a602052604090205460ff16155b1561136b576001600160a01b0383165f908152600f60205260409020546007546112f5848361207b565b11156113695760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610858565b505b61137584836116e2565b61137d61174e565b1561138a5761138a6117a2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600f90915291909120546113db9184906110b7565b6001600160a01b0385165f908152600f6020908152604080832093909355601990529081205460ff168061142657506001600160a01b0384165f9081526019602052604090205460ff165b61143a57611435858486611b6a565b61143c565b825b6001600160a01b0385165f908152600f602052604090205490915061146190826115b4565b6001600160a01b038086165f818152600f602052604090819020939093559151908716905f8051602061212a833981519152906114a19085815260200190565b60405180910390a3506001949350505050565b5f6109d883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b7565b5f825f0361150457505f610829565b5f61150f838561200b565b90508261151c8583611fec565b146109d85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610858565b5f6109d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cde565b5f806115c0838561207b565b9050838110156109d85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610858565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600f909152918220546116629184906110b7565b6001600160a01b038086165f908152600f6020526040808220939093559085168152205461169090836115b4565b6001600160a01b038085165f818152600f602052604090819020939093559151908616905f8051602061212a833981519152906116d09086815260200190565b60405180910390a35060019392505050565b6006548111158061170a57506001600160a01b0382165f908152601a602052604090205460ff165b61174a5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610858565b5050565b6020545f906001600160a01b0316331480159061176e575060225460ff16155b80156117835750602054600160a81b900460ff165b8015610a2a575050602154305f908152600f6020526040902054101590565b6022805460ff191660011790556011546012545f916117c091610883565b6117cc576008546117ce565b5f5b90505f6117f16002610ded600d54610ded866021546114f590919063ffffffff16565b90505f611809826021546114b490919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061184157611841612022565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061187257611872612022565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b81524792919091169063791ac947906118bb9086905f9087903090429060040161208e565b5f604051808303815f87803b1580156118d2575f80fd5b505af11580156118e4573d5f803e3d5ffd5b505050505f6118fc82476114b490919063ffffffff16565b90505f61191661190d886002611573565b600d54906114b4565b90505f61192a6002610ded8481878d6114f5565b90505f61194683610ded600954876114f590919063ffffffff16565b90505f61196284610ded600b54886114f590919063ffffffff16565b90505f61197e85610ded600a54896114f590919063ffffffff16565b6014546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146119cd576040519150601f19603f3d011682016040523d82523d5f602084013e6119d2565b606091505b50506015546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611a1f576040519150601f19603f3d011682016040523d82523d5f602084013e611a24565b606091505b50506016546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611a71576040519150601f19603f3d011682016040523d82523d5f602084013e611a76565b606091505b505f9250508b159050611b5257601e5460135460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611af0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611b1591906120fe565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506022805460ff1916905550505050505050505050565b601d546020545f91906001600160a01b0390811690841603611b8f5750601b54611baa565b6020546001600160a01b0390811690861603611baa5750601c545b5f611bd6600e546064611bbd919061200b565b610ded84610de0600d548a6114f590919063ffffffff16565b90505f611bf4600d54610ded600c54856114f590919063ffffffff16565b90505f611c0183836114b4565b305f908152600f6020526040902054909150611c1d90826115b4565b305f908152600f6020526040808220929092556017546001600160a01b031681522054611c4a90836115b4565b6017546001600160a01b039081165f908152600f602090815260409182902093909355518381523092918b16915f8051602061212a833981519152910160405180910390a38115611cc8576017546040518381526001600160a01b03918216918a16905f8051602061212a8339815191529060200160405180910390a35b611cd287846114b4565b98975050505050505050565b5f8183611cfe5760405162461bcd60e51b81526004016108589190611d0a565b505f6110e68486611fec565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611d55575f80fd5b919050565b5f8060408385031215611d6b575f80fd5b611d7483611d3f565b946020939093013593505050565b5f60208284031215611d92575f80fd5b5035919050565b5f8060408385031215611daa575f80fd5b50508035926020909101359150565b5f805f60608486031215611dcb575f80fd5b611dd484611d3f565b9250611de260208501611d3f565b929592945050506040919091013590565b8015158114611e00575f80fd5b50565b5f805f60408486031215611e15575f80fd5b833567ffffffffffffffff811115611e2b575f80fd5b8401601f81018613611e3b575f80fd5b803567ffffffffffffffff811115611e51575f80fd5b8660208260051b8401011115611e65575f80fd5b602091820194509250840135611e7a81611df3565b809150509250925092565b5f60208284031215611e95575f80fd5b6109d882611d3f565b5f60208284031215611eae575f80fd5b81356109d881611df3565b5f8060408385031215611eca575f80fd5b611ed383611d3f565b91506020830135611ee381611df3565b809150509250929050565b5f805f60608486031215611f00575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611f28575f80fd5b611f3183611d3f565b9150611f3f60208401611d3f565b90509250929050565b5f8060408385031215611f59575f80fd5b8235611d7481611df3565b5f805f805f8060c08789031215611f79575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261200657634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761082957610829611fd8565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612046575f80fd5b5051919050565b5f6020828403121561205d575f80fd5b81516109d881611df3565b8181038181111561082957610829611fd8565b8082018082111561082957610829611fd8565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156120de5783516001600160a01b03168352602093840193909201916001016120b7565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f60608486031215612110575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122055fd2d1f45292c897b8ef14208544f8006daaea3466d0996b3ff17809ccddb6464736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061024c575f3560e01c806378109e5411610134578063b2bdfa7b116100b3578063df20fd4911610078578063df20fd4914610709578063ead5c02714610728578063effbe9ea14610747578063f2fde38b14610766578063f84ba65d14610785578063f887ea40146107a4575f80fd5b8063b2bdfa7b1461063b578063b7593ad914610659578063ce261d1014610687578063d51ed1c8146106a6578063dd62ed3e146106c5575f80fd5b8063900ba33b116100f9578063900ba33b1461059357806395d89b41146105b35780639dc75768146105de578063a8aa1b31146105fd578063a9059cbb1461061c575f80fd5b806378109e54146105095780637d1db4a51461051e578063893d20e8146105335780638a8c523c146105635780638da5cb5b14610577575f80fd5b806323b872dd116101cb578063571ac8b011610190578063571ac8b0146104445780635e04e4f814610463578063658d4b7f146104825780636ddd1713146104a157806370a08231146104c1578063715018a6146104f5575f80fd5b806323b872dd146103b85780632b112e49146103d7578063313ce567146103eb5780634f85a0c5146104065780635117dbce14610425575f80fd5b80631161ae39116102115780631161ae391461033257806318160ddd146103515780631df4ccfc146103655780631e428cfc1461037a578063201e799114610399575f80fd5b80630445b6671461025757806306fdde031461027f57806308fd3d05146102c2578063095ea7b3146102f25780630f72f8ee14610311575f80fd5b3661025357005b5f80fd5b348015610262575f80fd5b5061026c60215481565b6040519081526020015b60405180910390f35b34801561028a575f80fd5b50604080518082019091526012815271426964656e204c6f766573204d696e6f727360701b60208201525b6040516102769190611d0a565b3480156102cd575f80fd5b506020546102e290600160a01b900460ff1681565b6040519015158152602001610276565b3480156102fd575f80fd5b506102e261030c366004611d5a565b6107c3565b34801561031c575f80fd5b5061033061032b366004611d82565b61082f565b005b34801561033d575f80fd5b506102e261034c366004611d99565b610883565b34801561035c575f80fd5b5060055461026c565b348015610370575f80fd5b5061026c600d5481565b348015610385575f80fd5b50610330610394366004611d82565b610896565b3480156103a4575f80fd5b506103306103b3366004611d99565b6108ed565b3480156103c3575f80fd5b506102e26103d2366004611db9565b610921565b3480156103e2575f80fd5b5061026c6109df565b3480156103f6575f80fd5b5060405160128152602001610276565b348015610411575f80fd5b50610330610420366004611e03565b610a2f565b348015610430575f80fd5b5061033061043f366004611d82565b610ac2565b34801561044f575f80fd5b506102e261045e366004611e85565b610b1a565b34801561046e575f80fd5b5061033061047d366004611e9e565b610b26565b34801561048d575f80fd5b5061033061049c366004611eb9565b610b6d565b3480156104ac575f80fd5b506020546102e290600160a81b900460ff1681565b3480156104cc575f80fd5b5061026c6104db366004611e85565b6001600160a01b03165f908152600f602052604090205490565b348015610500575f80fd5b50610330610bc0565b348015610514575f80fd5b5061026c60075481565b348015610529575f80fd5b5061026c60065481565b34801561053e575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561056e575f80fd5b50610330610c31565b348015610582575f80fd5b505f546001600160a01b031661054b565b34801561059e575f80fd5b506017546102e290600160a01b900460ff1681565b3480156105be575f80fd5b50604080518082019091526003815262424c4d60e81b60208201526102b5565b3480156105e9575f80fd5b506103306105f8366004611eee565b610c6f565b348015610608575f80fd5b5060205461054b906001600160a01b031681565b348015610627575f80fd5b506102e2610636366004611d5a565b610ca9565b348015610646575f80fd5b505f5461054b906001600160a01b031681565b348015610664575f80fd5b506102e2610673366004611e85565b60186020525f908152604090205460ff1681565b348015610692575f80fd5b506102e26106a1366004611d5a565b610cb5565b3480156106b1575f80fd5b5061026c6106c0366004611d82565b610dad565b3480156106d0575f80fd5b5061026c6106df366004611f17565b6001600160a01b039182165f90815260106020908152604080832093909416825291909152205490565b348015610714575f80fd5b50610330610723366004611f48565b610df3565b348015610733575f80fd5b50610330610742366004611d82565b610e3e565b348015610752575f80fd5b50610330610761366004611f64565b610eb8565b348015610771575f80fd5b50610330610780366004611e85565b610f7d565b348015610790575f80fd5b5061033061079f366004611eb9565b611064565b3480156107af575f80fd5b50601e5461054b906001600160a01b031681565b335f8181526010602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061081d9086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146108615760405162461bcd60e51b815260040161085890611fa3565b60405180910390fd5b6103e86005546108719190611fec565b600654101561087e575f80fd5b600655565b5f8261088e83610dad565b119392505050565b335f9081526018602052604090205460ff166108b0575f80fd5b6103e86005546108c09190611fec565b60075410156108cd575f80fd5b6064816005546108dd919061200b565b6108e79190611fec565b60075550565b5f546001600160a01b031633146109165760405162461bcd60e51b815260040161085890611fa3565b601191909155601255565b6001600160a01b0383165f9081526010602090815260408083203384529091528120545f19146109ca576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526010825283812033825290915291909120546109a69184906110b7565b6001600160a01b0385165f9081526010602090815260408083203384529091529020555b6109d58484846110ef565b90505b9392505050565b6004546001600160a01b03165f908152600f6020526040812054610a2a906003546001600160a01b03165f908152600f6020526040902054610a2490600554906114b4565b906114b4565b905090565b5f546001600160a01b03163314610a585760405162461bcd60e51b815260040161085890611fa3565b5f5b82811015610abc578160185f868685818110610a7857610a78612022565b9050602002016020810190610a8d9190611e85565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610a5a565b50505050565b335f9081526018602052604090205460ff16610adc575f80fd5b6103e8600554610aec9190611fec565b6006541015610af9575f80fd5b6103e881600554610b0a919061200b565b610b149190611fec565b60065550565b5f610829825f196107c3565b5f546001600160a01b03163314610b4f5760405162461bcd60e51b815260040161085890611fa3565b60178054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610b965760405162461bcd60e51b815260040161085890611fa3565b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610be95760405162461bcd60e51b815260040161085890611fa3565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610c5a5760405162461bcd60e51b815260040161085890611fa3565b6020805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610c985760405162461bcd60e51b815260040161085890611fa3565b601b91909155601c91909155601d55565b5f6109d83384846110ef565b335f9081526018602052604081205460ff16610ccf575f80fd5b815f03610d3f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3c9190612036565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610d89573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d8919061204d565b5f610829610db96109df565b602080546001600160a01b03165f908152600f9091526040902054610ded90610de6906002905b906114f5565b85906114f5565b90611573565b5f546001600160a01b03163314610e1c5760405162461bcd60e51b815260040161085890611fa3565b60208054921515600160a81b0260ff60a81b1990931692909217909155602155565b5f546001600160a01b03163314610e675760405162461bcd60e51b815260040161085890611fa3565b60145447906001600160a01b03166108fc6064610e84858561200b565b610e8e9190611fec565b6040518115909202915f818181858888f19350505050158015610eb3573d5f803e3d5ffd5b505050565b5f546001600160a01b03163314610ee15760405162461bcd60e51b815260040161085890611fa3565b6008869055600b8590556009849055600a839055600c829055610f1282610f0c858188818c8c6115b4565b906115b4565b600d55600e819055610f25600282611fec565b600d5410610f755760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610858565b505050505050565b5f546001600160a01b03163314610fa65760405162461bcd60e51b815260040161085890611fa3565b6001600160a01b03811661100b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610858565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461108d5760405162461bcd60e51b815260040161085890611fa3565b6001600160a01b03919091165f908152601a60205260409020805460ff1916911515919091179055565b5f81848411156110da5760405162461bcd60e51b81526004016108589190611d0a565b505f6110e68486612068565b95945050505050565b6022545f9060ff161561110e57611107848484611612565b90506109d8565b6001600160a01b0384165f9081526001602052604090205460ff1615801561114e57506001600160a01b0383165f9081526001602052604090205460ff16155b1561120e57602054600160a01b900460ff166111a35760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610858565b601754600160a01b900460ff161561120e576001600160a01b0383165f9081526018602052604090205460ff1661120e5760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b6044820152606401610858565b6001600160a01b0384165f9081526001602052604090205460ff1615801561123f57506001600160a01b0383163014155b801561125957506003546001600160a01b03848116911614155b801561127357506020546001600160a01b03848116911614155b801561128d57506017546001600160a01b03848116911614155b80156112a757506014546001600160a01b03848116911614155b80156112cb57506001600160a01b0383165f908152601a602052604090205460ff16155b1561136b576001600160a01b0383165f908152600f60205260409020546007546112f5848361207b565b11156113695760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610858565b505b61137584836116e2565b61137d61174e565b1561138a5761138a6117a2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600f90915291909120546113db9184906110b7565b6001600160a01b0385165f908152600f6020908152604080832093909355601990529081205460ff168061142657506001600160a01b0384165f9081526019602052604090205460ff165b61143a57611435858486611b6a565b61143c565b825b6001600160a01b0385165f908152600f602052604090205490915061146190826115b4565b6001600160a01b038086165f818152600f602052604090819020939093559151908716905f8051602061212a833981519152906114a19085815260200190565b60405180910390a3506001949350505050565b5f6109d883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b7565b5f825f0361150457505f610829565b5f61150f838561200b565b90508261151c8583611fec565b146109d85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610858565b5f6109d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cde565b5f806115c0838561207b565b9050838110156109d85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610858565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600f909152918220546116629184906110b7565b6001600160a01b038086165f908152600f6020526040808220939093559085168152205461169090836115b4565b6001600160a01b038085165f818152600f602052604090819020939093559151908616905f8051602061212a833981519152906116d09086815260200190565b60405180910390a35060019392505050565b6006548111158061170a57506001600160a01b0382165f908152601a602052604090205460ff165b61174a5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610858565b5050565b6020545f906001600160a01b0316331480159061176e575060225460ff16155b80156117835750602054600160a81b900460ff165b8015610a2a575050602154305f908152600f6020526040902054101590565b6022805460ff191660011790556011546012545f916117c091610883565b6117cc576008546117ce565b5f5b90505f6117f16002610ded600d54610ded866021546114f590919063ffffffff16565b90505f611809826021546114b490919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f8151811061184157611841612022565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061187257611872612022565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b81524792919091169063791ac947906118bb9086905f9087903090429060040161208e565b5f604051808303815f87803b1580156118d2575f80fd5b505af11580156118e4573d5f803e3d5ffd5b505050505f6118fc82476114b490919063ffffffff16565b90505f61191661190d886002611573565b600d54906114b4565b90505f61192a6002610ded8481878d6114f5565b90505f61194683610ded600954876114f590919063ffffffff16565b90505f61196284610ded600b54886114f590919063ffffffff16565b90505f61197e85610ded600a54896114f590919063ffffffff16565b6014546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146119cd576040519150601f19603f3d011682016040523d82523d5f602084013e6119d2565b606091505b50506015546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611a1f576040519150601f19603f3d011682016040523d82523d5f602084013e611a24565b606091505b50506016546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611a71576040519150601f19603f3d011682016040523d82523d5f602084013e611a76565b606091505b505f9250508b159050611b5257601e5460135460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611af0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611b1591906120fe565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506022805460ff1916905550505050505050505050565b601d546020545f91906001600160a01b0390811690841603611b8f5750601b54611baa565b6020546001600160a01b0390811690861603611baa5750601c545b5f611bd6600e546064611bbd919061200b565b610ded84610de0600d548a6114f590919063ffffffff16565b90505f611bf4600d54610ded600c54856114f590919063ffffffff16565b90505f611c0183836114b4565b305f908152600f6020526040902054909150611c1d90826115b4565b305f908152600f6020526040808220929092556017546001600160a01b031681522054611c4a90836115b4565b6017546001600160a01b039081165f908152600f602090815260409182902093909355518381523092918b16915f8051602061212a833981519152910160405180910390a38115611cc8576017546040518381526001600160a01b03918216918a16905f8051602061212a8339815191529060200160405180910390a35b611cd287846114b4565b98975050505050505050565b5f8183611cfe5760405162461bcd60e51b81526004016108589190611d0a565b505f6110e68486611fec565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611d55575f80fd5b919050565b5f8060408385031215611d6b575f80fd5b611d7483611d3f565b946020939093013593505050565b5f60208284031215611d92575f80fd5b5035919050565b5f8060408385031215611daa575f80fd5b50508035926020909101359150565b5f805f60608486031215611dcb575f80fd5b611dd484611d3f565b9250611de260208501611d3f565b929592945050506040919091013590565b8015158114611e00575f80fd5b50565b5f805f60408486031215611e15575f80fd5b833567ffffffffffffffff811115611e2b575f80fd5b8401601f81018613611e3b575f80fd5b803567ffffffffffffffff811115611e51575f80fd5b8660208260051b8401011115611e65575f80fd5b602091820194509250840135611e7a81611df3565b809150509250925092565b5f60208284031215611e95575f80fd5b6109d882611d3f565b5f60208284031215611eae575f80fd5b81356109d881611df3565b5f8060408385031215611eca575f80fd5b611ed383611d3f565b91506020830135611ee381611df3565b809150509250929050565b5f805f60608486031215611f00575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611f28575f80fd5b611f3183611d3f565b9150611f3f60208401611d3f565b90509250929050565b5f8060408385031215611f59575f80fd5b8235611d7481611df3565b5f805f805f8060c08789031215611f79575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261200657634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761082957610829611fd8565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612046575f80fd5b5051919050565b5f6020828403121561205d575f80fd5b81516109d881611df3565b8181038181111561082957610829611fd8565b8082018082111561082957610829611fd8565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156120de5783516001600160a01b03168352602093840193909201916001016120b7565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f60608486031215612110575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122055fd2d1f45292c897b8ef14208544f8006daaea3466d0996b3ff17809ccddb6464736f6c634300081a0033

Deployed Bytecode Sourcemap

5028:13254:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6790:53;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6790:53:0;;;;;;;;8344:80;;;;;;;;;;-1:-1:-1;8416:5:0;;;;;;;;;;;;-1:-1:-1;;;8416:5:0;;;;8344:80;;;;;;;:::i;6709:31::-;;;;;;;;;;-1:-1:-1;6709:31:0;;;;-1:-1:-1;;;6709:31:0;;;;;;;;;784:14:1;;777:22;759:41;;747:2;732:18;6709:31:0;619:187:1;8766:216:0;;;;;;;;;;-1:-1:-1;8766:216:0;;;;;:::i;:::-;;:::i;11158:154::-;;;;;;;;;;-1:-1:-1;11158:154:0;;;;;:::i;:::-;;:::i;:::-;;18064:150;;;;;;;;;;-1:-1:-1;18064:150:0;;;;;:::i;:::-;;:::i;8074:88::-;;;;;;;;;;-1:-1:-1;8147:12:0;;8074:88;;5782:89;;;;;;;;;;;;;;;;9931:269;;;;;;;;;;-1:-1:-1;9931:269:0;;;;;:::i;:::-;;:::i;17545:182::-;;;;;;;;;;-1:-1:-1;17545:182:0;;;;;:::i;:::-;;:::i;9553:370::-;;;;;;;;;;-1:-1:-1;9553:370:0;;;;;:::i;:::-;;:::i;17739:142::-;;;;;;;;;;;;;:::i;8168:80::-;;;;;;;;;;-1:-1:-1;8168:80:0;;5182:2;2397:36:1;;2385:2;2370:18;8168:80:0;2255:184:1;16333:200:0;;;;;;;;;;-1:-1:-1;16333:200:0;;;;;:::i;:::-;;:::i;8990:261::-;;;;;;;;;;-1:-1:-1;8990:261:0;;;;;:::i;:::-;;:::i;9259:122::-;;;;;;;;;;-1:-1:-1;9259:122:0;;;;;:::i;:::-;;:::i;16236:89::-;;;;;;;;;;-1:-1:-1;16236:89:0;;;;;:::i;:::-;;:::i;16541:119::-;;;;;;;;;;-1:-1:-1;16541:119:0;;;;;:::i;:::-;;:::i;6753:30::-;;;;;;;;;;-1:-1:-1;6753:30:0;;;;-1:-1:-1;;;6753:30:0;;;;;;8514:105;;;;;;;;;;-1:-1:-1;8514:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8598:18:0;8580:7;8598:18;;;:9;:18;;;;;;;8514:105;2172:148;;;;;;;;;;;;;:::i;5501:63::-;;;;;;;;;;;;;;;;5434:60;;;;;;;;;;;;;;;;8430:78;;;;;;;;;;-1:-1:-1;8482:7:0;2023:6;-1:-1:-1;;;;;2023:6:0;8430:78;;;-1:-1:-1;;;;;4238:32:1;;;4220:51;;4208:2;4193:18;8430:78:0;4074:203:1;14280:79:0;;;;;;;;;;;;;:::i;1958:::-;;;;;;;;;;-1:-1:-1;1996:7:0;2023:6;-1:-1:-1;;;;;2023:6:0;1958:79;;6316:28;;;;;;;;;;-1:-1:-1;6316:28:0;;;;-1:-1:-1;;;6316:28:0;;;;;;8254:84;;;;;;;;;;-1:-1:-1;8328:7:0;;;;;;;;;;;;-1:-1:-1;;;8328:7:0;;;;8254:84;;14068:204;;;;;;;;;;-1:-1:-1;14068:204:0;;;;;:::i;:::-;;:::i;6677:19::-;;;;;;;;;;-1:-1:-1;6677:19:0;;;;-1:-1:-1;;;;;6677:19:0;;;9389:156;;;;;;;;;;-1:-1:-1;9389:156:0;;;;;:::i;:::-;;:::i;1578:21::-;;;;;;;;;;-1:-1:-1;1578:21:0;;;;-1:-1:-1;;;;;1578:21:0;;;6351:41;;;;;;;;;;-1:-1:-1;6351:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13758:302;;;;;;;;;;-1:-1:-1;13758:302:0;;;;;:::i;:::-;;:::i;17889:167::-;;;;;;;;;;-1:-1:-1;17889:167:0;;;;;:::i;:::-;;:::i;8625:133::-;;;;;;;;;;-1:-1:-1;8625:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8727:19:0;;;8709:7;8727:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8625:133;17382:155;;;;;;;;;;-1:-1:-1;17382:155:0;;;;;:::i;:::-;;:::i;13526:224::-;;;;;;;;;;-1:-1:-1;13526:224:0;;;;;:::i;:::-;;:::i;16803:571::-;;;;;;;;;;-1:-1:-1;16803:571:0;;;;;:::i;:::-;;:::i;2328:244::-;;;;;;;;;;-1:-1:-1;2328:244:0;;;;;:::i;:::-;;:::i;16668:127::-;;;;;;;;;;-1:-1:-1;16668:127:0;;;;;:::i;:::-;;:::i;6607:24::-;;;;;;;;;;-1:-1:-1;6607:24:0;;;;-1:-1:-1;;;;;6607:24:0;;;8766:216;8870:10;8841:4;8858:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8858:32:0;;;;;;;;;;:41;;;8915:37;8841:4;;8858:32;;8915:37;;;;8893:6;160:25:1;;148:2;133:18;;14:177;8915:37:0;;;;;;;;-1:-1:-1;8970:4:0;8766:216;;;;;:::o;11158:154::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;;;;;;;;;11267:4:::1;11252:12;;:19;;;;:::i;:::-;11236:12;;:35;;11228:44;;;::::0;::::1;;11283:12;:21:::0;11158:154::o;18064:150::-;18144:4;18200:6;18168:29;18188:8;18168:19;:29::i;:::-;:38;;18064:150;-1:-1:-1;;;18064:150:0:o;9931:269::-;10018:10;10009:20;;;;:8;:20;;;;;;;;10001:29;;;;;;10083:4;10068:12;;:19;;;;:::i;:::-;10049:15;;:38;;10041:47;;;;;;10171:3;10152:14;10137:12;;:29;;;;:::i;:::-;10136:38;;;;:::i;:::-;10118:15;:56;-1:-1:-1;9931:269:0:o;17545:182::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;17642:15:::1;:25:::0;;;;17678:26:::1;:41:::0;17545:182::o;9553:370::-;-1:-1:-1;;;;;9673:19:0;;9653:4;9673:19;;;:11;:19;;;;;;;;9693:10;9673:31;;;;;;;;-1:-1:-1;;9673:52:0;9670:186;;9775:69;;;;;;;;;;;-1:-1:-1;;;9775:69:0;;;;;;;;-1:-1:-1;;;;;9775:19:0;;-1:-1:-1;9775:19:0;;;:11;:19;;;;;9795:10;9775:31;;;;;;;;;;:69;;9811:6;;9775:35;:69::i;:::-;-1:-1:-1;;;;;9741:19:0;;;;;;:11;:19;;;;;;;;9761:10;9741:31;;;;;;;:103;9670:186;9875:40;9889:6;9897:9;9908:6;9875:13;:40::i;:::-;9868:47;;9553:370;;;;;;:::o;17739:142::-;17867:4;;-1:-1:-1;;;;;17867:4:0;17792:7;8598:18;;;:9;:18;;;;;;17819:54;;17846:4;;-1:-1:-1;;;;;17846:4:0;8580:7;8598:18;;;:9;:18;;;;;;17819:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17812:61;;17739:142;:::o;16333:200::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;16430:9:::1;16425:101;16441:20:::0;;::::1;16425:101;;;16508:6;16483:8;:22;16492:9;;16502:1;16492:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16483:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16483:22:0;:31;;-1:-1:-1;;16483:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16463:3:0::1;16425:101;;;;16333:200:::0;;;:::o;8990:261::-;9080:10;9071:20;;;;:8;:20;;;;;;;;9063:29;;;;;;9142:4;9127:12;;:19;;;;:::i;:::-;9111:12;;:35;;9103:44;;;;;;9239:4;9222:12;9207;;:27;;;;:::i;:::-;9206:37;;;;:::i;:::-;9191:12;:52;-1:-1:-1;8990:261:0:o;9259:122::-;9314:4;9338:35;9346:7;-1:-1:-1;;9338:7:0;:35::i;16236:89::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;16299:8:::1;:18:::0;;;::::1;;-1:-1:-1::0;;;16299:18:0::1;-1:-1:-1::0;;;;16299:18:0;;::::1;::::0;;;::::1;::::0;;16236:89::o;16541:119::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16624:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16624:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16541:119::o;2172:148::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;2279:1:::1;2263:6:::0;;2242:40:::1;::::0;-1:-1:-1;;;;;2263:6:0;;::::1;::::0;2242:40:::1;::::0;2279:1;;2242:40:::1;2310:1;2293:19:::0;;-1:-1:-1;;;;;;2293:19:0::1;::::0;;2172:148::o;14280:79::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;14333:11:::1;:18:::0;;-1:-1:-1;;;;14333:18:0::1;-1:-1:-1::0;;;14333:18:0::1;::::0;;14280:79::o;14068:204::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;14169:14:::1;:22:::0;;;;14202:13:::1;:20:::0;;;;14233:18:::1;:27:::0;14068:204::o;9389:156::-;9469:4;9493:44;9507:10;9519:9;9530:6;9493:13;:44::i;13758:302::-;13872:10;13838:4;13863:20;;;:8;:20;;;;;;;;13855:29;;;;;;13895:6;13905:1;13895:11;13892:95;;13931:44;;-1:-1:-1;;;13931:44:0;;13969:4;13931:44;;;4220:51:1;-1:-1:-1;;;;;13931:29:0;;;;;4193:18:1;;13931:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13922:53;;13892:95;14004:48;;-1:-1:-1;;;14004:48:0;;14033:10;14004:48;;;7873:51:1;7940:18;;;7933:34;;;-1:-1:-1;;;;;14004:28:0;;;;;7846:18:1;;14004:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17889:167::-;17957:7;17984:64;18025:22;:20;:22::i;:::-;18007:4;;;-1:-1:-1;;;;;18007:4:0;8580:7;8598:18;;;:9;:18;;;;;;;17984:36;;17997:22;;18017:1;;17997:15;:19;;:22::i;:::-;17984:8;;:12;:36::i;:::-;:40;;:64::i;17382:155::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;17473:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;17473:22:0::1;-1:-1:-1::0;;;;17473:22:0;;::::1;::::0;;;::::1;::::0;;;17506:13:::1;:23:::0;17382:155::o;13526:224::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;13676:20:::1;::::0;13636:21:::1;::::0;-1:-1:-1;;;;;13676:20:0::1;13668:74;13738:3;13707:28;13719:16:::0;13636:21;13707:28:::1;:::i;:::-;:34;;;;:::i;:::-;13668:74;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13589:161;13526:224:::0;:::o;16803:571::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;16982:12:::1;:28:::0;;;17021:7:::1;:18:::0;;;17050:12:::1;:28:::0;;;17089:6:::1;:16:::0;;;17116:7:::1;:18:::0;;;17156:73:::1;17126:8:::0;17156:59:::1;17098:7:::0;17156:59;17065:13;17156:59;16997:13;17031:8;17156:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17145:8;:84:::0;17240:14:::1;:32:::0;;;17302:16:::1;17317:1;17257:15:::0;17302:16:::1;:::i;:::-;17291:8;;:27;17283:68;;;::::0;-1:-1:-1;;;17283:68:0;;8430:2:1;17283:68:0::1;::::0;::::1;8412:21:1::0;8469:2;8449:18;;;8442:30;8508;8488:18;;;8481:58;8556:18;;17283:68:0::1;8228:352:1::0;17283:68:0::1;16803:571:::0;;;;;;:::o;2328:244::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2417:22:0;::::1;2409:73;;;::::0;-1:-1:-1;;;2409:73:0;;8787:2:1;2409:73:0::1;::::0;::::1;8769:21:1::0;8826:2;8806:18;;;8799:30;8865:34;8845:18;;;8838:62;-1:-1:-1;;;8916:18:1;;;8909:36;8962:19;;2409:73:0::1;8585:402:1::0;2409:73:0::1;2519:6;::::0;;2498:38:::1;::::0;-1:-1:-1;;;;;2498:38:0;;::::1;::::0;2519:6;::::1;::::0;2498:38:::1;::::0;::::1;2547:6;:17:::0;;-1:-1:-1;;;;;;2547:17:0::1;-1:-1:-1::0;;;;;2547:17:0;;;::::1;::::0;;;::::1;::::0;;2328:244::o;16668:127::-;2085:6;;-1:-1:-1;;;;;2085:6:0;289:10;2085:22;2077:67;;;;-1:-1:-1;;;2077:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16755:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;16755:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16668:127::o;755:192::-;841:7;877:12;869:6;;;;861:29;;;;-1:-1:-1;;;861:29:0;;;;;;;;:::i;:::-;-1:-1:-1;901:9:0;913:5;917:1;913;:5;:::i;:::-;901:17;755:192;-1:-1:-1;;;;;755:192:0:o;11320:1355::-;11432:6;;11412:4;;11432:6;;11429:63;;;11448:41;11463:6;11471:9;11482:6;11448:14;:41::i;:::-;11441:48;;;;11429:63;-1:-1:-1;;;;;11508:22:0;;;;;;:14;:22;;;;;;;;11507:23;:53;;;;-1:-1:-1;;;;;;11535:25:0;;;;;;:14;:25;;;;;;;;11534:26;11507:53;11504:242;;;11584:11;;-1:-1:-1;;;11584:11:0;;;;11576:43;;;;-1:-1:-1;;;11576:43:0;;9327:2:1;11576:43:0;;;9309:21:1;9366:2;9346:18;;;9339:30;-1:-1:-1;;;9385:18:1;;;9378:50;9445:18;;11576:43:0;9125:344:1;11576:43:0;11635:8;;-1:-1:-1;;;11635:8:0;;;;11632:103;;;-1:-1:-1;;;;;11671:19:0;;;;;;:8;:19;;;;;;;;11663:46;;;;-1:-1:-1;;;11663:46:0;;9676:2:1;11663:46:0;;;9658:21:1;9715:2;9695:18;;;9688:30;-1:-1:-1;;;9734:18:1;;;9727:45;9789:18;;11663:46:0;9474:339:1;11663:46:0;-1:-1:-1;;;;;11765:22:0;;;;;;:14;:22;;;;;;;;11764:23;:53;;;;-1:-1:-1;;;;;;11791:26:0;;11812:4;11791:26;;11764:53;:84;;;;-1:-1:-1;11843:4:0;;-1:-1:-1;;;;;11822:26:0;;;11843:4;;11822:26;;11764:84;:105;;;;-1:-1:-1;11865:4:0;;-1:-1:-1;;;;;11852:17:0;;;11865:4;;11852:17;;11764:105;:137;;;;-1:-1:-1;11886:15:0;;-1:-1:-1;;;;;11873:28:0;;;11886:15;;11873:28;;11764:137;:174;;;;-1:-1:-1;11918:20:0;;-1:-1:-1;;;;;11905:33:0;;;11918:20;;11905:33;;11764:174;:205;;;;-1:-1:-1;;;;;;11943:26:0;;;;;;:15;:26;;;;;;;;11942:27;11764:205;11760:397;;;-1:-1:-1;;;;;8598:18:0;;11985;8598;;;:9;:18;;;;;;12074:15;;12050:19;12063:6;8598:18;12050:19;:::i;:::-;12049:40;;12041:114;;;;-1:-1:-1;;;12041:114:0;;10150:2:1;12041:114:0;;;10132:21:1;10189:2;10169:18;;;10162:30;10228:34;10208:18;;;10201:62;10299:32;10279:18;;;10272:60;10349:19;;12041:114:0;9948:426:1;12041:114:0;11970:187;11760:397;12169:28;12182:6;12190;12169:12;:28::i;:::-;12214:16;:14;:16::i;:::-;12211:35;;;12233:10;:8;:10::i;:::-;12326:53;;;;;;;;;;;-1:-1:-1;;;12326:53:0;;;;;;;;-1:-1:-1;;;;;12326:17:0;;-1:-1:-1;12326:17:0;;;:9;:17;;;;;;;;:53;;12348:6;;12326:21;:53::i;:::-;-1:-1:-1;;;;;12306:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12418:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;12441:22:0;;;;;;:11;:22;;;;;;;;12418:45;12417:93;;12476:34;12484:6;12492;12500:9;12476:7;:34::i;:::-;12417:93;;;12467:6;12417:93;-1:-1:-1;;;;;12544:20:0;;;;;;:9;:20;;;;;;12392:118;;-1:-1:-1;12544:40:0;;12392:118;12544:24;:40::i;:::-;-1:-1:-1;;;;;12521:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12602:43;;;;;;-1:-1:-1;;;;;;;;;;;12602:43:0;;;12630:14;160:25:1;;148:2;133:18;;14:177;12602:43:0;;;;;;;;-1:-1:-1;12663:4:0;;11320:1355;-1:-1:-1;;;;11320:1355:0:o;613:136::-;671:7;698:43;702:1;705;698:43;;;;;;;;;;;;;;;;;:3;:43::i;953:250::-;1011:7;1035:1;1040;1035:6;1031:47;;-1:-1:-1;1065:1:0;1058:8;;1031:47;1090:9;1102:5;1106:1;1102;:5;:::i;:::-;1090:17;-1:-1:-1;1135:1:0;1126:5;1130:1;1090:17;1126:5;:::i;:::-;:10;1118:56;;;;-1:-1:-1;;;1118:56:0;;10581:2:1;1118:56:0;;;10563:21:1;10620:2;10600:18;;;10593:30;10659:34;10639:18;;;10632:62;-1:-1:-1;;;10710:18:1;;;10703:31;10751:19;;1118:56:0;10379:397:1;1209:132:0;1267:7;1294:39;1298:1;1301;1294:39;;;;;;;;;;;;;;;;;:3;:39::i;426:181::-;484:7;;516:5;520:1;516;:5;:::i;:::-;504:17;;545:1;540;:6;;532:46;;;;-1:-1:-1;;;532:46:0;;10983:2:1;532:46:0;;;10965:21:1;11022:2;11002:18;;;10995:30;11061:29;11041:18;;;11034:57;11108:18;;532:46:0;10781:351:1;12687:330:0;12817:53;;;;;;;;;;;-1:-1:-1;;;12817:53:0;;;;;;;;-1:-1:-1;;;;;12817:17:0;;12780:4;12817:17;;;:9;:17;;;;;;;:53;;12839:6;;12817:21;:53::i;:::-;-1:-1:-1;;;;;12797:17:0;;;;;;;:9;:17;;;;;;:73;;;;12904:20;;;;;;;:32;;12929:6;12904:24;:32::i;:::-;-1:-1:-1;;;;;12881:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12952:35;;;;;;-1:-1:-1;;;;;;;;;;;12952:35:0;;;12980:6;160:25:1;;148:2;133:18;;14:177;12952:35:0;;;;;;;;-1:-1:-1;13005:4:0;12687:330;;;;;:::o;13025:166::-;13122:12;;13112:6;:22;;:49;;;-1:-1:-1;;;;;;13138:23:0;;;;;;:15;:23;;;;;;;;13112:49;13104:79;;;;-1:-1:-1;;;13104:79:0;;11339:2:1;13104:79:0;;;11321:21:1;11378:2;11358:18;;;11351:30;-1:-1:-1;;;11397:18:1;;;11390:47;11454:18;;13104:79:0;11137:341:1;13104:79:0;13025:166;;:::o;13321:197::-;13408:4;;13370;;-1:-1:-1;;;;;13408:4:0;13394:10;:18;;;;:38;;-1:-1:-1;13426:6:0;;;;13425:7;13394:38;:62;;;;-1:-1:-1;13445:11:0;;-1:-1:-1;;;13445:11:0;;;;13394:62;:116;;;;-1:-1:-1;;13497:13:0;;13487:4;13469:24;;;;:9;:24;;;;;;:41;;;13321:197::o;14367:1861::-;6891:6;:13;;-1:-1:-1;;6891:13:0;6900:4;6891:13;;;14462:15:::1;::::0;14479:26:::1;::::0;6891:6;;14446:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14513:12;;14446:79;;;14509:1;14446:79;14416:109;;14536:23;14562:59;14619:1;14562:52;14605:8;;14562:38;14580:19;14562:13;;:17;;:38;;;;:::i;:59::-;14536:85;;14632:20;14655:34;14673:15;14655:13;;:17;;:34;;;;:::i;:::-;14726:16;::::0;;14740:1:::1;14726:16:::0;;;;;::::1;::::0;;14632:57;;-1:-1:-1;14702:21:0::1;::::0;14726:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14726:16:0::1;14702:40;;14771:4;14753;14758:1;14753:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14753:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14797:4:::1;::::0;14787:7;;14797:4;::::1;::::0;14787;;14797;;14787:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14787:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14872:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14872:188:0;;14838:21:::1;::::0;14872:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14944:12;;14814:21:::1;::::0;14987:4;;15014::::1;::::0;15034:15:::1;::::0;14872:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15073:17;15093:40;15119:13;15093:21;:25;;:40;;;;:::i;:::-;15073:60:::0;-1:-1:-1;15146:19:0::1;15168:40;15181:26;:19:::0;15205:1:::1;15181:23;:26::i;:::-;15168:8;::::0;;:12:::1;:40::i;:::-;15146:62:::0;-1:-1:-1;15229:26:0::1;15258:58;15314:1;15258:51;15146:62:::0;15258:51;:9;15272:19;15258:13:::1;:34::i;:58::-;15229:87;;15327:26;15356:44;15388:11;15356:27;15370:12;;15356:9;:13;;:27;;;;:::i;:44::-;15327:73;;15411:21;15435:39;15462:11;15435:22;15449:7;;15435:9;:13;;:22;;;;:::i;:39::-;15411:63;;15485:20;15508:38;15534:11;15508:21;15522:6;;15508:9;:13;;:21;;;;:::i;:38::-;15588:20;::::0;15580:65:::1;::::0;15485:61;;-1:-1:-1;15560:15:0::1;::::0;-1:-1:-1;;;;;15588:20:0;;::::1;::::0;15622:18;;15560:15;15580:65;15560:15;15580:65;15622:18;15588:20;15580:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15680:14:0::1;::::0;15672:53:::1;::::0;15559:86;;-1:-1:-1;;;;;;15680:14:0::1;::::0;15708:12;;15672:53:::1;::::0;;;15708:12;15680:14;15672:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15760:15:0::1;::::0;15752:55:::1;::::0;15656:69;;-1:-1:-1;;;;;;15760:15:0::1;::::0;15789:13;;15752:55:::1;::::0;;;15789:13;15760:15;15752:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15841:5:0::1;::::0;-1:-1:-1;;15862:19:0;;;-1:-1:-1;15859:362:0::1;;15897:6;::::0;16071:21:::1;::::0;15897:244:::1;::::0;-1:-1:-1;;;15897:244:0;;15973:4:::1;15897:244;::::0;::::1;13092:51:1::0;13159:18;;;13152:34;;;15897:6:0::1;13202:18:1::0;;;13195:34;;;13245:18;;;13238:34;-1:-1:-1;;;;;16071:21:0;;::::1;13288:19:1::0;;;13281:61;16111:15:0::1;13358:19:1::0;;;13351:35;15897:6:0;::::1;::::0;:22:::1;::::0;15927:18;;13064:19:1;;15897:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16161:48:0::1;::::0;;14032:25:1;;;14088:2;14073:18;;14066:34;;;16161:48:0::1;::::0;-1:-1:-1;14005:18:1;16161:48:0::1;;;;;;;15859:362;-1:-1:-1::0;;6909:6:0;:14;;-1:-1:-1;;6909:14:0;;;-1:-1:-1;;;;;;;;;;14367:1861:0:o;10208:942::-;10345:18;;10392:4;;10294:7;;10345:18;-1:-1:-1;;;;;10392:4:0;;;10379:17;;;;10376:154;;-1:-1:-1;10426:14:0;;10376:154;;;10471:4;;-1:-1:-1;;;;;10471:4:0;;;10461:14;;;;10458:72;;-1:-1:-1;10505:13:0;;10458:72;10542:17;10562:62;10603:14;;10620:3;10603:20;;;;:::i;:::-;10562:36;10587:10;10562:20;10573:8;;10562:6;:10;;:20;;;;:::i;:62::-;10542:82;;10635:18;10656:36;10683:8;;10656:22;10670:7;;10656:9;:13;;:22;;;;:::i;:36::-;10635:57;-1:-1:-1;10703:22:0;10728:25;:9;10635:57;10728:13;:25::i;:::-;10811:4;10793:24;;;;:9;:24;;;;;;10703:50;;-1:-1:-1;10793:44:0;;10703:50;10793:28;:44::i;:::-;10784:4;10766:24;;;;:9;:24;;;;;;:71;;;;10887:15;;-1:-1:-1;;;;;10887:15:0;10877:26;;;;:42;;10908:10;10877:30;:42::i;:::-;10858:15;;-1:-1:-1;;;;;10858:15:0;;;10848:26;;;;:9;:26;;;;;;;;;:71;;;;10935:47;160:25:1;;;10960:4:0;;10935:47;;;;-1:-1:-1;;;;;;;;;;;10935:47:0;133:18:1;10935:47:0;;;;;;;11006:14;;11003:99;;11058:15;;11041:45;;160:25:1;;;-1:-1:-1;;;;;11058:15:0;;;;11041:45;;;-1:-1:-1;;;;;;;;;;;11041:45:0;148:2:1;133:18;11041:45:0;;;;;;;11003:99;11121:21;:6;11132:9;11121:10;:21::i;:::-;11114:28;10208:942;-1:-1:-1;;;;;;;;10208:942:0:o;1347:189::-;1433:7;1468:12;1461:5;1453:28;;;;-1:-1:-1;;;1453:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1492:9:0;1504:5;1508:1;1504;:5;:::i;196:418:1:-;345:2;334:9;327:21;308:4;377:6;371:13;420:6;415:2;404:9;400:18;393:34;479:6;474:2;466:6;462:15;457:2;446:9;442:18;436:50;535:1;530:2;521:6;510:9;506:22;502:31;495:42;605:2;598;594:7;589:2;581:6;577:15;573:29;562:9;558:45;554:54;546:62;;;196:418;;;;:::o;811:173::-;879:20;;-1:-1:-1;;;;;928:31:1;;918:42;;908:70;;974:1;971;964:12;908:70;811:173;;;:::o;989:300::-;1057:6;1065;1118:2;1106:9;1097:7;1093:23;1089:32;1086:52;;;1134:1;1131;1124:12;1086:52;1157:29;1176:9;1157:29;:::i;:::-;1147:39;1255:2;1240:18;;;;1227:32;;-1:-1:-1;;;989:300:1:o;1294:226::-;1353:6;1406:2;1394:9;1385:7;1381:23;1377:32;1374:52;;;1422:1;1419;1412:12;1374:52;-1:-1:-1;1467:23:1;;1294:226;-1:-1:-1;1294:226:1:o;1525:346::-;1593:6;1601;1654:2;1642:9;1633:7;1629:23;1625:32;1622:52;;;1670:1;1667;1660:12;1622:52;-1:-1:-1;;1715:23:1;;;1835:2;1820:18;;;1807:32;;-1:-1:-1;1525:346:1:o;1876:374::-;1953:6;1961;1969;2022:2;2010:9;2001:7;1997:23;1993:32;1990:52;;;2038:1;2035;2028:12;1990:52;2061:29;2080:9;2061:29;:::i;:::-;2051:39;;2109:38;2143:2;2132:9;2128:18;2109:38;:::i;:::-;1876:374;;2099:48;;-1:-1:-1;;;2216:2:1;2201:18;;;;2188:32;;1876:374::o;2444:118::-;2530:5;2523:13;2516:21;2509:5;2506:32;2496:60;;2552:1;2549;2542:12;2496:60;2444:118;:::o;2567:745::-;2659:6;2667;2675;2728:2;2716:9;2707:7;2703:23;2699:32;2696:52;;;2744:1;2741;2734:12;2696:52;2784:9;2771:23;2817:18;2809:6;2806:30;2803:50;;;2849:1;2846;2839:12;2803:50;2872:22;;2925:4;2917:13;;2913:27;-1:-1:-1;2903:55:1;;2954:1;2951;2944:12;2903:55;2994:2;2981:16;3020:18;3012:6;3009:30;3006:50;;;3052:1;3049;3042:12;3006:50;3107:7;3100:4;3090:6;3087:1;3083:14;3079:2;3075:23;3071:34;3068:47;3065:67;;;3128:1;3125;3118:12;3065:67;3159:4;3151:13;;;;-1:-1:-1;3183:6:1;-1:-1:-1;3224:20:1;;3211:34;3254:28;3211:34;3254:28;:::i;:::-;3301:5;3291:15;;;2567:745;;;;;:::o;3317:186::-;3376:6;3429:2;3417:9;3408:7;3404:23;3400:32;3397:52;;;3445:1;3442;3435:12;3397:52;3468:29;3487:9;3468:29;:::i;3508:241::-;3564:6;3617:2;3605:9;3596:7;3592:23;3588:32;3585:52;;;3633:1;3630;3623:12;3585:52;3672:9;3659:23;3691:28;3713:5;3691:28;:::i;3754:315::-;3819:6;3827;3880:2;3868:9;3859:7;3855:23;3851:32;3848:52;;;3896:1;3893;3886:12;3848:52;3919:29;3938:9;3919:29;:::i;:::-;3909:39;;3998:2;3987:9;3983:18;3970:32;4011:28;4033:5;4011:28;:::i;:::-;4058:5;4048:15;;;3754:315;;;;;:::o;4282:466::-;4359:6;4367;4375;4428:2;4416:9;4407:7;4403:23;4399:32;4396:52;;;4444:1;4441;4434:12;4396:52;-1:-1:-1;;4489:23:1;;;4609:2;4594:18;;4581:32;;-1:-1:-1;4712:2:1;4697:18;;;4684:32;;4282:466;-1:-1:-1;4282:466:1:o;4753:260::-;4821:6;4829;4882:2;4870:9;4861:7;4857:23;4853:32;4850:52;;;4898:1;4895;4888:12;4850:52;4921:29;4940:9;4921:29;:::i;:::-;4911:39;;4969:38;5003:2;4992:9;4988:18;4969:38;:::i;:::-;4959:48;;4753:260;;;;;:::o;5018:361::-;5083:6;5091;5144:2;5132:9;5123:7;5119:23;5115:32;5112:52;;;5160:1;5157;5150:12;5112:52;5199:9;5186:23;5218:28;5240:5;5218:28;:::i;5384:829::-;5488:6;5496;5504;5512;5520;5528;5581:3;5569:9;5560:7;5556:23;5552:33;5549:53;;;5598:1;5595;5588:12;5549:53;-1:-1:-1;;5643:23:1;;;5763:2;5748:18;;5735:32;;-1:-1:-1;5866:2:1;5851:18;;5838:32;;5969:2;5954:18;;5941:32;;-1:-1:-1;6072:3:1;6057:19;;6044:33;;-1:-1:-1;6176:3:1;6161:19;6148:33;;-1:-1:-1;5384:829:1;-1:-1:-1;5384:829:1:o;6444:356::-;6646:2;6628:21;;;6665:18;;;6658:30;6724:34;6719:2;6704:18;;6697:62;6791:2;6776:18;;6444:356::o;6805:127::-;6866:10;6861:3;6857:20;6854:1;6847:31;6897:4;6894:1;6887:15;6921:4;6918:1;6911:15;6937:217;6977:1;7003;6993:132;;7047:10;7042:3;7038:20;7035:1;7028:31;7082:4;7079:1;7072:15;7110:4;7107:1;7100:15;6993:132;-1:-1:-1;7139:9:1;;6937:217::o;7159:168::-;7232:9;;;7263;;7280:15;;;7274:22;;7260:37;7250:71;;7301:18;;:::i;7332:127::-;7393:10;7388:3;7384:20;7381:1;7374:31;7424:4;7421:1;7414:15;7448:4;7445:1;7438:15;7464:230;7534:6;7587:2;7575:9;7566:7;7562:23;7558:32;7555:52;;;7603:1;7600;7593:12;7555:52;-1:-1:-1;7648:16:1;;7464:230;-1:-1:-1;7464:230:1:o;7978:245::-;8045:6;8098:2;8086:9;8077:7;8073:23;8069:32;8066:52;;;8114:1;8111;8104:12;8066:52;8146:9;8140:16;8165:28;8187:5;8165:28;:::i;8992:128::-;9059:9;;;9080:11;;;9077:37;;;9094:18;;:::i;9818:125::-;9883:9;;;9904:10;;;9901:36;;;9917:18;;:::i;11615:959::-;11877:4;11925:3;11914:9;11910:19;11956:6;11945:9;11938:25;11999:6;11994:2;11983:9;11979:18;11972:34;12042:3;12037:2;12026:9;12022:18;12015:31;12066:6;12101;12095:13;12132:6;12124;12117:22;12170:3;12159:9;12155:19;12148:26;;12209:2;12201:6;12197:15;12183:29;;12230:1;12240:195;12254:6;12251:1;12248:13;12240:195;;;12319:13;;-1:-1:-1;;;;;12315:39:1;12303:52;;12384:2;12410:15;;;;12375:12;;;;12351:1;12269:9;12240:195;;;-1:-1:-1;;;;;;;12491:32:1;;;;12486:2;12471:18;;12464:60;-1:-1:-1;;12555:3:1;12540:19;12533:35;12452:3;11615:959;-1:-1:-1;;;11615:959:1:o;13397:456::-;13485:6;13493;13501;13554:2;13542:9;13533:7;13529:23;13525:32;13522:52;;;13570:1;13567;13560:12;13522:52;-1:-1:-1;;13615:16:1;;13721:2;13706:18;;13700:25;13817:2;13802:18;;;13796:25;13615:16;;13700:25;;-1:-1:-1;13796:25:1;13397:456;-1:-1:-1;13397:456:1:o

Swarm Source

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