ETH Price: $2,678.52 (-0.81%)

Token

Turbo Trump (TRUMP)
 

Overview

Max Total Supply

1,000,000,000 TRUMP

Holders

60

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
11,612,710.756678104 TRUMP

Value
$0.00
0x4C40836964E2B35F578e20aFF57Ca42B080c1ae7
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:
TurboTrump

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/** 

Website:  https://turbotrump.vip
Twitter:  https://twitter.com/Turbo_Trump
TG;  https://t.me/turbotrumpchannel

*/

// SPDX-License-Identifier: MIT 


pragma solidity ^0.8.19;
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

contract TurboTrump is Context, IERC20, Ownable {
    using Address for address payable;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcluded;
    address public deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public marketingWallet =(0x83fB525F16040573fb5119c1491eFc99720765Bf);
    address public taxWallet =(0x57FaC2F2f431680AbCE25F90A766f7a931d76285);
    address private devWallet = 0xa1aA03E2ee3Af2CfC6f2602A0F3604BA5E970B67;
   
    address[] private _excluded;
    bool public tradingEnabled;
    bool private swapEnabled;
    bool private swapping;

    IRouter public router;
    address public pair;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = 1e30;
    uint256 public _tTotal = 1_000_000_000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    string private constant _name = "Turbo Trump";
    string private constant _symbol = "TRUMP";

    uint256 public _maxTxAmount = _tTotal * 20 / 1000;
    uint256 public _maxWalletSize = _tTotal * 20 / 1000;
    uint256 public swapTokensAtAmount = 26_000 * 10**9;
    mapping(address => bool) private _isExcludedFromFees;

    uint256 private genesis_block;
    uint256 private deadline = 1;

    struct Taxes {
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes public taxes = Taxes(0, 1, 0);
    Taxes public sellTaxes = Taxes(0, 1, 0);
    Taxes private launchtax = Taxes(0, 20, 0);

    struct TotFeesPaidStruct {
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity;
    }

    TotFeesPaidStruct public totFeesPaid;
    struct valuesFromGetValues {
        uint256 rAmount;
        uint256 rTransferAmount;
        uint256 rRfi;
        uint256 rmarketing;
        uint256 rLiquidity;
        uint256 tTransferAmount;
        uint256 tRfi;
        uint256 tmarketing;
        uint256 tLiquidity;
    }

    event FeesChanged();

    modifier lockTheSwap() {
        swapping = true;
        _;
        swapping = false;
    }

    constructor() {
        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
         excludeFromReward(deadWallet);
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[taxWallet] = true;
        _isExcludedFromFee[deadWallet] = true;

         _rOwned[owner()] = _rTotal;
        emit Transfer(address(0), owner(), _tTotal);
    }

    function createLP() external payable onlyOwner {
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        _approve(address(this), address(router), type(uint256).max);
        excludeFromReward(pair); _isExcludedFromFees[devWallet] = true;
        router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0, 
            0, 
            owner(),
            block.timestamp
        );
    }
    
    function name() public pure returns (string memory) {
        return _name;
    }

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi)
        public
        view
        returns (uint256)
    {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, true, false, false, false);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true, false, false, false);
            return s.rTransferAmount;
        }
    }

    function EnableTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
    }

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

    function excludeFromReward(address account) public onlyOwner {
        require(!_isExcluded[account], "Account is already excluded");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

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

    // function updateBuyTaxes(
    //     uint256 _rfi,
    //     uint256 _marketing,
    //     uint256 _liquidity
    // ) public onlyOwner {
    //     require((_rfi + _marketing + _liquidity) <= 25, "Must keep fees at 25% or less");
    //     taxes = Taxes(_rfi, _marketing, _liquidity);
    //     emit FeesChanged();
    // }

    // function updateSellTaxes(
    //     uint256 _rfi,
    //     uint256 _marketing,
    //     uint256 _liquidity
    // ) public onlyOwner {
    //     require((_rfi + _marketing + _liquidity) <= 25, "Must keep fees at 25% or less");
    //     sellTaxes = Taxes(_rfi, _marketing, _liquidity);
    //     emit FeesChanged();
    // }

    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -= rRfi;
        totFeesPaid.rfi += tRfi;
    }

    function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private {
        totFeesPaid.liquidity += tLiquidity;

        if (_isExcluded[address(this)]) {
            _tOwned[address(this)] += tLiquidity;
        }
        _rOwned[address(this)] += rLiquidity;
    }

    function _takeMarketingFee(uint256 rmarketing, uint256 tmarketing) private {
        totFeesPaid.marketing += tmarketing;

        if (_isExcluded[address(this)]) {
            _tOwned[address(this)] += tmarketing;
        }
        _rOwned[address(this)] += rmarketing;
    }

    function _getValues(
        uint256 tAmount,
        bool takeFee,
        bool isSell,
        bool useLaunchTax,
        bool isTransfer
    ) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee, isSell, useLaunchTax);
        (
            to_return.rAmount,
            to_return.rTransferAmount,
            to_return.rRfi,
            to_return.rmarketing,
            to_return.rLiquidity
        ) = _getRValues1(to_return, tAmount, takeFee, _getRate(), isTransfer);
       
        return to_return;
    }

    function _getTValues(
        uint256 tAmount,
        bool takeFee,
        bool isSell,
        bool useLaunchTax
    ) private view returns (valuesFromGetValues memory s) {
        if (!takeFee) {
            s.tTransferAmount = tAmount;
            return s;
        }
        Taxes memory temp;
        if (isSell && !useLaunchTax) temp = sellTaxes;
        else if (!useLaunchTax) temp = taxes;
        else temp = launchtax;

        s.tRfi = (tAmount * temp.rfi) / 100;
        s.tmarketing = (tAmount * temp.marketing) / 100;
        s.tLiquidity = (tAmount * temp.liquidity) / 100;
        s.tTransferAmount =
            tAmount -
            s.tRfi -
            s.tmarketing -
            s.tLiquidity;
        return s;
    }

    function _getRValues1(
        valuesFromGetValues memory s,
        uint256 tAmount,
        bool takeFee,
        uint256 currentRate,
        bool isTransfer
    )
        private
        pure
        returns (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rRfi,
            uint256 rmarketing,
            uint256 rLiquidity
        )
    {
        rAmount = tAmount * currentRate;

        if (!takeFee) {
            return (isTransfer?0:rAmount, rAmount, 0, 0, 0);
        }

        rRfi = s.tRfi * currentRate;
        rmarketing = s.tmarketing * currentRate;
        rLiquidity = s.tLiquidity * currentRate;
        rTransferAmount =
            rAmount -
            rRfi -
            rmarketing -
            rLiquidity;
        return (rAmount, rTransferAmount, rRfi, rmarketing, rLiquidity);
    }

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

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply)
                return (_rTotal, _tTotal);
            rSupply = rSupply - _rOwned[_excluded[i]];
            tSupply = tSupply - _tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

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

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

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradingEnabled, "Trading not active");
        }

        if (from == pair && to != address(pair) && !_isExcludedFromFee[to] ) {
            require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
            require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if (!swapping && swapEnabled && canSwap && amount > swapTokensAtAmount && from != pair && !_isExcludedFromFee[from] && 
        !_isExcludedFromFee[to]
        ) {
            if (to == pair) swapAndLiquify(swapTokensAtAmount, sellTaxes);
        }
        bool takeFee = true;
        bool isSell = false;
        if (swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false;
        if (to == pair) isSell = true;
        if (from != pair && to != pair) { //transfer
           takeFee = false;
       }
       
        _tokenTransfer(from, to, amount, takeFee, isSell);
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
    }

    function _tokenTransfer(address sender,address recipient,uint256 tAmount,bool takeFee,bool isSell) private {
        bool useLaunchTax = !_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient] && block.number < genesis_block + deadline;

        valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell, useLaunchTax, isExcludedFromFee(sender));

        if (_isExcluded[sender]) {
            //from excluded
            _tOwned[sender] = _tOwned[sender] - tAmount;
        }
        if (_isExcluded[recipient]) {
            //to excluded
            _tOwned[recipient] = _tOwned[recipient] + s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender] - s.rAmount;
        _rOwned[recipient] = _rOwned[recipient] + s.rTransferAmount;

        if (s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi);
        if (s.rLiquidity > 0 || s.tLiquidity > 0) {
            _takeLiquidity(s.rLiquidity, s.tLiquidity);
            emit Transfer(
                sender,
                address(this),
                s.tLiquidity + s.tmarketing
            );
        }
        if (s.rmarketing > 0 || s.tmarketing > 0) _takeMarketingFee(s.rmarketing, s.tmarketing);
        emit Transfer(sender, recipient, s.tTransferAmount);
    }

    function swapAndLiquify(uint256 contractBalance, Taxes memory temp) private lockTheSwap {
        uint256 denominator = (temp.liquidity +
            temp.marketing) * 2;

        if (denominator == 0){
            return;
        }

        uint256 tokensToAddLiquidityWith = (contractBalance * temp.liquidity) / denominator;
        uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance - initialBalance;
        uint256 unitBalance = deltaBalance / (denominator - temp.liquidity);
        uint256 ethToAddLiquidityWith = unitBalance * temp.liquidity;

        if (ethToAddLiquidityWith > 0) {
            addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
        }

        uint256 marketingAmt = unitBalance * 2 * temp.marketing;
        if (marketingAmt > 0) {
            payable(taxWallet).transfer(marketingAmt);
        }
    }

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

        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deadWallet,
            block.timestamp
        );
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function rescueETH() external {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    receive() external payable {}
}

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":[],"name":"FeesChanged","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":"EnableTrading","outputs":[],"stateMutability":"nonpayable","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":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createLP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","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":[],"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":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600680546001600160a01b031990811661dead179091556007805482167383fb525f16040573fb5119c1491efc99720765bf1790556008805482167357fac2f2f431680abce25f90a766f7a931d762851790556009805490911673a1aa03e2ee3af2cfc6f2602a0f3604ba5e970b671781556200008390600a62000806565b6200009390633b9aca0062000817565b600d819055620000b1906c0c9f2c9cd04674edea4000000062000847565b620000ca906c0c9f2c9cd04674edea400000006200085e565b600e556103e8600d546014620000e1919062000817565b620000ed919062000874565b600f556103e8600d54601462000104919062000817565b62000110919062000874565b6010556517a598c3a000601155600160148181556040805160608082018352600080835260208084018790529284018190526015819055601686905560178190558351808301855281815280840187905284018190526018819055601995909555601a8590558251908101835284815290810183905201829052601b829055601c55601d55348015620001a257600080fd5b50620001ae336200032f565b600b80546301000000600160b81b031916767a250d5630b4cf539739df2c5dacb4c659f2488d000000179055600654620001f1906001600160a01b03166200037f565b3060009081526004602081905260408220805460ff1916600190811790915591620002246000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600754821681526004909352818320805485166001908117909155600854821684528284208054861682179055600654909116835290822080549093168117909255600e549190620002ac6000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055620002d96000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516200032191815260200190565b60405180910390a3620008bd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620003df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156200044a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401620003d6565b6001600160a01b03811660009081526001602052604090205415620004a7576001600160a01b0381166000908152600160205260409020546200048d906200050d565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319169091179055565b6000806200051a6200052f565b905062000528818462000874565b9392505050565b600080806200053d62000555565b90925090506200054e818362000874565b9250505090565b600e54600d546000918291825b600a54811015620006bd578260016000600a84815481106200058857620005886200088b565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620005f757508160026000600a8481548110620005d057620005d06200088b565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200060e57600e54600d54945094505050509091565b60016000600a83815481106200062857620006286200088b565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200065990846200085e565b925060026000600a83815481106200067557620006756200088b565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620006a690836200085e565b915080620006b481620008a1565b91505062000562565b50600d54600e54620006d0919062000874565b821015620006e857600e54600d549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007485781600019048211156200072c576200072c620006f1565b808516156200073a57918102915b93841c93908002906200070c565b509250929050565b600082620007615750600162000800565b81620007705750600062000800565b81600181146200078957600281146200079457620007b4565b600191505062000800565b60ff841115620007a857620007a8620006f1565b50506001821b62000800565b5060208310610133831016604e8410600b8410161715620007d9575081810a62000800565b620007e5838362000707565b8060001904821115620007fc57620007fc620006f1565b0290505b92915050565b60006200052860ff84168362000750565b8082028115828204841417620008005762000800620006f1565b634e487b7160e01b600052601260045260246000fd5b60008262000859576200085962000831565b500690565b81810381811115620008005762000800620006f1565b60008262000886576200088662000831565b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201620008b657620008b6620006f1565b5060010190565b61245a80620008cd6000396000f3fe6080604052600436106102135760003560e01c806375f0a87411610118578063a8aa1b31116100a0578063e2f456051161006f578063e2f4560514610677578063f2fde38b1461068d578063f66895a3146106ad578063f7f23a0c146106cc578063f887ea40146106d457600080fd5b8063a8aa1b31146105db578063a9059cbb146105fb578063af465a271461061b578063dd62ed3e1461063157600080fd5b80638da5cb5b116100e75780638da5cb5b1461053a5780638f9a55c01461055857806395d89b411461056e5780639ba5e4d51461059c578063a457c2d7146105bb57600080fd5b806375f0a874146104ab5780637d1db4a5146104cb57806385141a77146104e157806388f820201461050157600080fd5b8063395093511161019b5780635342acb41161016a5780635342acb4146103ee57806370a0823114610427578063715018a614610447578063728f8eea1461045c578063751039fc1461049657600080fd5b806339509351146103745780634549b039146103945780634ada218b146103b457806352390c02146103ce57600080fd5b806320800a00116101e257806320800a00146102cb57806323b872dd146102e05780632d838119146103005780632dc0562d14610320578063313ce5671461035857600080fd5b806306fdde031461021f578063095ea7b31461026557806318160ddd146102955780631d97b7cd146102b457600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600b81526a0547572626f205472756d760ac1b60208201525b60405161025c91906120eb565b60405180910390f35b34801561027157600080fd5b5061028561028036600461214e565b6106fb565b604051901515815260200161025c565b3480156102a157600080fd5b50600d545b60405190815260200161025c565b3480156102c057600080fd5b506102c9610712565b005b3480156102d757600080fd5b506102c96107ad565b3480156102ec57600080fd5b506102856102fb36600461217a565b6107eb565b34801561030c57600080fd5b506102a661031b3660046121bb565b61089c565b34801561032c57600080fd5b50600854610340906001600160a01b031681565b6040516001600160a01b03909116815260200161025c565b34801561036457600080fd5b506040516009815260200161025c565b34801561038057600080fd5b5061028561038f36600461214e565b6108ba565b3480156103a057600080fd5b506102a66103af3660046121d4565b6108f1565b3480156103c057600080fd5b50600b546102859060ff1681565b3480156103da57600080fd5b506102c96103e9366004612209565b610985565b3480156103fa57600080fd5b50610285610409366004612209565b6001600160a01b031660009081526012602052604090205460ff1690565b34801561043357600080fd5b506102a6610442366004612209565b610ad8565b34801561045357600080fd5b506102c9610b37565b34801561046857600080fd5b5060155460165460175461047b92919083565b6040805193845260208401929092529082015260600161025c565b3480156104a257600080fd5b506102c9610b6d565b3480156104b757600080fd5b50600754610340906001600160a01b031681565b3480156104d757600080fd5b506102a6600f5481565b3480156104ed57600080fd5b50600654610340906001600160a01b031681565b34801561050d57600080fd5b5061028561051c366004612209565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561054657600080fd5b506000546001600160a01b0316610340565b34801561056457600080fd5b506102a660105481565b34801561057a57600080fd5b5060408051808201909152600581526405452554d560dc1b602082015261024f565b3480156105a857600080fd5b50601e54601f5460205461047b92919083565b3480156105c757600080fd5b506102856105d636600461214e565b610ba4565b3480156105e757600080fd5b50600c54610340906001600160a01b031681565b34801561060757600080fd5b5061028561061636600461214e565b610c3f565b34801561062757600080fd5b506102a6600d5481565b34801561063d57600080fd5b506102a661064c366004612226565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561068357600080fd5b506102a660115481565b34801561069957600080fd5b506102c96106a8366004612209565b610c4c565b3480156106b957600080fd5b50601854601954601a5461047b92919083565b6102c9610ce7565b3480156106e057600080fd5b50600b5461034090630100000090046001600160a01b031681565b6000610708338484610f8a565b5060015b92915050565b6000546001600160a01b031633146107455760405162461bcd60e51b815260040161073c90612254565b60405180910390fd5b600b5460ff16156107985760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161073c565b600b805461ffff191661010117905543601355565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f193505050501580156107e7573d6000803e3d6000fd5b5050565b60006107f88484846110ae565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561087d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161073c565b610891853361088c868561229f565b610f8a565b506001949350505050565b6000806108a761152d565b90506108b381846122b2565b9392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161070891859061088c9086906122d4565b6000600d548311156109455760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161073c565b8161096657600061095c8460016000806000611550565b51915061070c9050565b60006109788460016000806000611550565b60200151915061070c9050565b6000546001600160a01b031633146109af5760405162461bcd60e51b815260040161073c90612254565b6001600160a01b03811660009081526005602052604090205460ff1615610a185760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161073c565b6001600160a01b03811660009081526001602052604090205415610a72576001600160a01b038116600090815260016020526040902054610a589061089c565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff1615610b1557506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461070c9061089c565b6000546001600160a01b03163314610b615760405162461bcd60e51b815260040161073c90612254565b610b6b6000611599565b565b6000546001600160a01b03163314610b975760405162461bcd60e51b815260040161073c90612254565b600d54600f819055601055565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610c265760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161073c565b610c35338561088c868561229f565b5060019392505050565b60006107083384846110ae565b6000546001600160a01b03163314610c765760405162461bcd60e51b815260040161073c90612254565b6001600160a01b038116610cdb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073c565b610ce481611599565b50565b6000546001600160a01b03163314610d115760405162461bcd60e51b815260040161073c90612254565b600b60039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8891906122e7565b6001600160a01b031663c9c6539630600b60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e91906122e7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f91906122e7565b600c80546001600160a01b0319166001600160a01b03928316179055600b54610eb49130916301000000900416600019610f8a565b600c54610ec9906001600160a01b0316610985565b6009546001600160a01b039081166000908152601260205260409020805460ff19166001179055600b54630100000090041663f305d7193430610f0b81610ad8565b600080610f206000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f4296959493929190612304565b60606040518083038185885af1158015610f60573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f85919061233f565b505050565b6001600160a01b038316610fec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161073c565b6001600160a01b03821661104d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161073c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111125760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161073c565b6001600160a01b0382166111745760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161073c565b600081116111d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161073c565b6001600160a01b03831660009081526004602052604090205460ff1615801561121857506001600160a01b03821660009081526004602052604090205460ff16155b1561126457600b5460ff166112645760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b604482015260640161073c565b600c546001600160a01b03848116911614801561128f5750600c546001600160a01b03838116911614155b80156112b457506001600160a01b03821660009081526004602052604090205460ff16155b1561137057600f5481111561130b5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161073c565b6010548161131884610ad8565b61132291906122d4565b11156113705760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161073c565b600060115461137e30610ad8565b600b54911115915062010000900460ff161580156113a35750600b54610100900460ff165b80156113ac5750805b80156113b9575060115482115b80156113d35750600c546001600160a01b03858116911614155b80156113f857506001600160a01b03841660009081526004602052604090205460ff16155b801561141d57506001600160a01b03831660009081526004602052604090205460ff16155b1561146657600c546001600160a01b0390811690841603611466576011546040805160608101825260185481526019546020820152601a549181019190915261146691906115e9565b600b5460019060009062010000900460ff168061149b57506001600160a01b03861660009081526004602052604090205460ff165b806114be57506001600160a01b03851660009081526004602052604090205460ff165b156114c857600091505b600c546001600160a01b03908116908616036114e2575060015b600c546001600160a01b0387811691161480159061150e5750600c546001600160a01b03868116911614155b1561151857600091505b611525868686858561172c565b505050505050565b600080600061153a611a38565b909250905061154981836122b2565b9250505090565b61155861209f565b61156486868686611bbb565b905061157a81878761157461152d565b86611d18565b6080860152606085015260408401526020830152815295945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600b805462ff000019166201000017905560208101516040820151600091611610916122d4565b61161b90600261236d565b90508060000361162b575061171c565b60008183604001518561163e919061236d565b61164891906122b2565b90506000611656828661229f565b90504761166282611db6565b600061166e824761229f565b90506000866040015186611682919061229f565b61168c90836122b2565b905060008760400151826116a0919061236d565b905080156116b2576116b28682611f2f565b60208801516000906116c584600261236d565b6116cf919061236d565b90508015611713576008546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611711573d6000803e3d6000fd5b505b50505050505050505b5050600b805462ff000019169055565b6001600160a01b03851660009081526004602052604081205460ff1615801561176e57506001600160a01b03851660009081526004602052604090205460ff16155b8015611788575060145460135461178591906122d4565b43105b905060006117ba858585856117b58c6001600160a01b031660009081526012602052604090205460ff1690565b611550565b6001600160a01b03881660009081526005602052604090205490915060ff161561181c576001600160a01b03871660009081526002602052604090205461180290869061229f565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff161561187f5760a08101516001600160a01b03871660009081526002602052604090205461186591906122d4565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b0388166000908152600160205260409020546118a4919061229f565b6001600160a01b03808916600090815260016020908152604080832094909455840151918916815291909120546118db91906122d4565b6001600160a01b038716600090815260016020526040908190209190915581015115158061190d575060008160c00151115b156119245761192481604001518260c00151611fdf565b60008160800151118061193c57506000816101000151115b156119b0576119548160800151826101000151612014565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e0015184610100015161199e91906122d4565b60405190815260200160405180910390a35b6000816060015111806119c7575060008160e00151115b156119de576119de81606001518260e0015161208a565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611a2791815260200190565b60405180910390a350505050505050565b600e54600d546000918291825b600a54811015611b8a578260016000600a8481548110611a6757611a67612384565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611ad257508160026000600a8481548110611aab57611aab612384565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611ae857600e54600d54945094505050509091565b60016000600a8381548110611aff57611aff612384565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b2e908461229f565b925060026000600a8381548110611b4757611b47612384565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b76908361229f565b915080611b828161239a565b915050611a45565b50600d54600e54611b9b91906122b2565b821015611bb257600e54600d549350935050509091565b90939092509050565b611bc361209f565b83611bd45760a08101859052611d10565b611bf860405180606001604052806000815260200160008152602001600081525090565b838015611c03575082155b15611c2f57506040805160608101825260185481526019546020820152601a5491810191909152611c7e565b82611c5b5750604080516060810182526015548152601654602082015260175491810191909152611c7e565b5060408051606081018252601b548152601c546020820152601d54918101919091525b8051606490611c8d908861236d565b611c9791906122b2565b60c08301526020810151606490611cae908861236d565b611cb891906122b2565b60e08301526040810151606490611ccf908861236d565b611cd991906122b2565b610100830181905260e083015160c0840151611cf5908961229f565b611cff919061229f565b611d09919061229f565b60a0830152505b949350505050565b600080808080611d28878a61236d565b945087611d4f5785611d3a5784611d3d565b60005b94935060009250829150819050611da9565b868a60c00151611d5f919061236d565b9250868a60e00151611d71919061236d565b9150868a6101000151611d84919061236d565b90508082611d92858861229f565b611d9c919061229f565b611da6919061229f565b93505b9550955095509550959050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611deb57611deb612384565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8291906122e7565b81600181518110611e9557611e95612384565b6001600160a01b039283166020918202929092010152600b54611ec2913091630100000090041684610f8a565b600b5460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611f019085906000908690309042906004016123b3565b600060405180830381600087803b158015611f1b57600080fd5b505af1158015611525573d6000803e3d6000fd5b600b54611f4e903090630100000090046001600160a01b031684610f8a565b600b5460065460405163f305d71960e01b81526001600160a01b03630100000090930483169263f305d719928592611f959230928992600092839216904290600401612304565b60606040518083038185885af1158015611fb3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fd8919061233f565b5050505050565b81600e6000828254611ff1919061229f565b9091555050601e805482919060009061200b9084906122d4565b90915550505050565b80601e600201600082825461202991906122d4565b90915550503060009081526005602052604090205460ff161561206b5730600090815260026020526040812080548392906120659084906122d4565b90915550505b306000908152600160205260408120805484929061200b9084906122d4565b80601e600101600082825461202991906122d4565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b81811015612118578581018301518582016040015282016120fc565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ce457600080fd5b6000806040838503121561216157600080fd5b823561216c81612139565b946020939093013593505050565b60008060006060848603121561218f57600080fd5b833561219a81612139565b925060208401356121aa81612139565b929592945050506040919091013590565b6000602082840312156121cd57600080fd5b5035919050565b600080604083850312156121e757600080fd5b82359150602083013580151581146121fe57600080fd5b809150509250929050565b60006020828403121561221b57600080fd5b81356108b381612139565b6000806040838503121561223957600080fd5b823561224481612139565b915060208301356121fe81612139565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561070c5761070c612289565b6000826122cf57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561070c5761070c612289565b6000602082840312156122f957600080fd5b81516108b381612139565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561235457600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761070c5761070c612289565b634e487b7160e01b600052603260045260246000fd5b6000600182016123ac576123ac612289565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124035784516001600160a01b0316835293830193918301916001016123de565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220525bd4e5e8bcd54f2dce8ac233ca14efcbaccf436c8b54050ce812280e771b5064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102135760003560e01c806375f0a87411610118578063a8aa1b31116100a0578063e2f456051161006f578063e2f4560514610677578063f2fde38b1461068d578063f66895a3146106ad578063f7f23a0c146106cc578063f887ea40146106d457600080fd5b8063a8aa1b31146105db578063a9059cbb146105fb578063af465a271461061b578063dd62ed3e1461063157600080fd5b80638da5cb5b116100e75780638da5cb5b1461053a5780638f9a55c01461055857806395d89b411461056e5780639ba5e4d51461059c578063a457c2d7146105bb57600080fd5b806375f0a874146104ab5780637d1db4a5146104cb57806385141a77146104e157806388f820201461050157600080fd5b8063395093511161019b5780635342acb41161016a5780635342acb4146103ee57806370a0823114610427578063715018a614610447578063728f8eea1461045c578063751039fc1461049657600080fd5b806339509351146103745780634549b039146103945780634ada218b146103b457806352390c02146103ce57600080fd5b806320800a00116101e257806320800a00146102cb57806323b872dd146102e05780632d838119146103005780632dc0562d14610320578063313ce5671461035857600080fd5b806306fdde031461021f578063095ea7b31461026557806318160ddd146102955780631d97b7cd146102b457600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600b81526a0547572626f205472756d760ac1b60208201525b60405161025c91906120eb565b60405180910390f35b34801561027157600080fd5b5061028561028036600461214e565b6106fb565b604051901515815260200161025c565b3480156102a157600080fd5b50600d545b60405190815260200161025c565b3480156102c057600080fd5b506102c9610712565b005b3480156102d757600080fd5b506102c96107ad565b3480156102ec57600080fd5b506102856102fb36600461217a565b6107eb565b34801561030c57600080fd5b506102a661031b3660046121bb565b61089c565b34801561032c57600080fd5b50600854610340906001600160a01b031681565b6040516001600160a01b03909116815260200161025c565b34801561036457600080fd5b506040516009815260200161025c565b34801561038057600080fd5b5061028561038f36600461214e565b6108ba565b3480156103a057600080fd5b506102a66103af3660046121d4565b6108f1565b3480156103c057600080fd5b50600b546102859060ff1681565b3480156103da57600080fd5b506102c96103e9366004612209565b610985565b3480156103fa57600080fd5b50610285610409366004612209565b6001600160a01b031660009081526012602052604090205460ff1690565b34801561043357600080fd5b506102a6610442366004612209565b610ad8565b34801561045357600080fd5b506102c9610b37565b34801561046857600080fd5b5060155460165460175461047b92919083565b6040805193845260208401929092529082015260600161025c565b3480156104a257600080fd5b506102c9610b6d565b3480156104b757600080fd5b50600754610340906001600160a01b031681565b3480156104d757600080fd5b506102a6600f5481565b3480156104ed57600080fd5b50600654610340906001600160a01b031681565b34801561050d57600080fd5b5061028561051c366004612209565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561054657600080fd5b506000546001600160a01b0316610340565b34801561056457600080fd5b506102a660105481565b34801561057a57600080fd5b5060408051808201909152600581526405452554d560dc1b602082015261024f565b3480156105a857600080fd5b50601e54601f5460205461047b92919083565b3480156105c757600080fd5b506102856105d636600461214e565b610ba4565b3480156105e757600080fd5b50600c54610340906001600160a01b031681565b34801561060757600080fd5b5061028561061636600461214e565b610c3f565b34801561062757600080fd5b506102a6600d5481565b34801561063d57600080fd5b506102a661064c366004612226565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561068357600080fd5b506102a660115481565b34801561069957600080fd5b506102c96106a8366004612209565b610c4c565b3480156106b957600080fd5b50601854601954601a5461047b92919083565b6102c9610ce7565b3480156106e057600080fd5b50600b5461034090630100000090046001600160a01b031681565b6000610708338484610f8a565b5060015b92915050565b6000546001600160a01b031633146107455760405162461bcd60e51b815260040161073c90612254565b60405180910390fd5b600b5460ff16156107985760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e670000000000000000604482015260640161073c565b600b805461ffff191661010117905543601355565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f193505050501580156107e7573d6000803e3d6000fd5b5050565b60006107f88484846110ae565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561087d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161073c565b610891853361088c868561229f565b610f8a565b506001949350505050565b6000806108a761152d565b90506108b381846122b2565b9392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161070891859061088c9086906122d4565b6000600d548311156109455760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161073c565b8161096657600061095c8460016000806000611550565b51915061070c9050565b60006109788460016000806000611550565b60200151915061070c9050565b6000546001600160a01b031633146109af5760405162461bcd60e51b815260040161073c90612254565b6001600160a01b03811660009081526005602052604090205460ff1615610a185760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161073c565b6001600160a01b03811660009081526001602052604090205415610a72576001600160a01b038116600090815260016020526040902054610a589061089c565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff1615610b1557506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461070c9061089c565b6000546001600160a01b03163314610b615760405162461bcd60e51b815260040161073c90612254565b610b6b6000611599565b565b6000546001600160a01b03163314610b975760405162461bcd60e51b815260040161073c90612254565b600d54600f819055601055565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610c265760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161073c565b610c35338561088c868561229f565b5060019392505050565b60006107083384846110ae565b6000546001600160a01b03163314610c765760405162461bcd60e51b815260040161073c90612254565b6001600160a01b038116610cdb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073c565b610ce481611599565b50565b6000546001600160a01b03163314610d115760405162461bcd60e51b815260040161073c90612254565b600b60039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8891906122e7565b6001600160a01b031663c9c6539630600b60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e91906122e7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f91906122e7565b600c80546001600160a01b0319166001600160a01b03928316179055600b54610eb49130916301000000900416600019610f8a565b600c54610ec9906001600160a01b0316610985565b6009546001600160a01b039081166000908152601260205260409020805460ff19166001179055600b54630100000090041663f305d7193430610f0b81610ad8565b600080610f206000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f4296959493929190612304565b60606040518083038185885af1158015610f60573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f85919061233f565b505050565b6001600160a01b038316610fec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161073c565b6001600160a01b03821661104d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161073c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111125760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161073c565b6001600160a01b0382166111745760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161073c565b600081116111d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161073c565b6001600160a01b03831660009081526004602052604090205460ff1615801561121857506001600160a01b03821660009081526004602052604090205460ff16155b1561126457600b5460ff166112645760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b604482015260640161073c565b600c546001600160a01b03848116911614801561128f5750600c546001600160a01b03838116911614155b80156112b457506001600160a01b03821660009081526004602052604090205460ff16155b1561137057600f5481111561130b5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161073c565b6010548161131884610ad8565b61132291906122d4565b11156113705760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161073c565b600060115461137e30610ad8565b600b54911115915062010000900460ff161580156113a35750600b54610100900460ff165b80156113ac5750805b80156113b9575060115482115b80156113d35750600c546001600160a01b03858116911614155b80156113f857506001600160a01b03841660009081526004602052604090205460ff16155b801561141d57506001600160a01b03831660009081526004602052604090205460ff16155b1561146657600c546001600160a01b0390811690841603611466576011546040805160608101825260185481526019546020820152601a549181019190915261146691906115e9565b600b5460019060009062010000900460ff168061149b57506001600160a01b03861660009081526004602052604090205460ff165b806114be57506001600160a01b03851660009081526004602052604090205460ff165b156114c857600091505b600c546001600160a01b03908116908616036114e2575060015b600c546001600160a01b0387811691161480159061150e5750600c546001600160a01b03868116911614155b1561151857600091505b611525868686858561172c565b505050505050565b600080600061153a611a38565b909250905061154981836122b2565b9250505090565b61155861209f565b61156486868686611bbb565b905061157a81878761157461152d565b86611d18565b6080860152606085015260408401526020830152815295945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600b805462ff000019166201000017905560208101516040820151600091611610916122d4565b61161b90600261236d565b90508060000361162b575061171c565b60008183604001518561163e919061236d565b61164891906122b2565b90506000611656828661229f565b90504761166282611db6565b600061166e824761229f565b90506000866040015186611682919061229f565b61168c90836122b2565b905060008760400151826116a0919061236d565b905080156116b2576116b28682611f2f565b60208801516000906116c584600261236d565b6116cf919061236d565b90508015611713576008546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611711573d6000803e3d6000fd5b505b50505050505050505b5050600b805462ff000019169055565b6001600160a01b03851660009081526004602052604081205460ff1615801561176e57506001600160a01b03851660009081526004602052604090205460ff16155b8015611788575060145460135461178591906122d4565b43105b905060006117ba858585856117b58c6001600160a01b031660009081526012602052604090205460ff1690565b611550565b6001600160a01b03881660009081526005602052604090205490915060ff161561181c576001600160a01b03871660009081526002602052604090205461180290869061229f565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff161561187f5760a08101516001600160a01b03871660009081526002602052604090205461186591906122d4565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b0388166000908152600160205260409020546118a4919061229f565b6001600160a01b03808916600090815260016020908152604080832094909455840151918916815291909120546118db91906122d4565b6001600160a01b038716600090815260016020526040908190209190915581015115158061190d575060008160c00151115b156119245761192481604001518260c00151611fdf565b60008160800151118061193c57506000816101000151115b156119b0576119548160800151826101000151612014565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e0015184610100015161199e91906122d4565b60405190815260200160405180910390a35b6000816060015111806119c7575060008160e00151115b156119de576119de81606001518260e0015161208a565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a00151604051611a2791815260200190565b60405180910390a350505050505050565b600e54600d546000918291825b600a54811015611b8a578260016000600a8481548110611a6757611a67612384565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611ad257508160026000600a8481548110611aab57611aab612384565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611ae857600e54600d54945094505050509091565b60016000600a8381548110611aff57611aff612384565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b2e908461229f565b925060026000600a8381548110611b4757611b47612384565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b76908361229f565b915080611b828161239a565b915050611a45565b50600d54600e54611b9b91906122b2565b821015611bb257600e54600d549350935050509091565b90939092509050565b611bc361209f565b83611bd45760a08101859052611d10565b611bf860405180606001604052806000815260200160008152602001600081525090565b838015611c03575082155b15611c2f57506040805160608101825260185481526019546020820152601a5491810191909152611c7e565b82611c5b5750604080516060810182526015548152601654602082015260175491810191909152611c7e565b5060408051606081018252601b548152601c546020820152601d54918101919091525b8051606490611c8d908861236d565b611c9791906122b2565b60c08301526020810151606490611cae908861236d565b611cb891906122b2565b60e08301526040810151606490611ccf908861236d565b611cd991906122b2565b610100830181905260e083015160c0840151611cf5908961229f565b611cff919061229f565b611d09919061229f565b60a0830152505b949350505050565b600080808080611d28878a61236d565b945087611d4f5785611d3a5784611d3d565b60005b94935060009250829150819050611da9565b868a60c00151611d5f919061236d565b9250868a60e00151611d71919061236d565b9150868a6101000151611d84919061236d565b90508082611d92858861229f565b611d9c919061229f565b611da6919061229f565b93505b9550955095509550959050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611deb57611deb612384565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8291906122e7565b81600181518110611e9557611e95612384565b6001600160a01b039283166020918202929092010152600b54611ec2913091630100000090041684610f8a565b600b5460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611f019085906000908690309042906004016123b3565b600060405180830381600087803b158015611f1b57600080fd5b505af1158015611525573d6000803e3d6000fd5b600b54611f4e903090630100000090046001600160a01b031684610f8a565b600b5460065460405163f305d71960e01b81526001600160a01b03630100000090930483169263f305d719928592611f959230928992600092839216904290600401612304565b60606040518083038185885af1158015611fb3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fd8919061233f565b5050505050565b81600e6000828254611ff1919061229f565b9091555050601e805482919060009061200b9084906122d4565b90915550505050565b80601e600201600082825461202991906122d4565b90915550503060009081526005602052604090205460ff161561206b5730600090815260026020526040812080548392906120659084906122d4565b90915550505b306000908152600160205260408120805484929061200b9084906122d4565b80601e600101600082825461202991906122d4565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b81811015612118578581018301518582016040015282016120fc565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ce457600080fd5b6000806040838503121561216157600080fd5b823561216c81612139565b946020939093013593505050565b60008060006060848603121561218f57600080fd5b833561219a81612139565b925060208401356121aa81612139565b929592945050506040919091013590565b6000602082840312156121cd57600080fd5b5035919050565b600080604083850312156121e757600080fd5b82359150602083013580151581146121fe57600080fd5b809150509250929050565b60006020828403121561221b57600080fd5b81356108b381612139565b6000806040838503121561223957600080fd5b823561224481612139565b915060208301356121fe81612139565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561070c5761070c612289565b6000826122cf57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561070c5761070c612289565b6000602082840312156122f957600080fd5b81516108b381612139565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561235457600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761070c5761070c612289565b634e487b7160e01b600052603260045260246000fd5b6000600182016123ac576123ac612289565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124035784516001600160a01b0316835293830193918301916001016123de565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220525bd4e5e8bcd54f2dce8ac233ca14efcbaccf436c8b54050ce812280e771b5064736f6c63430008130033

Deployed Bytecode Sourcemap

3432:16879:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6760:83;;;;;;;;;;-1:-1:-1;6830:5:0;;;;;;;;;;;;-1:-1:-1;;;6830:5:0;;;;6760:83;;;;;;;:::i;:::-;;;;;;;;7497:161;;;;;;;;;;-1:-1:-1;7497:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7497:161:0;1023:187:1;7037:95:0;;;;;;;;;;-1:-1:-1;7117:7:0;;7037:95;;;1361:25:1;;;1349:2;1334:18;7037:95:0;1215:177:1;9577:215:0;;;;;;;;;;;;;:::i;:::-;;20108:163;;;;;;;;;;;;;:::i;7666:448::-;;;;;;;;;;-1:-1:-1;7666:448:0;;;;;:::i;:::-;;:::i;9800:253::-;;;;;;;;;;-1:-1:-1;9800:253:0;;;;;:::i;:::-;;:::i;3970:70::-;;;;;;;;;;-1:-1:-1;3970:70:0;;;;-1:-1:-1;;;;;3970:70:0;;;;;;-1:-1:-1;;;;;2207:32:1;;;2189:51;;2177:2;2162:18;3970:70:0;2043:203:1;6946:83:0;;;;;;;;;;-1:-1:-1;6946:83:0;;4348:1;2393:36:1;;2381:2;2366:18;6946:83:0;2251:184:1;8122:207:0;;;;;;;;;;-1:-1:-1;8122:207:0;;;;;:::i;:::-;;:::i;9038:531::-;;;;;;;;;;-1:-1:-1;9038:531:0;;;;;:::i;:::-;;:::i;4163:26::-;;;;;;;;;;-1:-1:-1;4163:26:0;;;;;;;;10061:332;;;;;;;;;;-1:-1:-1;10061:332:0;;;;;:::i;:::-;;:::i;10401:125::-;;;;;;;;;;-1:-1:-1;10401:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;10490:28:0;10466:4;10490:28;;;:19;:28;;;;;;;;;10401:125;7140:198;;;;;;;;;;-1:-1:-1;7140:198:0;;;;;:::i;:::-;;:::i;1746:94::-;;;;;;;;;;;;;:::i;5029:35::-;;;;;;;;;;-1:-1:-1;5029:35:0;;;;;;;;;;;;;;;;3240:25:1;;;3296:2;3281:18;;3274:34;;;;3324:18;;;3317:34;3228:2;3213:18;5029:35:0;3038:319:1;16767:116:0;;;;;;;;;;;;;:::i;3887:76::-;;;;;;;;;;-1:-1:-1;3887:76:0;;;;-1:-1:-1;;;;;3887:76:0;;;4617:49;;;;;;;;;;;;;;;;3810:70;;;;;;;;;;-1:-1:-1;3810:70:0;;;;-1:-1:-1;;;;;3810:70:0;;;8910:120;;;;;;;;;;-1:-1:-1;8910:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9002:20:0;8978:4;9002:20;;;:11;:20;;;;;;;;;8910:120;1523:87;;;;;;;;;;-1:-1:-1;1569:7:0;1596:6;-1:-1:-1;;;;;1596:6:0;1523:87;;4673:51;;;;;;;;;;;;;;;;6851:87;;;;;;;;;;-1:-1:-1;6923:7:0;;;;;;;;;;;;-1:-1:-1;;;6923:7:0;;;;6851:87;;5286:36;;;;;;;;;;-1:-1:-1;5286:36:0;;;;;;;;;;;;8337:392;;;;;;;;;;-1:-1:-1;8337:392:0;;;;;:::i;:::-;;:::i;4285:19::-;;;;;;;;;;-1:-1:-1;4285:19:0;;;;-1:-1:-1;;;;;4285:19:0;;;8737:165;;;;;;;;;;-1:-1:-1;8737:165:0;;;;;:::i;:::-;;:::i;4398:54::-;;;;;;;;;;;;;;;;7346:143;;;;;;;;;;-1:-1:-1;7346:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7454:18:0;;;7427:7;7454:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7346:143;4731:50;;;;;;;;;;;;;;;;1848:192;;;;;;;;;;-1:-1:-1;1848:192:0;;;;;:::i;:::-;;:::i;5071:39::-;;;;;;;;;;-1:-1:-1;5071:39:0;;;;;;;;;;;;6250:498;;;:::i;4257:21::-;;;;;;;;;;-1:-1:-1;4257:21:0;;;;;;;-1:-1:-1;;;;;4257:21:0;;;7497:161;7572:4;7589:39;1024:10;7612:7;7621:6;7589:8;:39::i;:::-;-1:-1:-1;7646:4:0;7497:161;;;;;:::o;9577:215::-;1569:7;1596:6;-1:-1:-1;;;;;1596:6:0;1024:10;1658:23;1650:68;;;;-1:-1:-1;;;1650:68:0;;;;;;;:::i;:::-;;;;;;;;;9641:14:::1;::::0;::::1;;9640:15;9632:52;;;::::0;-1:-1:-1;;;9632:52:0;;4541:2:1;9632:52:0::1;::::0;::::1;4523:21:1::0;4580:2;4560:18;;;4553:30;4619:26;4599:18;;;4592:54;4663:18;;9632:52:0::1;4339:348:1::0;9632:52:0::1;9695:14;:21:::0;;-1:-1:-1;;9727:18:0;;;;;9772:12:::1;9756:13;:28:::0;9577:215::o;20108:163::-;20218:15;;20210:53;;20178:21;;-1:-1:-1;;;;;20218:15:0;;20210:53;;;;;20178:21;;20149:26;20210:53;20149:26;20210:53;20178:21;20218:15;20210:53;;;;;;;;;;;;;;;;;;;;;20138:133;20108:163::o;7666:448::-;7798:4;7815:36;7825:6;7833:9;7844:6;7815:9;:36::i;:::-;-1:-1:-1;;;;;7891:19:0;;7864:24;7891:19;;;:11;:19;;;;;;;;1024:10;7891:33;;;;;;;;7943:26;;;;7935:79;;;;-1:-1:-1;;;7935:79:0;;4894:2:1;7935:79:0;;;4876:21:1;4933:2;4913:18;;;4906:30;4972:34;4952:18;;;4945:62;-1:-1:-1;;;5023:18:1;;;5016:38;5071:19;;7935:79:0;4692:404:1;7935:79:0;8025:57;8034:6;1024:10;8056:25;8075:6;8056:16;:25;:::i;:::-;8025:8;:57::i;:::-;-1:-1:-1;8102:4:0;;7666:448;-1:-1:-1;;;;7666:448:0:o;9800:253::-;9867:7;9974:19;9996:10;:8;:10::i;:::-;9974:32;-1:-1:-1;10024:21:0;9974:32;10024:7;:21;:::i;:::-;10017:28;9800:253;-1:-1:-1;;;9800:253:0:o;8122:207::-;1024:10;8202:4;8251:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8251:34:0;;;;;;;;;;8202:4;;8219:80;;8242:7;;8251:47;;8288:10;;8251:47;:::i;9038:531::-;9156:7;9200;;9189;:18;;9181:62;;;;-1:-1:-1;;;9181:62:0;;5920:2:1;9181:62:0;;;5902:21:1;5959:2;5939:18;;;5932:30;5998:33;5978:18;;;5971:61;6049:18;;9181:62:0;5718:355:1;9181:62:0;9259:17;9254:308;;9293:28;9324:46;9335:7;9344:4;9350:5;9357;9364;9324:10;:46::i;:::-;9392:9;;-1:-1:-1;9385:16:0;;-1:-1:-1;9385:16:0;9254:308;9434:28;9465:46;9476:7;9485:4;9491:5;9498;9505;9465:10;:46::i;:::-;9533:17;;;;-1:-1:-1;9526:24:0;;-1:-1:-1;9526:24:0;10061:332;1569:7;1596:6;-1:-1:-1;;;;;1596:6:0;1024:10;1658:23;1650:68;;;;-1:-1:-1;;;1650:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10142:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10141:21;10133:61;;;::::0;-1:-1:-1;;;10133:61:0;;6280:2:1;10133:61:0::1;::::0;::::1;6262:21:1::0;6319:2;6299:18;;;6292:30;6358:29;6338:18;;;6331:57;6405:18;;10133:61:0::1;6078:351:1::0;10133:61:0::1;-1:-1:-1::0;;;;;10209:16:0;::::1;10228:1;10209:16:::0;;;:7:::1;:16;::::0;;;;;:20;10205:109:::1;;-1:-1:-1::0;;;;;10285:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;10265:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;10246:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;10205:109:::1;-1:-1:-1::0;;;;;10324:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;10324:27:0::1;10347:4;10324:27:::0;;::::1;::::0;;;10362:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;10362:23:0::1;::::0;;::::1;::::0;;10061:332::o;7140:198::-;-1:-1:-1;;;;;7230:20:0;;7206:7;7230:20;;;:11;:20;;;;;;;;7226:49;;;-1:-1:-1;;;;;;7259:16:0;;;;;:7;:16;;;;;;;7140:198::o;7226:49::-;-1:-1:-1;;;;;7313:16:0;;;;;;:7;:16;;;;;;7293:37;;:19;:37::i;1746:94::-;1569:7;1596:6;-1:-1:-1;;;;;1596:6:0;1024:10;1658:23;1650:68;;;;-1:-1:-1;;;1650:68:0;;;;;;;:::i;:::-;1811:21:::1;1829:1;1811:9;:21::i;:::-;1746:94::o:0;16767:116::-;1569:7;1596:6;-1:-1:-1;;;;;1596:6:0;1024:10;1658:23;1650:68;;;;-1:-1:-1;;;1650:68:0;;;;;;;:::i;:::-;16835:7:::1;::::0;16820:12:::1;:22:::0;;;16853:14:::1;:22:::0;16767:116::o;8337:392::-;1024:10;8440:4;8489:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8489:34:0;;;;;;;;;;8542:35;;;;8534:85;;;;-1:-1:-1;;;8534:85:0;;6636:2:1;8534:85:0;;;6618:21:1;6675:2;6655:18;;;6648:30;6714:34;6694:18;;;6687:62;-1:-1:-1;;;6765:18:1;;;6758:35;6810:19;;8534:85:0;6434:401:1;8534:85:0;8630:67;1024:10;8653:7;8662:34;8681:15;8662:16;:34;:::i;8630:67::-;-1:-1:-1;8717:4:0;;8337:392;-1:-1:-1;;;8337:392:0:o;8737:165::-;8815:4;8832:40;8842:10;8854:9;8865:6;8832:9;:40::i;1848:192::-;1569:7;1596:6;-1:-1:-1;;;;;1596:6:0;1024:10;1658:23;1650:68;;;;-1:-1:-1;;;1650:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1937:22:0;::::1;1929:73;;;::::0;-1:-1:-1;;;1929:73:0;;7042:2:1;1929:73:0::1;::::0;::::1;7024:21:1::0;7081:2;7061:18;;;7054:30;7120:34;7100:18;;;7093:62;-1:-1:-1;;;7171:18:1;;;7164:36;7217:19;;1929:73:0::1;6840:402:1::0;1929:73:0::1;2013:19;2023:8;2013:9;:19::i;:::-;1848:192:::0;:::o;6250:498::-;1569:7;1596:6;-1:-1:-1;;;;;1596:6:0;1024:10;1658:23;1650:68;;;;-1:-1:-1;;;1650:68:0;;;;;;;:::i;:::-;6324:6:::1;;;;;;;;;-1:-1:-1::0;;;;;6324:6:0::1;-1:-1:-1::0;;;;;6324:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6315:37:0::1;;6361:4;6368:6;;;;;;;;;-1:-1:-1::0;;;;;6368:6:0::1;-1:-1:-1::0;;;;;6368:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6315:67;::::0;-1:-1:-1;;;;;;6315:67:0::1;::::0;;;;;;-1:-1:-1;;;;;7733:15:1;;;6315:67:0::1;::::0;::::1;7715:34:1::0;7785:15;;7765:18;;;7758:43;7650:18;;6315:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6308:4;:74:::0;;-1:-1:-1;;;;;;6308:74:0::1;-1:-1:-1::0;;;;;6308:74:0;;::::1;;::::0;;6425:6:::1;::::0;6393:59:::1;::::0;6410:4:::1;::::0;6425:6;;::::1;;-1:-1:-1::0;;6393:8:0::1;:59::i;:::-;6481:4;::::0;6463:23:::1;::::0;-1:-1:-1;;;;;6481:4:0::1;6463:17;:23::i;:::-;6508:9;::::0;-1:-1:-1;;;;;6508:9:0;;::::1;6488:30;::::0;;;:19:::1;:30;::::0;;;;:37;;-1:-1:-1;;6488:37:0::1;6521:4;6488:37;::::0;;6536:6:::1;::::0;;;::::1;;:22;6566:9;6599:4;6619:24;6599:4:::0;6619:9:::1;:24::i;:::-;6658:1;6675::::0;6692:7:::1;1569::::0;1596:6;-1:-1:-1;;;;;1596:6:0;;1523:87;6692:7:::1;6714:15;6536:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6250:498::o:0;14946:369::-;-1:-1:-1;;;;;15073:19:0;;15065:68;;;;-1:-1:-1;;;15065:68:0;;8937:2:1;15065:68:0;;;8919:21:1;8976:2;8956:18;;;8949:30;9015:34;8995:18;;;8988:62;-1:-1:-1;;;9066:18:1;;;9059:34;9110:19;;15065:68:0;8735:400:1;15065:68:0;-1:-1:-1;;;;;15152:21:0;;15144:68;;;;-1:-1:-1;;;15144:68:0;;9342:2:1;15144:68:0;;;9324:21:1;9381:2;9361:18;;;9354:30;9420:34;9400:18;;;9393:62;-1:-1:-1;;;9471:18:1;;;9464:32;9513:19;;15144:68:0;9140:398:1;15144:68:0;-1:-1:-1;;;;;15223:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15275:32;;1361:25:1;;;15275:32:0;;1334:18:1;15275:32:0;;;;;;;14946:369;;;:::o;15323:1436::-;-1:-1:-1;;;;;15445:18:0;;15437:68;;;;-1:-1:-1;;;15437:68:0;;9745:2:1;15437:68:0;;;9727:21:1;9784:2;9764:18;;;9757:30;9823:34;9803:18;;;9796:62;-1:-1:-1;;;9874:18:1;;;9867:35;9919:19;;15437:68:0;9543:401:1;15437:68:0;-1:-1:-1;;;;;15524:16:0;;15516:64;;;;-1:-1:-1;;;15516:64:0;;10151:2:1;15516:64:0;;;10133:21:1;10190:2;10170:18;;;10163:30;10229:34;10209:18;;;10202:62;-1:-1:-1;;;10280:18:1;;;10273:33;10323:19;;15516:64:0;9949:399:1;15516:64:0;15608:1;15599:6;:10;15591:64;;;;-1:-1:-1;;;15591:64:0;;10555:2:1;15591:64:0;;;10537:21:1;10594:2;10574:18;;;10567:30;10633:34;10613:18;;;10606:62;-1:-1:-1;;;10684:18:1;;;10677:39;10733:19;;15591:64:0;10353:405:1;15591:64:0;-1:-1:-1;;;;;15673:24:0;;;;;;:18;:24;;;;;;;;15672:25;:52;;;;-1:-1:-1;;;;;;15702:22:0;;;;;;:18;:22;;;;;;;;15701:23;15672:52;15668:130;;;15749:14;;;;15741:45;;;;-1:-1:-1;;;15741:45:0;;10965:2:1;15741:45:0;;;10947:21:1;11004:2;10984:18;;;10977:30;-1:-1:-1;;;11023:18:1;;;11016:48;11081:18;;15741:45:0;10763:342:1;15741:45:0;15822:4;;-1:-1:-1;;;;;15814:12:0;;;15822:4;;15814:12;:35;;;;-1:-1:-1;15844:4:0;;-1:-1:-1;;;;;15830:19:0;;;15844:4;;15830:19;;15814:35;:62;;;;-1:-1:-1;;;;;;15854:22:0;;;;;;:18;:22;;;;;;;;15853:23;15814:62;15810:250;;;15912:12;;15902:6;:22;;15894:60;;;;-1:-1:-1;;;15894:60:0;;11312:2:1;15894:60:0;;;11294:21:1;11351:2;11331:18;;;11324:30;11390:27;11370:18;;;11363:55;11435:18;;15894:60:0;11110:349:1;15894:60:0;16003:14;;15993:6;15977:13;15987:2;15977:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;15969:79;;;;-1:-1:-1;;;15969:79:0;;11666:2:1;15969:79:0;;;11648:21:1;11705:2;11685:18;;;11678:30;11744:28;11724:18;;;11717:56;11790:18;;15969:79:0;11464:350:1;15969:79:0;16072:12;16115:18;;16087:24;16105:4;16087:9;:24::i;:::-;16149:8;;-1:-1:-1;;16087:46:0;;-1:-1:-1;16149:8:0;;;;;16148:9;:24;;;;-1:-1:-1;16161:11:0;;;;;;;16148:24;:35;;;;;16176:7;16148:35;:66;;;;;16196:18;;16187:6;:27;16148:66;:82;;;;-1:-1:-1;16226:4:0;;-1:-1:-1;;;;;16218:12:0;;;16226:4;;16218:12;;16148:82;:111;;;;-1:-1:-1;;;;;;16235:24:0;;;;;;:18;:24;;;;;;;;16234:25;16148:111;:148;;;;-1:-1:-1;;;;;;16274:22:0;;;;;;:18;:22;;;;;;;;16273:23;16148:148;16144:252;;;16333:4;;-1:-1:-1;;;;;16333:4:0;;;16327:10;;;;16323:61;;16354:18;;16339:45;;;;;;;;16374:9;16339:45;;;;;;;;;;;;;;;;;;;;16354:18;16339:14;:45::i;:::-;16470:8;;16421:4;;16406:12;;16470:8;;;;;;:36;;-1:-1:-1;;;;;;16482:24:0;;;;;;:18;:24;;;;;;;;16470:36;:62;;;-1:-1:-1;;;;;;16510:22:0;;;;;;:18;:22;;;;;;;;16470:62;16466:83;;;16544:5;16534:15;;16466:83;16570:4;;-1:-1:-1;;;;;16570:4:0;;;16564:10;;;;16560:29;;-1:-1:-1;16585:4:0;16560:29;16612:4;;-1:-1:-1;;;;;16604:12:0;;;16612:4;;16604:12;;;;:26;;-1:-1:-1;16626:4:0;;-1:-1:-1;;;;;16620:10:0;;;16626:4;;16620:10;;16604:26;16600:83;;;16667:5;16657:15;;16600:83;16702:49;16717:4;16723:2;16727:6;16735:7;16744:6;16702:14;:49::i;:::-;15426:1333;;;15323:1436;;;:::o;14205:161::-;14247:7;14268:15;14285;14304:19;:17;:19::i;:::-;14267:56;;-1:-1:-1;14267:56:0;-1:-1:-1;14341:17:0;14267:56;;14341:17;:::i;:::-;14334:24;;;;14205:161;:::o;11943:591::-;12117:36;;:::i;:::-;12178:51;12190:7;12199;12208:6;12216:12;12178:11;:51::i;:::-;12166:63;;12425:65;12438:9;12449:7;12458;12467:10;:8;:10::i;:::-;12479;12425:12;:65::i;:::-;12391:20;;;12240:250;12356:20;;;12240:250;12327:14;;;12240:250;12287:25;;;12240:250;;;11943:591;;;;;;;:::o;2048:173::-;2104:16;2123:6;;-1:-1:-1;;;;;2140:17:0;;;-1:-1:-1;;;;;;2140:17:0;;;;;;2173:40;;2123:6;;;;;;;2173:40;;2104:16;2173:40;2093:128;2048:173;:::o;18182:1023::-;5690:8;:15;;-1:-1:-1;;5690:15:0;;;;;18334:14:::1;::::0;::::1;::::0;18304::::1;::::0;::::1;::::0;5690:15;;18304:44:::1;::::0;::::1;:::i;:::-;18303:50;::::0;18352:1:::1;18303:50;:::i;:::-;18281:72;;18370:11;18385:1;18370:16:::0;18366:54:::1;;18402:7;;;18366:54;18432:32;18504:11;18486:4;:14;;;18468:15;:32;;;;:::i;:::-;18467:48;;;;:::i;:::-;18432:83:::0;-1:-1:-1;18526:14:0::1;18543:42;18432:83:::0;18543:15;:42:::1;:::i;:::-;18526:59:::0;-1:-1:-1;18621:21:0::1;18653:24;18526:59:::0;18653:16:::1;:24::i;:::-;18688:20;18711:38;18735:14:::0;18711:21:::1;:38;:::i;:::-;18688:61;;18760:19;18812:4;:14;;;18798:11;:28;;;;:::i;:::-;18782:45;::::0;:12;:45:::1;:::i;:::-;18760:67;;18838:29;18884:4;:14;;;18870:11;:28;;;;:::i;:::-;18838:60:::0;-1:-1:-1;18915:25:0;;18911:119:::1;;18957:61;18970:24;18996:21;18957:12;:61::i;:::-;19083:14;::::0;::::1;::::0;19042:20:::1;::::0;19065:15:::1;:11:::0;19079:1:::1;19065:15;:::i;:::-;:32;;;;:::i;:::-;19042:55:::0;-1:-1:-1;19112:16:0;;19108:90:::1;;19153:9;::::0;19145:41:::1;::::0;-1:-1:-1;;;;;19153:9:0;;::::1;::::0;19145:41;::::1;;;::::0;19173:12;;19153:9:::1;19145:41:::0;19153:9;19145:41;19173:12;19153:9;19145:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;19108:90;18270:935;;;;;;;;5716:1;-1:-1:-1::0;;5728:8:0;:16;;-1:-1:-1;;5728:16:0;;;18182:1023::o;16891:1283::-;-1:-1:-1;;;;;17030:26:0;;17009:17;17030:26;;;:18;:26;;;;;;;;17029:27;:61;;;;-1:-1:-1;;;;;;17061:29:0;;;;;;:18;:29;;;;;;;;17060:30;17029:61;:104;;;;;17125:8;;17109:13;;:24;;;;:::i;:::-;17094:12;:39;17029:104;17009:124;;17146:28;17177:77;17188:7;17197;17206:6;17214:12;17228:25;17246:6;-1:-1:-1;;;;;10490:28:0;10466:4;10490:28;;;:19;:28;;;;;;;;;10401:125;17228:25;17177:10;:77::i;:::-;-1:-1:-1;;;;;17271:19:0;;;;;;:11;:19;;;;;;17146:108;;-1:-1:-1;17271:19:0;;17267:124;;;-1:-1:-1;;;;;17354:15:0;;;;;;:7;:15;;;;;;:25;;17372:7;;17354:25;:::i;:::-;-1:-1:-1;;;;;17336:15:0;;;;;;:7;:15;;;;;:43;17267:124;-1:-1:-1;;;;;17405:22:0;;;;;;:11;:22;;;;;;;;17401:141;;;17513:17;;;;-1:-1:-1;;;;;17492:18:0;;;;;;:7;:18;;;;;;:38;;17513:17;17492:38;:::i;:::-;-1:-1:-1;;;;;17471:18:0;;;;;;:7;:18;;;;;:59;17401:141;17590:9;;-1:-1:-1;;;;;17572:15:0;;17590:9;17572:15;;;:7;:15;;;;;;:27;;17590:9;17572:27;:::i;:::-;-1:-1:-1;;;;;17554:15:0;;;;;;;:7;:15;;;;;;;;:45;;;;17652:17;;;17631:18;;;;;;;;;;:38;;17652:17;17631:38;:::i;:::-;-1:-1:-1;;;;;17610:18:0;;;;;;:7;:18;;;;;;;:59;;;;17686:6;;;:10;;;:24;;;17709:1;17700;:6;;;:10;17686:24;17682:57;;;17712:27;17724:1;:6;;;17732:1;:6;;;17712:11;:27::i;:::-;17769:1;17754;:12;;;:16;:36;;;;17789:1;17774;:12;;;:16;17754:36;17750:257;;;17807:42;17822:1;:12;;;17836:1;:12;;;17807:14;:42::i;:::-;17929:4;-1:-1:-1;;;;;17869:126:0;17896:6;-1:-1:-1;;;;;17869:126:0;;17968:1;:12;;;17953:1;:12;;;:27;;;;:::i;:::-;17869:126;;1361:25:1;;;1349:2;1334:18;17869:126:0;;;;;;;17750:257;18036:1;18021;:12;;;:16;:36;;;;18056:1;18041;:12;;;:16;18021:36;18017:87;;;18059:45;18077:1;:12;;;18091:1;:12;;;18059:17;:45::i;:::-;18137:9;-1:-1:-1;;;;;18120:46:0;18129:6;-1:-1:-1;;;;;18120:46:0;;18148:1;:17;;;18120:46;;;;1361:25:1;;1349:2;1334:18;;1215:177;18120:46:0;;;;;;;;16998:1176;;16891:1283;;;;;:::o;14374:564::-;14472:7;;14508;;14425;;;;;14526:300;14550:9;:16;14546:20;;14526:300;;;14616:7;14592;:21;14600:9;14610:1;14600:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14600:12:0;14592:21;;;;;;;;;;;;;:31;;:66;;;14651:7;14627;:21;14635:9;14645:1;14635:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14635:12:0;14627:21;;;;;;;;;;;;;:31;14592:66;14588:114;;;14685:7;;14694;;14677:25;;;;;;;14374:564;;:::o;14588:114::-;14737:7;:21;14745:9;14755:1;14745:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14745:12:0;14737:21;;;;;;;;;;;;;14727:31;;:7;:31;:::i;:::-;14717:41;;14793:7;:21;14801:9;14811:1;14801:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14801:12:0;14793:21;;;;;;;;;;;;;14783:31;;:7;:31;:::i;:::-;14773:41;-1:-1:-1;14568:3:0;;;;:::i;:::-;;;;14526:300;;;;14860:7;;14850;;:17;;;;:::i;:::-;14840:7;:27;14836:58;;;14877:7;;14886;;14869:25;;;;;;14374:564;;:::o;14836:58::-;14913:7;;14922;;-1:-1:-1;14374:564:0;-1:-1:-1;14374:564:0:o;12542:763::-;12691:28;;:::i;:::-;12737:7;12732:91;;12761:17;;;:27;;;12803:8;;12732:91;12833:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;12833:17:0;12865:6;:23;;;;;12876:12;12875:13;12865:23;12861:124;;;-1:-1:-1;12890:16:0;;;;;;;;12897:9;12890:16;;;;;;;;;;;;;;;;;;12861:124;;;12927:12;12922:63;;-1:-1:-1;12941:12:0;;;;;;;;12948:5;12941:12;;;;;;;;;;;;;;;;;;12922:63;;;-1:-1:-1;12969:16:0;;;;;;;;12976:9;12969:16;;;;;;;;;;;;;;;;;;12922:63;13018:8;;13030:3;;13008:18;;:7;:18;:::i;:::-;13007:26;;;;:::i;:::-;12998:6;;;:35;13070:14;;;;13088:3;;13060:24;;:7;:24;:::i;:::-;13059:32;;;;:::i;:::-;13044:12;;;:47;13128:14;;;;13146:3;;13118:24;;:7;:24;:::i;:::-;13117:32;;;;:::i;:::-;13102:12;;;:47;;;13238:12;;;;13216:6;;;;13193:29;;:7;:29;:::i;:::-;:57;;;;:::i;:::-;:85;;;;:::i;:::-;13160:17;;;:118;-1:-1:-1;12542:763:0;;;;;;;:::o;13313:884::-;13549:15;;;;;13733:21;13743:11;13733:7;:21;:::i;:::-;13723:31;;13772:7;13767:88;;13804:10;:20;;13817:7;13804:20;;;13815:1;13804:20;13796:47;13826:7;-1:-1:-1;13835:1:0;;-1:-1:-1;13835:1:0;;-1:-1:-1;13835:1:0;;-1:-1:-1;13796:47:0;;13767:88;13883:11;13874:1;:6;;;:20;;;;:::i;:::-;13867:27;;13933:11;13918:1;:12;;;:26;;;;:::i;:::-;13905:39;;13983:11;13968:1;:12;;;:26;;;;:::i;:::-;13955:39;-1:-1:-1;13955:39:0;14079:10;14036:27;14059:4;14036:7;:27;:::i;:::-;:53;;;;:::i;:::-;:79;;;;:::i;:::-;14005:110;;13313:884;;;;;;;;;;;;:::o;19624:476::-;19714:16;;;19728:1;19714:16;;;;;;;;19690:21;;19714:16;;;;;;;;;;-1:-1:-1;19714:16:0;19690:40;;19759:4;19741;19746:1;19741:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19741:23:0;;;-1:-1:-1;;;;;19741:23:0;;;;;19785:6;;;;;;;;;-1:-1:-1;;;;;19785:6:0;-1:-1:-1;;;;;19785:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19775:4;19780:1;19775:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19775:23:0;;;:7;;;;;;;;;:23;19843:6;;19811:53;;19828:4;;19843:6;;;;19852:11;19811:8;:53::i;:::-;19877:6;;:215;;-1:-1:-1;;;19877:215:0;;:6;;;;-1:-1:-1;;;;;19877:6:0;;:57;;:215;;19949:11;;19975:1;;20019:4;;20046;;20066:15;;19877:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19213:403;19326:6;;19294:53;;19311:4;;19326:6;;;-1:-1:-1;;;;;19326:6:0;19335:11;19294:8;:53::i;:::-;19360:6;;19557:10;;19360:248;;-1:-1:-1;;;19360:248:0;;-1:-1:-1;;;;;19360:6:0;;;;;;;:22;;19391:9;;19360:248;;19425:4;;19445:11;;19471:1;;;;19557:10;;19582:15;;19360:248;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19213:403;;:::o;11231:125::-;11310:4;11299:7;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;11325:11:0;:23;;11344:4;;11325:11;:15;;:23;;11344:4;;11325:23;:::i;:::-;;;;-1:-1:-1;;;;11231:125:0:o;11364:280::-;11472:10;11447:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;11519:4:0;11499:26;;;;:11;:26;;;;;;;;11495:95;;;11558:4;11542:22;;;;:7;:22;;;;;:36;;11568:10;;11542:22;:36;;11568:10;;11542:36;:::i;:::-;;;;-1:-1:-1;;11495:95:0;11616:4;11600:22;;;;:7;:22;;;;;:36;;11626:10;;11600:22;:36;;11626:10;;11600:36;:::i;11652:283::-;11763:10;11738:11;:21;;;:35;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1:o;2440:341::-;2505:6;2513;2566:2;2554:9;2545:7;2541:23;2537:32;2534:52;;;2582:1;2579;2572:12;2534:52;2618:9;2605:23;2595:33;;2678:2;2667:9;2663:18;2650:32;2725:5;2718:13;2711:21;2704:5;2701:32;2691:60;;2747:1;2744;2737:12;2691:60;2770:5;2760:15;;;2440:341;;;;;:::o;2786:247::-;2845:6;2898:2;2886:9;2877:7;2873:23;2869:32;2866:52;;;2914:1;2911;2904:12;2866:52;2953:9;2940:23;2972:31;2997:5;2972:31;:::i;3362:388::-;3430:6;3438;3491:2;3479:9;3470:7;3466:23;3462:32;3459:52;;;3507:1;3504;3497:12;3459:52;3546:9;3533:23;3565:31;3590:5;3565:31;:::i;:::-;3615:5;-1:-1:-1;3672:2:1;3657:18;;3644:32;3685:33;3644:32;3685:33;:::i;3978:356::-;4180:2;4162:21;;;4199:18;;;4192:30;4258:34;4253:2;4238:18;;4231:62;4325:2;4310:18;;3978:356::o;5101:127::-;5162:10;5157:3;5153:20;5150:1;5143:31;5193:4;5190:1;5183:15;5217:4;5214:1;5207:15;5233:128;5300:9;;;5321:11;;;5318:37;;;5335:18;;:::i;5366:217::-;5406:1;5432;5422:132;;5476:10;5471:3;5467:20;5464:1;5457:31;5511:4;5508:1;5501:15;5539:4;5536:1;5529:15;5422:132;-1:-1:-1;5568:9:1;;5366:217::o;5588:125::-;5653:9;;;5674:10;;;5671:36;;;5687:18;;:::i;7247:251::-;7317:6;7370:2;7358:9;7349:7;7345:23;7341:32;7338:52;;;7386:1;7383;7376:12;7338:52;7418:9;7412:16;7437:31;7462:5;7437:31;:::i;7812:607::-;-1:-1:-1;;;;;8171:15:1;;;8153:34;;8218:2;8203:18;;8196:34;;;;8261:2;8246:18;;8239:34;;;;8304:2;8289:18;;8282:34;;;;8353:15;;;8347:3;8332:19;;8325:44;8133:3;8385:19;;8378:35;;;;8102:3;8087:19;;7812:607::o;8424:306::-;8512:6;8520;8528;8581:2;8569:9;8560:7;8556:23;8552:32;8549:52;;;8597:1;8594;8587:12;8549:52;8626:9;8620:16;8610:26;;8676:2;8665:9;8661:18;8655:25;8645:35;;8720:2;8709:9;8705:18;8699:25;8689:35;;8424:306;;;;;:::o;11819:168::-;11892:9;;;11923;;11940:15;;;11934:22;;11920:37;11910:71;;11961:18;;:::i;11992:127::-;12053:10;12048:3;12044:20;12041:1;12034:31;12084:4;12081:1;12074:15;12108:4;12105:1;12098:15;12124:135;12163:3;12184:17;;;12181:43;;12204:18;;:::i;:::-;-1:-1:-1;12251:1:1;12240:13;;12124:135::o;12396:980::-;12658:4;12706:3;12695:9;12691:19;12737:6;12726:9;12719:25;12763:2;12801:6;12796:2;12785:9;12781:18;12774:34;12844:3;12839:2;12828:9;12824:18;12817:31;12868:6;12903;12897:13;12934:6;12926;12919:22;12972:3;12961:9;12957:19;12950:26;;13011:2;13003:6;12999:15;12985:29;;13032:1;13042:195;13056:6;13053:1;13050:13;13042:195;;;13121:13;;-1:-1:-1;;;;;13117:39:1;13105:52;;13212:15;;;;13177:12;;;;13153:1;13071:9;13042:195;;;-1:-1:-1;;;;;;;13293:32:1;;;;13288:2;13273:18;;13266:60;-1:-1:-1;;;13357:3:1;13342:19;13335:35;13254:3;12396:980;-1:-1:-1;;;12396:980:1:o

Swarm Source

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