ETH Price: $3,139.89 (-5.13%)
Gas: 12 Gwei

Token

Degger (DPU)
 

Overview

Max Total Supply

100,000,000 DPU

Holders

161

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
318.354231899319379386 DPU

Value
$0.00
0x1d5f62336dd0b737e13a7edc85932bf98f27e3b2
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:
DEGGER

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 1 : clearwater.sol
/*
DEGGER - Your rig to unlocking the power of crypto mining

Website:  https://degger.io
Gitdoc:   https://docs.degger.io/
dAPP:     https://t.me/DeggerOfficialBot
Telegram: https://t.me/Degger_official
Twitter:  https://twitter.com/Degger_official
*/


// SPDX-License-Identifier: MIT

pragma solidity >=0.8.10 >=0.8.0 <0.9.0;
pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_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 {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

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

        return true;
    }

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

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

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

library SafeMath {
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(
        address to
    ) external returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

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

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

contract DEGGER is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address private marketingWallet;
    address private developmentWallet;

    uint256 public percentForLPBurn = 0;
    bool public lpBurnEnabled = false;
    uint256 public lpBurnFrequency = 3600 seconds;
    uint256 public lastLpBurnTime;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = true;

    uint256 public manualBurnFrequency = 30 minutes;
    uint256 public lastManualLpBurnTime;

    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;

    struct FeeSet {
        uint8 buyTotalFees;
        uint8 buyMarketingFee;
        uint8 buyLiquidityFee;
        uint8 buyDevelopmentFee;
        //
        uint8 sellTotalFees;
        uint8 sellMarketingFee;
        uint8 sellLiquidityFee;
        uint8 sellDevelopmentFee;
        //
        uint8 finalBuyingFees;
        uint8 finalBuyMarketingFee;
        uint8 finalBuyLiquidityFee;
        uint8 finalBuyDevelopmentFee;
        //
        uint8 finalSellingFees;
        uint8 finalSellMarketingFee;
        uint8 finalSellLiquidityFee;
        uint8 finalSellDevelopmentFee;
    }

    FeeSet public feeSet;

    uint256 public maxSwapToFinal;

    uint16 public swapCount = 0;
    bool public stopCount = false;

    uint256 public lastTaxSaleHeight = 0;
    uint256 public lastTaxSaleAmount = 0;

    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;
    uint256 public tokensForDev;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event marketingWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    event developmentWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

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

    event AutoNukeLP();

    event ManualNukeLP();

    constructor() ERC20("Degger", "DPU") {
    

        uint8 _buyMarketingFee = 2;
        uint8 _buyLiquidityFee = 0;
        uint8 _buyDevelopmentFee = 2;

        uint8 _sellMarketingFee = 2;
        uint8 _sellLiquidityFee = 0;
        uint8 _sellDevelopmentFee = 2;

        uint8 _finalBuyMarketingFee = 2;
        uint8 _finalBuyLiquidityFee = 0;
        uint8 _finalBuyDevelopmentFee = 2;

        uint8 _finalSellMarketingFee = 2;
        uint8 _finalSellLiquidityFee = 0;
        uint8 _finalSellDevelopmentFee = 2; 

        uint256 _maxSwapToFinal = 100;

        uint256 totalSupply = 100000000 * 1e18;

        maxTransactionAmount = 1400000 * 1e18;
        maxWallet = 1400000 * 1e18;
        swapTokensAtAmount = (totalSupply * 5) / 10000;

        marketingWallet = address(0x0649D83b88061a76d10FA7BE72148245FA9860D4);
        developmentWallet = address(0xf1aDA43188DfcBB3A1199383a0ba5793A95a2Ab9);

        maxSwapToFinal = _maxSwapToFinal;

        feeSet.buyMarketingFee = _buyMarketingFee;
        feeSet.buyLiquidityFee = _buyLiquidityFee;
        feeSet.buyDevelopmentFee = _buyDevelopmentFee;
        feeSet.buyTotalFees =
            feeSet.buyMarketingFee +
            feeSet.buyLiquidityFee +
            feeSet.buyDevelopmentFee;

        feeSet.sellMarketingFee = _sellMarketingFee;
        feeSet.sellLiquidityFee = _sellLiquidityFee;
        feeSet.sellDevelopmentFee = _sellDevelopmentFee;
        feeSet.sellTotalFees =
            feeSet.sellMarketingFee +
            feeSet.sellLiquidityFee +
            feeSet.sellDevelopmentFee;

        feeSet.finalBuyMarketingFee = _finalBuyMarketingFee;
        feeSet.finalBuyLiquidityFee = _finalBuyLiquidityFee;
        feeSet.finalBuyDevelopmentFee = _finalBuyDevelopmentFee;
        feeSet.finalBuyingFees =
            feeSet.finalBuyMarketingFee +
            feeSet.finalBuyLiquidityFee +
            feeSet.finalBuyDevelopmentFee;

        feeSet.finalSellMarketingFee = _finalSellMarketingFee;
        feeSet.finalSellLiquidityFee = _finalSellLiquidityFee;
        feeSet.finalSellDevelopmentFee = _finalSellDevelopmentFee;
        feeSet.finalSellingFees =
            feeSet.finalSellMarketingFee +
            feeSet.finalSellLiquidityFee +
            feeSet.finalSellDevelopmentFee;

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function createPair() external onlyOwner {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
    }

    function enableTrade() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
        lastLpBurnTime = block.timestamp;
    }

    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    function disableTransferDelay() external onlyOwner returns (bool) {
        transferDelayEnabled = false;
        return true;
    }

    function updateSwapTokensAtAmount(
        uint256 newAmount
    ) external onlyOwner returns (bool) {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        maxTransactionAmount = newNum * (10 ** 18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        maxWallet = newNum * (10 ** 18);
    }

    function excludeFromMaxTransaction(
        address updAds,
        bool isEx
    ) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function updateBuyFees(
        uint8 _marketingFee,
        uint8 _liquidityFee,
        uint8 _developmentFee
    ) external onlyOwner {
        feeSet.buyMarketingFee = _marketingFee;
        feeSet.buyLiquidityFee = _liquidityFee;
        feeSet.buyDevelopmentFee = _developmentFee;
        uint256 newBuyTotalFees = feeSet.buyMarketingFee +
            feeSet.buyLiquidityFee +
            feeSet.buyDevelopmentFee;
        require(!stopCount, "Final fees are already set");
        require(newBuyTotalFees <= 100, "Total fees cannot exceed 100%");
        feeSet.buyTotalFees = uint8(newBuyTotalFees);
        // override the fees if the stopCount is true
        if (stopCount) {
            updateFeesToFinal();
        }
    }

    function updateFeesToFinal() private {
        feeSet.buyMarketingFee = feeSet.finalBuyMarketingFee;
        feeSet.buyLiquidityFee = feeSet.finalBuyLiquidityFee;
        feeSet.buyDevelopmentFee = feeSet.finalBuyDevelopmentFee;
        feeSet.buyTotalFees = feeSet.finalBuyingFees;

        feeSet.sellMarketingFee = feeSet.finalSellMarketingFee;
        feeSet.sellLiquidityFee = feeSet.finalSellLiquidityFee;
        feeSet.sellDevelopmentFee = feeSet.finalSellDevelopmentFee;
        feeSet.sellTotalFees = feeSet.finalSellingFees;
    }

    function updateSellFees(
        uint8 _marketingFee,
        uint8 _liquidityFee,
        uint8 _developmentFee
    ) external onlyOwner {
        feeSet.sellMarketingFee = _marketingFee;
        feeSet.sellLiquidityFee = _liquidityFee;
        feeSet.sellDevelopmentFee = _developmentFee;
        uint256 newSellTotalFees = feeSet.sellMarketingFee +
            feeSet.sellLiquidityFee +
            feeSet.sellDevelopmentFee;
        require(newSellTotalFees <= 100, "Total fees cannot exceed 100%");
        feeSet.sellTotalFees = uint8(newSellTotalFees);
        // override the fees if the stopCount is true
        if (stopCount) {
            updateFeesToFinal();
        }
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(
        address pair,
        bool value
    ) public onlyOwner {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateMarketingWalletInfo(
        address newMarketingWallet
    ) external onlyOwner {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }

    function updateDevelopmentWalletInfo(address newWallet) external onlyOwner {
        emit developmentWalletUpdated(newWallet, developmentWallet);
        developmentWallet = newWallet;
    }

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

    event BoughtEarly(address indexed sniper);

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
                if (transferDelayEnabled) {
                    if (
                        to != owner() &&
                        to != address(uniswapV2Router) &&
                        to != address(uniswapV2Pair)
                    ) {
                        require(
                            _holderLastTransferTimestamp[tx.origin] <
                                block.number,
                            "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                        );
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        if (
            !swapping &&
            automatedMarketMakerPairs[to] &&
            lpBurnEnabled &&
            block.timestamp >= lastLpBurnTime + lpBurnFrequency &&
            !_isExcludedFromFees[from]
        ) {
            autoBurnLiquidityPairTokens();
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        bool isSell = false;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            if (!stopCount) {
                swapCount += 1;
                if (swapCount > maxSwapToFinal) {
                    stopCount = true;
                    updateFeesToFinal();
                }
            }
            // on sell
            if (automatedMarketMakerPairs[to] && feeSet.sellTotalFees > 0) {
                isSell = true;
                fees = amount.mul(feeSet.sellTotalFees).div(100);
            }
            // on buy
            else if (
                automatedMarketMakerPairs[from] && feeSet.buyTotalFees > 0
            ) {
                fees = amount.mul(feeSet.buyTotalFees).div(100);
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
                if (isSell) {
                    swapBeforeSell(amount);
                }
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapBeforeSell(uint256 amount) private {
        uint256 twoPercent = (totalSupply() * 2) / 100;
        if (lastTaxSaleHeight == block.number) {
            // same block
            if (lastTaxSaleAmount >= twoPercent) {
                return;
            } else {
                // lastTaxSaleAmount < 2% && amount + lastTaxSaleAmount < 2%
                amount = amount < (twoPercent - lastTaxSaleAmount)
                    ? amount
                    : (twoPercent - lastTaxSaleAmount);
                // amount < tokenBalance
                uint256 tokenBalance = balanceOf(address(this));
                amount = tokenBalance < amount ? tokenBalance : amount;

                lastTaxSaleAmount += amount;
            }
        } else {
            // new block
            // amount <= 2% of totalSupply
            amount = amount < twoPercent ? amount : twoPercent;
            // amount <= balance
            uint256 tokenBalance = balanceOf(address(this));
            amount = tokenBalance < amount ? tokenBalance : amount;

            // reset lastTaxSaleHeight to now height
            lastTaxSaleHeight = block.number;
            lastTaxSaleAmount = amount;
        }
        if (amount > 0) {
            swapTokensForEth(amount);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deadAddress,
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity +
            tokensForMarketing +
            tokensForDev;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /
            totalTokensToSwap /
            2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(
            totalTokensToSwap
        );
        uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap);

        uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDev;

        tokensForLiquidity = 0;
        tokensForMarketing = 0;
        tokensForDev = 0;

        (success, ) = address(developmentWallet).call{value: ethForDev}("");

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(
                amountToSwapForETH,
                ethForLiquidity,
                tokensForLiquidity
            );
        }

        (success, ) = address(marketingWallet).call{
            value: address(this).balance
        }("");
    }

    function manualswap() external {
        require(
            _msgSender() == developmentWallet || _msgSender() == marketingWallet
        );
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(
            _msgSender() == developmentWallet || _msgSender() == marketingWallet
        );
        bool success;
        (success, ) = address(marketingWallet).call{
            value: address(this).balance
        }("");
    }

    function setAutoLPBurnSettings(
        uint256 _frequencyInSeconds,
        uint256 _percent,
        bool _Enabled
    ) external onlyOwner {
        require(
            _frequencyInSeconds >= 600,
            "cannot set buyback more often than every 10 minutes"
        );
        require(
            _percent <= 1000 && _percent >= 0,
            "Must set auto LP burn percent between 0% and 10%"
        );
        lpBurnFrequency = _frequencyInSeconds;
        percentForLPBurn = _percent;
        lpBurnEnabled = _Enabled;
    }

    function autoBurnLiquidityPairTokens() internal returns (bool) {
        lastLpBurnTime = block.timestamp;

        // get balance of liquidity pair
        uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);

        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance.mul(percentForLPBurn).div(
            10000
        );

        // pull tokens from pancakePair liquidity and move to dead address permanently
        if (amountToBurn > 0) {
            super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);
        }

        //sync price since this is not in a swap transaction!
        IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);
        pair.sync();
        emit AutoNukeLP();
        return true;
    }

    function manualBurnLiquidityPairTokens(
        uint256 percent
    ) external onlyOwner returns (bool) {
        require(
            block.timestamp > lastManualLpBurnTime + manualBurnFrequency,
            "Must wait for cooldown to finish"
        );
        require(percent <= 1000, "May not nuke more than 10% of tokens in LP");
        lastManualLpBurnTime = block.timestamp;

        // get balance of liquidity pair
        uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);

        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance.mul(percent).div(10000);

        // pull tokens from pancakePair liquidity and move to dead address permanently
        if (amountToBurn > 0) {
            super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);
        }

        //sync price since this is not in a swap transaction!
        IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);
        pair.sync();
        emit ManualNukeLP();
        return true;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "viaIR": true,
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "remappings": []
}

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":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sniper","type":"address"}],"name":"BoughtEarly","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[],"name":"ManualNukeLP","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"developmentWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeSet","outputs":[{"internalType":"uint8","name":"buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"buyMarketingFee","type":"uint8"},{"internalType":"uint8","name":"buyLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"buyDevelopmentFee","type":"uint8"},{"internalType":"uint8","name":"sellTotalFees","type":"uint8"},{"internalType":"uint8","name":"sellMarketingFee","type":"uint8"},{"internalType":"uint8","name":"sellLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"sellDevelopmentFee","type":"uint8"},{"internalType":"uint8","name":"finalBuyingFees","type":"uint8"},{"internalType":"uint8","name":"finalBuyMarketingFee","type":"uint8"},{"internalType":"uint8","name":"finalBuyLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"finalBuyDevelopmentFee","type":"uint8"},{"internalType":"uint8","name":"finalSellingFees","type":"uint8"},{"internalType":"uint8","name":"finalSellMarketingFee","type":"uint8"},{"internalType":"uint8","name":"finalSellLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"finalSellDevelopmentFee","type":"uint8"}],"stateMutability":"view","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":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastManualLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTaxSaleAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTaxSaleHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnLiquidityPairTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSwapToFinal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopCount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapCount","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_marketingFee","type":"uint8"},{"internalType":"uint8","name":"_liquidityFee","type":"uint8"},{"internalType":"uint8","name":"_developmentFee","type":"uint8"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevelopmentWalletInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWalletInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_marketingFee","type":"uint8"},{"internalType":"uint8","name":"_liquidityFee","type":"uint8"},{"internalType":"uint8","name":"_developmentFee","type":"uint8"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080346200070b576001600160401b0390604090808201838111828210176200061657825260068152602090652232b3b3b2b960d11b8282015282519383850185811082821117620006165784526003918286526244505560e81b8487015280519180831162000616578354926001928385811c9516801562000700575b87861014620006ec578190601f9586811162000699575b50879086831160011462000636575f926200062a575b50505f1982871b1c191690831b1784555b8651908111620006165760049384548381811c911680156200060b575b87821014620005f857848111620005b0575b50858483116001146200054957829394959697985f936200053d575b505082841b925f19911b1c19161783555b60058054336001600160a01b03198083168217845593926001600160a01b03926200047b929084167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35f600a5573f1ada43188dfcbb3a1199383a0ba5793a95a2ab960ff199586600b5416600b55610e10600c5562ffffff196201000181601154161760115561070860125586886015541617601555601854166018555f6019555f601a556a01287626ee52197b00000080600e55601055690a968163f0a57b400000600f55730649d83b88061a76d10fa7be72148245fa9860d481600854161760085560095416176009556064601755620002696d0200020000000000000000000000690200020000000000000065020002000200601654630200020063ffffff001982161760ff9581876200025d81809560101c16828460081c166200070f565b9160181c16906200070f565b169065ff00ffffffff1916171764ff00000000620002b967020000000000000067ffff0000000000001984161786620002ad818360301c16828460281c166200070f565b9160381c16906200070f565b8d1b169069ff00ffff00ff000000001916171768ff00000000000000006200031b6b0200000000000000000000006bffff0000000000000000000019841617856200030f818360501c16828460481c166200070f565b9160581c16906200070f565b8d1b16906dff00ffff00ff0000000000000000191617176cff00000000000000000000000062000378600160791b938461ffff60701b19851617906200036c818360701c16828460681c166200070f565b9160781c16906200070f565b60601b16906fffff00ff00000000000000000000000019161717601655335f52601e8852885f2084868254161790558851928484527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df793848a3392a2620003e433828454161462000738565b305f52601e8952895f2085878254161790558951858152848a3092a26200041033828454161462000738565b61dead8094815f52601e8b528b5f2087898254161790558a8c51888152a2808254166200043f33821462000738565b5f52868952895f2085878254161790556200045f33828454161462000738565b305f52868952895f208587825416179055339154161462000738565b5f52828552855f20918254161790553315620004fe575050620004a060025462000784565b600255335f525f8152815f20620004b8815462000784565b90555f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8351926a52b7d2dcc80cd2e400000084523393a351612e8a90816200079e8239f35b60649284519262461bcd60e51b845283015260248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b015191505f8062000106565b90601f19831691865f52875f20925f5b8181106200059a57509984869798999a9b1062000580575b50505050811b01835562000117565b01519060f8845f19921b161c191690555f80808062000571565b8b83015185559386019391890191890162000559565b855f52865f208580850160051c820192898610620005ee575b0160051c019084905b828110620005e2575050620000ea565b5f8155018490620005d2565b92508192620005c9565b602286634e487b7160e01b5f525260245ffd5b90607f1690620000d8565b634e487b7160e01b5f52604160045260245ffd5b015190505f80620000aa565b90859350601f19831691885f52895f20925f5b8b8282106200068257505084116200066a575b505050811b018455620000bb565b01515f1983891b60f8161c191690555f80806200065c565b838501518655899790950194938401930162000649565b909150865f52875f208680850160051c8201928a8610620006e2575b918791869594930160051c01915b828110620006d357505062000094565b5f8155859450879101620006c3565b92508192620006b5565b634e487b7160e01b5f52602260045260245ffd5b94607f16946200007d565b5f80fd5b9060ff8091169116019060ff82116200072457565b634e487b7160e01b5f52601160045260245ffd5b156200074057565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b906a52b7d2dcc80cd2e40000008201809211620007245756fe6040608081526004908136101561001f575b5050361561001d575f80fd5b005b5f905f3560e01c806299d38614611b8e578063057f202e14611b7057806306fdde0314611a7b578063095ea7b314611a5257806310d5de5314611a165780631694505e146119ee57806318160ddd146119d0578063184c16c5146119b2578063199ffc72146119945780631a8145bb146119765780631d003eb61461186c5780631f3fed8f1461184e578063203e727e1461178957806323b872dd146116cd57806327c8f835146116b15780632c3e486c146116935780632e82f1a0146116705780632eff0d9e1461164e578063313674dd14611630578063313ce5671461161557806338b2c461146115f757806339509351146115ab578063404bc41b146115855780634487c29f146114a657806349bd5a5e1461147e5780634a62bb651461145b5780634fbee1931461141f578063535e02d8146113ae5780636ddd1713146113885780636fc3eaec146113395780637040eb8b1461126c57806370a0823114611236578063715018a6146111d8578063730c1888146110a5578063751039fc1461106b5780637571336a1461100f5780637d831a8b14610f9e5780638da5cb5b14610f76578063924de9b714610f2957806395d89b4114610e265780639a7a23d614610d345780639e78fb4f14610b4b5780639ec22c0e14610b2d5780639fccce3214610b0f578063a457c2d714610a6a578063a4c82a0014610a4c578063a9059cbb14610a1c578063b62496f5146109e1578063bbc0c742146109bb578063c024666814610932578063c18bc1951461084e578063c3c8cd80146107fe578063c876d0b9146107db578063c8c8ebe4146107bd578063d257b34f14610665578063dd62ed3e1461061c578063e2f45605146105fe578063e884f260146105c4578063f2fde38b146104fc578063f8b45b05146104de5763fe72b27a146102c95750610011565b346103fa57602092836003193601126103fa576005546001600160a01b03908235906102f89083163314611c7c565b61030760135460125490611db6565b42111561049d576103e88111610447574260135581600754169084516370a0823160e01b815282858201528781602481305afa90811561043d575f9161040e575b506127109161035691611d85565b04806103fe575b50506007541690813b156103fa57825160016209351760e01b03198152915f918391829084905af180156103f0576103bd575b507f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb90519180a160018152f35b6103c8919250611cc7565b5f907f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb610390565b82513d5f823e3d90fd5b5f80fd5b61040791612a29565b5f8061035d565b90508781813d8311610436575b6104258183611cef565b810103126103fa5751612710610348565b503d61041b565b86513d5f823e3d90fd5b835162461bcd60e51b8152808401879052602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608490fd5b606483878087519262461bcd60e51b845283015260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973686044820152fd5b50346103fa575f3660031901126103fa576020906010549051908152f35b5082346103fa5760203660031901126103fa57610517611c11565b6005546001600160a01b03808216939192610533338614611c7c565b169384156105725750506001600160a01b03191682176005557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b50346103fa575f3660031901126103fa576020906105ed60018060a01b03600554163314611c7c565b60ff19601554166015555160018152f35b50346103fa575f3660031901126103fa57602090600f549051908152f35b50346103fa57806003193601126103fa57602090610638611c11565b610640611c27565b9060018060a01b038091165f5260018452825f2091165f528252805f20549051908152f35b8382346103fa5760203660031901126103fa57813561068f60018060a01b03600554163314611c7c565b60025480158180046001148117156107aa57620186a08204831061074957600582029182046005141715610736576103e8900481116106d65760209250600f555160018152f35b815162461bcd60e51b8152602081850152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608490fd5b601184634e487b7160e01b5f525260245ffd5b835162461bcd60e51b8152602081870152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608490fd5b601185634e487b7160e01b5f525260245ffd5b50346103fa575f3660031901126103fa57602090600e549051908152f35b50346103fa575f3660031901126103fa5760209060ff6015541690519015158152f35b50346103fa575f3660031901126103fa57600954336001600160a01b0391821614908115610840575b50156103fa5761001d90305f525f6020525f20546128bd565b905060085416331482610827565b5082346103fa5760203660031901126103fa57803561087860018060a01b03600554163314611c7c565b6002549260058402938085046005149015171561091f576103e893670de0b6b3a7640000948591040482106108d157508281029281840414901517156108be5750601055005b601190634e487b7160e01b5f525260245ffd5b5162461bcd60e51b81526020818401526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608490fd5b601183634e487b7160e01b5f525260245ffd5b50346103fa57806003193601126103fa577f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7602061096e611c11565b610976611c6d565b60055490916001600160a01b03916109919083163314611c7c565b1693845f52601e83526109b282825f209060ff801983541691151516179055565b519015158152a2005b50346103fa575f3660031901126103fa5760209060ff60115460081c1690519015158152f35b50346103fa5760203660031901126103fa576020906001600160a01b03610a06611c11565b165f5281805260ff815f20541690519015158152f35b50346103fa57806003193601126103fa57602090610a45610a3b611c11565b60243590336120f9565b5160018152f35b50346103fa575f3660031901126103fa57602090600d549051908152f35b5082346103fa57816003193601126103fa57610a84611c11565b9060243590335f526001602052835f2060018060a01b0384165f52602052835f205490828210610abe57602085610a458585038733611e21565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b50346103fa575f3660031901126103fa57602090601d549051908152f35b50346103fa575f3660031901126103fa576020906013549051908152f35b5082346103fa575f3660031901126103fa576005546001600160a01b039190610b809083163314610b7b81611c7c565b611c7c565b737a250d5630b4cf539739df2c5dacb4c659f2488d91825f52602092601f8452845f209260ff19936001858254161790556bffffffffffffffffffffffff60a01b9180836006541617600655865163c45a015560e01b815286818481855afa908115610d0b57839288915f93610d15575b5089516315ab88c960e31b815293849182905afa8015610d0b5785938489945f93610ce7575b505f90604493948c5197889687956364e329cb60e11b87523090870152166024850152165af190811561043d57918360019793928895935f91610cba575b501680916007541617600755610c7033836005541614611c7c565b5f52601f8552815f2083858254161790556007541693845f5280525f20918254161790557fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab5f80a3005b610cda9150883d8a11610ce0575b610cd28183611cef565b810190611e02565b89610c55565b503d610cc8565b6044935090610d035f92873d8911610ce057610cd28183611cef565b935090610c17565b88513d5f823e3d90fd5b610d2d919350823d8411610ce057610cd28183611cef565b918a610bf1565b5082346103fa57816003193601126103fa57610d4e611c11565b91610d57611c6d565b9160018060a01b03610d6e81600554163314611c7c565b80600754169416938414610dbe57505f8381526020805220805460ff191660ff831515161790551515907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab5f80a3005b6020608492519162461bcd60e51b8352820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152fd5b8382346103fa575f3660031901126103fa578051905f9280549060018260011c9160018416938415610f1f575b6020948585108114610f0c57848852908115610eea5750600114610e91575b610e8d8686610e83828b0383611cef565b5191829182611bca565b0390f35b5f9081529295507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610ed75750505082610e8d94610e83928201019486610e72565b8054868501880152928601928101610eba565b60ff191687860152505050151560051b8301019250610e8382610e8d86610e72565b602283634e487b7160e01b5f525260245ffd5b92607f1692610e53565b83346103fa5760203660031901126103fa57358015158091036103fa57610f5b60018060a01b03600554163314611c7c565b62ff00006011549160101b169062ff00001916176011555f80f35b50346103fa575f3660031901126103fa5760055490516001600160a01b039091168152602090f35b346103fa5760203660031901126103fa57610fb7611c11565b6005546001600160a01b039190610fd19083163314611c7c565b816008549116918116827fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b056745f80a36001600160a01b03191617600855005b50346103fa57806003193601126103fa5761001d9061102c611c11565b90611035611c6d565b60055490926001600160a01b03916110509083163314611c7c565b165f52601f6020525f209060ff801983541691151516179055565b50346103fa575f3660031901126103fa5760209061109460018060a01b03600554163314611c7c565b60ff19601154166011555160018152f35b5082346103fa5760603660031901126103fa57803560243591604435938415158095036103fa576110e160018060a01b03600554163314611c7c565b6102588310611179576103e884111580611171575b15611115575050600c55600a5560ff8019600b5416911617600b555f80f35b906020608492519162461bcd60e51b8352820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b6064820152fd5b5060016110f6565b906020608492519162461bcd60e51b8352820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b6064820152fd5b346103fa575f3660031901126103fa576005545f906001600160a01b03811690611203338314611c7c565b6001600160a01b0319166005557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b50346103fa5760203660031901126103fa576020906001600160a01b0361125b611c11565b165f525f8252805f20549051908152f35b50346103fa575f3660031901126103fa576102009060165460ff9081818451948282168652828260081c166020870152828260101c1681870152828260181c166060870152828260201c166080870152828260281c1660a0870152828260301c1660c0870152828260381c1660e08701521c16610100840152818160481c16610120840152818160501c16610140840152818160581c16610160840152818160601c16610180840152818160681c166101a0840152818160701c166101c084015260781c166101e0820152f35b346103fa575f3660031901126103fa576009546001600160a01b039081163314801561137b575b156103fa575f808080936008541647905af15061001d611dc3565b5080600854163314611360565b50346103fa575f3660031901126103fa5760209060ff60115460101c1690519015158152f35b346103fa5760203660031901126103fa576113c7611c11565b6005546001600160a01b0391906113e19083163314611c7c565b816009549116918116827ffaf1b77ed79f6e898c44dd8ab36b330c7b2fd39bcaab05ed6362480df87039655f80a36001600160a01b03191617600955005b50346103fa5760203660031901126103fa576020906001600160a01b03611444611c11565b165f52601e825260ff815f20541690519015158152f35b50346103fa575f3660031901126103fa5760209060ff6011541690519015158152f35b50346103fa575f3660031901126103fa5760075490516001600160a01b039091168152602090f35b346103fa5760603660031901126103fa576114bf611c3d565b6114c7611c4d565b6114cf611c5d565b6114e460018060a01b03600554163314611c7c565b60ff60381b66ff00000000000065ff00000000006016549560281b169360301b169160381b169164ff00000000611547848367ffffff00000000001988161785171760ff61153c818360301c16828460281c16611d11565b9160381c1690611d11565b611557606460ff83161115611d39565b60201b169367ffffffff0000000019161717171760165560ff60185460101c1661157d57005b61001d611f1f565b50346103fa575f3660031901126103fa5760209060ff60185460101c1690519015158152f35b50346103fa57806003193601126103fa57602090610a456115ca611c11565b335f5260018452825f2060018060a01b0382165f5284526115f0602435845f2054611db6565b9033611e21565b50346103fa575f3660031901126103fa576020906017549051908152f35b50346103fa575f3660031901126103fa576020905160128152f35b50346103fa575f3660031901126103fa57602090601a549051908152f35b50346103fa575f3660031901126103fa5760209061ffff601854169051908152f35b50346103fa575f3660031901126103fa5760209060ff600b541690519015158152f35b50346103fa575f3660031901126103fa57602090600c549051908152f35b50346103fa575f3660031901126103fa576020905161dead8152f35b5082346103fa5760603660031901126103fa576116e8611c11565b906116f1611c27565b906117006044358093856120f9565b60018060a01b0383165f526001602052835f20335f52602052835f20549082821061173557602085610a458585033388611e21565b608490602086519162461bcd60e51b8352820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152fd5b5082346103fa5760203660031901126103fa5780356117b360018060a01b03600554163314611c7c565b600254928380046001148415171561091f576103e893670de0b6b3a7640000948591040482106117f457508281029281840414901517156108be5750600e55005b5162461bcd60e51b8152602081840152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608490fd5b50346103fa575f3660031901126103fa57602090601b549051908152f35b5082346103fa5760603660031901126103fa57611887611c3d565b61188f611c4d565b611897611c5d565b906118ad60018060a01b03600554163314611c7c565b63ff00000062ff000061ff006016549560081b169260101b169260181b169260ff6118ff858463ffffff0019851617861717826118f4818360101c16828460081c16611d11565b9160181c1690611d11565b169460ff60185460101c16968761193357505061191f6064861115611d39565b63ffffffff19161717171760165561157d57005b906020606492519162461bcd60e51b8352820152601a60248201527f46696e616c20666565732061726520616c7265616479207365740000000000006044820152fd5b50346103fa575f3660031901126103fa57602090601c549051908152f35b50346103fa575f3660031901126103fa57602090600a549051908152f35b50346103fa575f3660031901126103fa576020906012549051908152f35b50346103fa575f3660031901126103fa576020906002549051908152f35b50346103fa575f3660031901126103fa5760065490516001600160a01b039091168152602090f35b50346103fa5760203660031901126103fa576020906001600160a01b03611a3b611c11565b165f52601f825260ff815f20541690519015158152f35b50346103fa57806003193601126103fa57602090610a45611a71611c11565b6024359033611e21565b8382346103fa575f3660031901126103fa578051905f9260035460018160011c91600181168015611b66575b6020948585108214611b535750838752908115611b335750600114611ad9575b505050610e8382610e8d940383611cef565b60035f9081529295507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410611b205750505082610e8d94610e839282010194611ac7565b8054868501880152928601928101611b04565b60ff1916868501525050151560051b8301019250610e8382610e8d611ac7565b602290634e487b7160e01b5f525260245ffd5b92607f1692611aa7565b50346103fa575f3660031901126103fa576020906019549051908152f35b346103fa575f3660031901126103fa57611bb360018060a01b03600554163314611c7c565b6011805462ffff0019166201010017905542600d55005b602080825282518183018190529093925f5b828110611bfd57505060409293505f838284010152601f8019910116010190565b818101860151848201604001528501611bdc565b600435906001600160a01b03821682036103fa57565b602435906001600160a01b03821682036103fa57565b6004359060ff821682036103fa57565b6024359060ff821682036103fa57565b6044359060ff821682036103fa57565b6024359081151582036103fa57565b15611c8357565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b67ffffffffffffffff8111611cdb57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117611cdb57604052565b9060ff8091169116019060ff8211611d2557565b634e487b7160e01b5f52601160045260245ffd5b15611d4057565b60405162461bcd60e51b815260206004820152601d60248201527f546f74616c20666565732063616e6e6f742065786365656420313030250000006044820152606490fd5b81810292918115918404141715611d2557565b8115611da2570490565b634e487b7160e01b5f52601260045260245ffd5b91908201809211611d2557565b3d15611dfd573d9067ffffffffffffffff8211611cdb5760405191611df2601f8201601f191660200184611cef565b82523d5f602084013e565b606090565b908160209103126103fa57516001600160a01b03811681036103fa5790565b6001600160a01b03908116918215611ece5716918215611e7e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526001825260405f20855f5282528060405f2055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b601654604061ff0082821c1662ff00008161ff0019851617831c1663ff000000818362ffff001987161717841c1660ff818463ffffff0019881617841717851c169065ff0000000000828563ffffffff198916178517831717861c169266ff000000000000848665ff00ffffffff198a161783178417851717871c169464ff0000000060ff60381b878366ffff00ffffffff198c1617851786178717881717891c1697888367ffffff00ffffffff198c16178517861787178817891717901c169767ffffffffffffffff19161717171717171717601655565b15611fff57565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b1561205957565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b156120b157565b60405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606490fd5b91908203918211611d2557565b5f939291906001600160a01b038082168015159061211682611ff8565b828516908115159261212784612052565b871561286e57506011549260ff848180961661252c575b505050305f526020935f8552604090815f2054600f5411158061251e575b8061250f575b806124fc575b806124e8575b806124d4575b6124aa575b600754858160a01c161580612498575b8061248d575b80612475575b80612461575b612363575b50508360075460a01c161591808b52601e865284828c2054168015612354575b61234c575b8a938b936121e2575b505050505050506121e0939450612af7565b565b60189996979954868160101c16156122ca575b509a612245979695949392916121e09b9c8252878052858383205416806122bb575b15612277575050505050612236606491600194601654901c1683611d85565b04915b82612253575b506120ec565b9184935f80808080806121ce565b61225e833088612af7565b612269575b5f61223f565b61227281612d7f565b612263565b8152205491945091908116806122ae575b612293575b50612239565b60649193506122a6906016541683611d85565b04915f61228d565b5080601654161515612288565b5085601654891c161515612217565b61ffff60018183160181811161233857916121e09d9e93916122459b9a999897969593168061ffff19831617601855601754818684161711612319575b5050919c9b50919293949596976121f5565b620100009162ffffff19161717601855612331611f1f565b5f80612307565b634e487b7160e01b8f52601160045260248ffd5b8a92506121c5565b50838b5284828c2054166121c0565b819042600d551682516370a0823160e01b81528160048201528781602481305afa908115612457575f91612428575b506123a361271091600a5490611d85565b0480612418575b505060075416803b156103fa575f8091600484518094819363fff6cae960e01b83525af180156103f057612405575b507f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d8a80a15f806121a0565b612410919a50611cc7565b5f985f6123d9565b61242191612a29565b5f806123aa565b90508781813d8311612450575b61243f8183611cef565b810103126103fa57516123a3612392565b503d612435565b84513d5f823e3d90fd5b50835f52601e875285835f2054161561219b565b50612485600d54600c5490611db6565b421015612195565b5085600b541661218f565b50845f5286805285835f205416612189565b6007805460ff60a01b19908116600160a01b179091556124c8612b72565b60075416600755612179565b50835f52601e865284825f20541615612174565b50825f52601e865284825f2054161561216e565b50825f5285805284825f20541615612168565b508460075460a01c1615612162565b508460115460101c1661215c565b866005541692838514159081612863575b8161285b575b508061284f575b80612840575b1561213e5760081c16156127d8575b83601554166126fe575b50805f52602080805260409084825f205416806126ea575b1561261757600e5489116125b7576125af915f6125a592868252525f205489611db6565b60105410156120aa565b5f838161213e565b608491519062461bcd60e51b82526004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152fd5b90835f5281805284815f205416806126d6575b156126a157600e54891161263f5750506125af565b60849250519062461bcd60e51b82526004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152fd5b90835f52601f815284825f205416156126bc575b50506125af565b6126cf915f6125a592525f205489611db6565b5f806126b5565b50825f52601f825284815f2054161561262a565b50835f52601f815284825f20541615612581565b821415806127ca575b806127bc575b612718575b5f612569565b325f52601460205260405f205443111561273f57325f5260146020524360405f2055612712565b60405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a490fd5b50836007541682141561270d565b508360065416821415612707565b815f52601e6020528360405f2054168015612830575b61255f5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606490fd5b50825f528360405f2054166127ee565b508160075460a01c1615612550565b5061dead85141561254a565b90505f612543565b86851415915061253d565b929450955095965061288a93506128859150611ff8565b612052565b5f602052815f527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206040515f8152a3565b60408051916060830183811067ffffffffffffffff821117611cdb57825260028352602080840190833683378451156129ec5730825260065484516315ab88c960e31b81526001600160a01b03949092909185168184600481845afa938415612a1f575f94612a00575b50875193600194600110156129ec576129489187859216898b015230611e21565b846006541694853b156103fa57918697949391975197889563791ac94760e01b875260a487019260048801525f602488015260a060448801525180925260c4860194935f905b8382106129d25750505050505091815f81819530606483015242608483015203925af19081156129c957506129c05750565b6121e090611cc7565b513d5f823e3d90fd5b8551811687528a975095820195948201949084019061298e565b634e487b7160e01b5f52603260045260245ffd5b612a18919450823d8411610ce057610cd28183611cef565b925f612927565b87513d5f823e3d90fd5b6001600160a01b0316612a3d811515611ff8565b805f525f60205260405f2054828110612aa3578290825f525f6020520360405f20557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602061dead93845f5260405f20612a98828254611db6565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b6001600160a01b0390811691612b0e831515611ff8565b1691612b1b831515612052565b815f525f60205260405f2054818110612aa357817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20612a98828254611db6565b305f525f60205260405f2054601c54612b99612b90601b5483611db6565b601d5490611db6565b9082158015612d77575b612d7257600f54601481029080820460141490151715611d2557808411612d68575b50612bdc82612bd7612be69386611d85565b611d98565b60011c80936120ec565b612c2c612bfc47612bf6846128bd565b476120ec565b612c27612c1f612c1286612bd7601b5486611d85565b95612bd7601d5485611d85565b9485926120ec565b6120ec565b925f601c555f601b555f601d555f80808060018060a01b039687600954165af150612c55611dc3565b5080151580612d5f575b612c81575b50505f8080935080926008541647905af150612c7e611dc3565b50565b606081612c948693866006541630611e21565b60c4856006541691604051948593849263f305d71960e01b845230600485015260248401525f60448401525f606484015261dead60848401524260a48401525af18015612d5457612d29575b505f8093927f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56160608395948495601c549060405192835260208301526040820152a19250612c64565b606090813d8311612d4d575b612d3f8183611cef565b810103126103fa575f612ce0565b503d612d35565b6040513d5f823e3d90fd5b50831515612c5f565b9250612bdc612bc5565b505050565b508115612ba3565b6002548060011b9080820460021490151715611d25576064900460195443145f14612e1757601a5491818310612db457505050565b8282612dc382612dec956120ec565b831015612e085750505b305f525f60205260405f2054908082105f14612e0157505b8092611db6565b601a555b80612df85750565b6121e0906128bd565b9050612de5565b612e1292506120ec565b612dcd565b80821015612e4d57505b305f525f60205260405f2054908082105f14612e4657505b8043601955601a55612df0565b9050612e39565b9050612e2156fea264697066735822122018c2a9f370a5b082947e52a818c2990ac1b3576dc8ab8fcc5d2cc66f6172de9464736f6c63430008180033

Deployed Bytecode

0x6040608081526004908136101561001f575b5050361561001d575f80fd5b005b5f905f3560e01c806299d38614611b8e578063057f202e14611b7057806306fdde0314611a7b578063095ea7b314611a5257806310d5de5314611a165780631694505e146119ee57806318160ddd146119d0578063184c16c5146119b2578063199ffc72146119945780631a8145bb146119765780631d003eb61461186c5780631f3fed8f1461184e578063203e727e1461178957806323b872dd146116cd57806327c8f835146116b15780632c3e486c146116935780632e82f1a0146116705780632eff0d9e1461164e578063313674dd14611630578063313ce5671461161557806338b2c461146115f757806339509351146115ab578063404bc41b146115855780634487c29f146114a657806349bd5a5e1461147e5780634a62bb651461145b5780634fbee1931461141f578063535e02d8146113ae5780636ddd1713146113885780636fc3eaec146113395780637040eb8b1461126c57806370a0823114611236578063715018a6146111d8578063730c1888146110a5578063751039fc1461106b5780637571336a1461100f5780637d831a8b14610f9e5780638da5cb5b14610f76578063924de9b714610f2957806395d89b4114610e265780639a7a23d614610d345780639e78fb4f14610b4b5780639ec22c0e14610b2d5780639fccce3214610b0f578063a457c2d714610a6a578063a4c82a0014610a4c578063a9059cbb14610a1c578063b62496f5146109e1578063bbc0c742146109bb578063c024666814610932578063c18bc1951461084e578063c3c8cd80146107fe578063c876d0b9146107db578063c8c8ebe4146107bd578063d257b34f14610665578063dd62ed3e1461061c578063e2f45605146105fe578063e884f260146105c4578063f2fde38b146104fc578063f8b45b05146104de5763fe72b27a146102c95750610011565b346103fa57602092836003193601126103fa576005546001600160a01b03908235906102f89083163314611c7c565b61030760135460125490611db6565b42111561049d576103e88111610447574260135581600754169084516370a0823160e01b815282858201528781602481305afa90811561043d575f9161040e575b506127109161035691611d85565b04806103fe575b50506007541690813b156103fa57825160016209351760e01b03198152915f918391829084905af180156103f0576103bd575b507f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb90519180a160018152f35b6103c8919250611cc7565b5f907f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb610390565b82513d5f823e3d90fd5b5f80fd5b61040791612a29565b5f8061035d565b90508781813d8311610436575b6104258183611cef565b810103126103fa5751612710610348565b503d61041b565b86513d5f823e3d90fd5b835162461bcd60e51b8152808401879052602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608490fd5b606483878087519262461bcd60e51b845283015260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973686044820152fd5b50346103fa575f3660031901126103fa576020906010549051908152f35b5082346103fa5760203660031901126103fa57610517611c11565b6005546001600160a01b03808216939192610533338614611c7c565b169384156105725750506001600160a01b03191682176005557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b50346103fa575f3660031901126103fa576020906105ed60018060a01b03600554163314611c7c565b60ff19601554166015555160018152f35b50346103fa575f3660031901126103fa57602090600f549051908152f35b50346103fa57806003193601126103fa57602090610638611c11565b610640611c27565b9060018060a01b038091165f5260018452825f2091165f528252805f20549051908152f35b8382346103fa5760203660031901126103fa57813561068f60018060a01b03600554163314611c7c565b60025480158180046001148117156107aa57620186a08204831061074957600582029182046005141715610736576103e8900481116106d65760209250600f555160018152f35b815162461bcd60e51b8152602081850152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608490fd5b601184634e487b7160e01b5f525260245ffd5b835162461bcd60e51b8152602081870152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608490fd5b601185634e487b7160e01b5f525260245ffd5b50346103fa575f3660031901126103fa57602090600e549051908152f35b50346103fa575f3660031901126103fa5760209060ff6015541690519015158152f35b50346103fa575f3660031901126103fa57600954336001600160a01b0391821614908115610840575b50156103fa5761001d90305f525f6020525f20546128bd565b905060085416331482610827565b5082346103fa5760203660031901126103fa57803561087860018060a01b03600554163314611c7c565b6002549260058402938085046005149015171561091f576103e893670de0b6b3a7640000948591040482106108d157508281029281840414901517156108be5750601055005b601190634e487b7160e01b5f525260245ffd5b5162461bcd60e51b81526020818401526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608490fd5b601183634e487b7160e01b5f525260245ffd5b50346103fa57806003193601126103fa577f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7602061096e611c11565b610976611c6d565b60055490916001600160a01b03916109919083163314611c7c565b1693845f52601e83526109b282825f209060ff801983541691151516179055565b519015158152a2005b50346103fa575f3660031901126103fa5760209060ff60115460081c1690519015158152f35b50346103fa5760203660031901126103fa576020906001600160a01b03610a06611c11565b165f5281805260ff815f20541690519015158152f35b50346103fa57806003193601126103fa57602090610a45610a3b611c11565b60243590336120f9565b5160018152f35b50346103fa575f3660031901126103fa57602090600d549051908152f35b5082346103fa57816003193601126103fa57610a84611c11565b9060243590335f526001602052835f2060018060a01b0384165f52602052835f205490828210610abe57602085610a458585038733611e21565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b50346103fa575f3660031901126103fa57602090601d549051908152f35b50346103fa575f3660031901126103fa576020906013549051908152f35b5082346103fa575f3660031901126103fa576005546001600160a01b039190610b809083163314610b7b81611c7c565b611c7c565b737a250d5630b4cf539739df2c5dacb4c659f2488d91825f52602092601f8452845f209260ff19936001858254161790556bffffffffffffffffffffffff60a01b9180836006541617600655865163c45a015560e01b815286818481855afa908115610d0b57839288915f93610d15575b5089516315ab88c960e31b815293849182905afa8015610d0b5785938489945f93610ce7575b505f90604493948c5197889687956364e329cb60e11b87523090870152166024850152165af190811561043d57918360019793928895935f91610cba575b501680916007541617600755610c7033836005541614611c7c565b5f52601f8552815f2083858254161790556007541693845f5280525f20918254161790557fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab5f80a3005b610cda9150883d8a11610ce0575b610cd28183611cef565b810190611e02565b89610c55565b503d610cc8565b6044935090610d035f92873d8911610ce057610cd28183611cef565b935090610c17565b88513d5f823e3d90fd5b610d2d919350823d8411610ce057610cd28183611cef565b918a610bf1565b5082346103fa57816003193601126103fa57610d4e611c11565b91610d57611c6d565b9160018060a01b03610d6e81600554163314611c7c565b80600754169416938414610dbe57505f8381526020805220805460ff191660ff831515161790551515907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab5f80a3005b6020608492519162461bcd60e51b8352820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152fd5b8382346103fa575f3660031901126103fa578051905f9280549060018260011c9160018416938415610f1f575b6020948585108114610f0c57848852908115610eea5750600114610e91575b610e8d8686610e83828b0383611cef565b5191829182611bca565b0390f35b5f9081529295507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610ed75750505082610e8d94610e83928201019486610e72565b8054868501880152928601928101610eba565b60ff191687860152505050151560051b8301019250610e8382610e8d86610e72565b602283634e487b7160e01b5f525260245ffd5b92607f1692610e53565b83346103fa5760203660031901126103fa57358015158091036103fa57610f5b60018060a01b03600554163314611c7c565b62ff00006011549160101b169062ff00001916176011555f80f35b50346103fa575f3660031901126103fa5760055490516001600160a01b039091168152602090f35b346103fa5760203660031901126103fa57610fb7611c11565b6005546001600160a01b039190610fd19083163314611c7c565b816008549116918116827fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b056745f80a36001600160a01b03191617600855005b50346103fa57806003193601126103fa5761001d9061102c611c11565b90611035611c6d565b60055490926001600160a01b03916110509083163314611c7c565b165f52601f6020525f209060ff801983541691151516179055565b50346103fa575f3660031901126103fa5760209061109460018060a01b03600554163314611c7c565b60ff19601154166011555160018152f35b5082346103fa5760603660031901126103fa57803560243591604435938415158095036103fa576110e160018060a01b03600554163314611c7c565b6102588310611179576103e884111580611171575b15611115575050600c55600a5560ff8019600b5416911617600b555f80f35b906020608492519162461bcd60e51b8352820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b6064820152fd5b5060016110f6565b906020608492519162461bcd60e51b8352820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b6064820152fd5b346103fa575f3660031901126103fa576005545f906001600160a01b03811690611203338314611c7c565b6001600160a01b0319166005557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b50346103fa5760203660031901126103fa576020906001600160a01b0361125b611c11565b165f525f8252805f20549051908152f35b50346103fa575f3660031901126103fa576102009060165460ff9081818451948282168652828260081c166020870152828260101c1681870152828260181c166060870152828260201c166080870152828260281c1660a0870152828260301c1660c0870152828260381c1660e08701521c16610100840152818160481c16610120840152818160501c16610140840152818160581c16610160840152818160601c16610180840152818160681c166101a0840152818160701c166101c084015260781c166101e0820152f35b346103fa575f3660031901126103fa576009546001600160a01b039081163314801561137b575b156103fa575f808080936008541647905af15061001d611dc3565b5080600854163314611360565b50346103fa575f3660031901126103fa5760209060ff60115460101c1690519015158152f35b346103fa5760203660031901126103fa576113c7611c11565b6005546001600160a01b0391906113e19083163314611c7c565b816009549116918116827ffaf1b77ed79f6e898c44dd8ab36b330c7b2fd39bcaab05ed6362480df87039655f80a36001600160a01b03191617600955005b50346103fa5760203660031901126103fa576020906001600160a01b03611444611c11565b165f52601e825260ff815f20541690519015158152f35b50346103fa575f3660031901126103fa5760209060ff6011541690519015158152f35b50346103fa575f3660031901126103fa5760075490516001600160a01b039091168152602090f35b346103fa5760603660031901126103fa576114bf611c3d565b6114c7611c4d565b6114cf611c5d565b6114e460018060a01b03600554163314611c7c565b60ff60381b66ff00000000000065ff00000000006016549560281b169360301b169160381b169164ff00000000611547848367ffffff00000000001988161785171760ff61153c818360301c16828460281c16611d11565b9160381c1690611d11565b611557606460ff83161115611d39565b60201b169367ffffffff0000000019161717171760165560ff60185460101c1661157d57005b61001d611f1f565b50346103fa575f3660031901126103fa5760209060ff60185460101c1690519015158152f35b50346103fa57806003193601126103fa57602090610a456115ca611c11565b335f5260018452825f2060018060a01b0382165f5284526115f0602435845f2054611db6565b9033611e21565b50346103fa575f3660031901126103fa576020906017549051908152f35b50346103fa575f3660031901126103fa576020905160128152f35b50346103fa575f3660031901126103fa57602090601a549051908152f35b50346103fa575f3660031901126103fa5760209061ffff601854169051908152f35b50346103fa575f3660031901126103fa5760209060ff600b541690519015158152f35b50346103fa575f3660031901126103fa57602090600c549051908152f35b50346103fa575f3660031901126103fa576020905161dead8152f35b5082346103fa5760603660031901126103fa576116e8611c11565b906116f1611c27565b906117006044358093856120f9565b60018060a01b0383165f526001602052835f20335f52602052835f20549082821061173557602085610a458585033388611e21565b608490602086519162461bcd60e51b8352820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152fd5b5082346103fa5760203660031901126103fa5780356117b360018060a01b03600554163314611c7c565b600254928380046001148415171561091f576103e893670de0b6b3a7640000948591040482106117f457508281029281840414901517156108be5750600e55005b5162461bcd60e51b8152602081840152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608490fd5b50346103fa575f3660031901126103fa57602090601b549051908152f35b5082346103fa5760603660031901126103fa57611887611c3d565b61188f611c4d565b611897611c5d565b906118ad60018060a01b03600554163314611c7c565b63ff00000062ff000061ff006016549560081b169260101b169260181b169260ff6118ff858463ffffff0019851617861717826118f4818360101c16828460081c16611d11565b9160181c1690611d11565b169460ff60185460101c16968761193357505061191f6064861115611d39565b63ffffffff19161717171760165561157d57005b906020606492519162461bcd60e51b8352820152601a60248201527f46696e616c20666565732061726520616c7265616479207365740000000000006044820152fd5b50346103fa575f3660031901126103fa57602090601c549051908152f35b50346103fa575f3660031901126103fa57602090600a549051908152f35b50346103fa575f3660031901126103fa576020906012549051908152f35b50346103fa575f3660031901126103fa576020906002549051908152f35b50346103fa575f3660031901126103fa5760065490516001600160a01b039091168152602090f35b50346103fa5760203660031901126103fa576020906001600160a01b03611a3b611c11565b165f52601f825260ff815f20541690519015158152f35b50346103fa57806003193601126103fa57602090610a45611a71611c11565b6024359033611e21565b8382346103fa575f3660031901126103fa578051905f9260035460018160011c91600181168015611b66575b6020948585108214611b535750838752908115611b335750600114611ad9575b505050610e8382610e8d940383611cef565b60035f9081529295507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410611b205750505082610e8d94610e839282010194611ac7565b8054868501880152928601928101611b04565b60ff1916868501525050151560051b8301019250610e8382610e8d611ac7565b602290634e487b7160e01b5f525260245ffd5b92607f1692611aa7565b50346103fa575f3660031901126103fa576020906019549051908152f35b346103fa575f3660031901126103fa57611bb360018060a01b03600554163314611c7c565b6011805462ffff0019166201010017905542600d55005b602080825282518183018190529093925f5b828110611bfd57505060409293505f838284010152601f8019910116010190565b818101860151848201604001528501611bdc565b600435906001600160a01b03821682036103fa57565b602435906001600160a01b03821682036103fa57565b6004359060ff821682036103fa57565b6024359060ff821682036103fa57565b6044359060ff821682036103fa57565b6024359081151582036103fa57565b15611c8357565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b67ffffffffffffffff8111611cdb57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117611cdb57604052565b9060ff8091169116019060ff8211611d2557565b634e487b7160e01b5f52601160045260245ffd5b15611d4057565b60405162461bcd60e51b815260206004820152601d60248201527f546f74616c20666565732063616e6e6f742065786365656420313030250000006044820152606490fd5b81810292918115918404141715611d2557565b8115611da2570490565b634e487b7160e01b5f52601260045260245ffd5b91908201809211611d2557565b3d15611dfd573d9067ffffffffffffffff8211611cdb5760405191611df2601f8201601f191660200184611cef565b82523d5f602084013e565b606090565b908160209103126103fa57516001600160a01b03811681036103fa5790565b6001600160a01b03908116918215611ece5716918215611e7e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526001825260405f20855f5282528060405f2055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b601654604061ff0082821c1662ff00008161ff0019851617831c1663ff000000818362ffff001987161717841c1660ff818463ffffff0019881617841717851c169065ff0000000000828563ffffffff198916178517831717861c169266ff000000000000848665ff00ffffffff198a161783178417851717871c169464ff0000000060ff60381b878366ffff00ffffffff198c1617851786178717881717891c1697888367ffffff00ffffffff198c16178517861787178817891717901c169767ffffffffffffffff19161717171717171717601655565b15611fff57565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b1561205957565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b156120b157565b60405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606490fd5b91908203918211611d2557565b5f939291906001600160a01b038082168015159061211682611ff8565b828516908115159261212784612052565b871561286e57506011549260ff848180961661252c575b505050305f526020935f8552604090815f2054600f5411158061251e575b8061250f575b806124fc575b806124e8575b806124d4575b6124aa575b600754858160a01c161580612498575b8061248d575b80612475575b80612461575b612363575b50508360075460a01c161591808b52601e865284828c2054168015612354575b61234c575b8a938b936121e2575b505050505050506121e0939450612af7565b565b60189996979954868160101c16156122ca575b509a612245979695949392916121e09b9c8252878052858383205416806122bb575b15612277575050505050612236606491600194601654901c1683611d85565b04915b82612253575b506120ec565b9184935f80808080806121ce565b61225e833088612af7565b612269575b5f61223f565b61227281612d7f565b612263565b8152205491945091908116806122ae575b612293575b50612239565b60649193506122a6906016541683611d85565b04915f61228d565b5080601654161515612288565b5085601654891c161515612217565b61ffff60018183160181811161233857916121e09d9e93916122459b9a999897969593168061ffff19831617601855601754818684161711612319575b5050919c9b50919293949596976121f5565b620100009162ffffff19161717601855612331611f1f565b5f80612307565b634e487b7160e01b8f52601160045260248ffd5b8a92506121c5565b50838b5284828c2054166121c0565b819042600d551682516370a0823160e01b81528160048201528781602481305afa908115612457575f91612428575b506123a361271091600a5490611d85565b0480612418575b505060075416803b156103fa575f8091600484518094819363fff6cae960e01b83525af180156103f057612405575b507f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d8a80a15f806121a0565b612410919a50611cc7565b5f985f6123d9565b61242191612a29565b5f806123aa565b90508781813d8311612450575b61243f8183611cef565b810103126103fa57516123a3612392565b503d612435565b84513d5f823e3d90fd5b50835f52601e875285835f2054161561219b565b50612485600d54600c5490611db6565b421015612195565b5085600b541661218f565b50845f5286805285835f205416612189565b6007805460ff60a01b19908116600160a01b179091556124c8612b72565b60075416600755612179565b50835f52601e865284825f20541615612174565b50825f52601e865284825f2054161561216e565b50825f5285805284825f20541615612168565b508460075460a01c1615612162565b508460115460101c1661215c565b866005541692838514159081612863575b8161285b575b508061284f575b80612840575b1561213e5760081c16156127d8575b83601554166126fe575b50805f52602080805260409084825f205416806126ea575b1561261757600e5489116125b7576125af915f6125a592868252525f205489611db6565b60105410156120aa565b5f838161213e565b608491519062461bcd60e51b82526004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152fd5b90835f5281805284815f205416806126d6575b156126a157600e54891161263f5750506125af565b60849250519062461bcd60e51b82526004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152fd5b90835f52601f815284825f205416156126bc575b50506125af565b6126cf915f6125a592525f205489611db6565b5f806126b5565b50825f52601f825284815f2054161561262a565b50835f52601f815284825f20541615612581565b821415806127ca575b806127bc575b612718575b5f612569565b325f52601460205260405f205443111561273f57325f5260146020524360405f2055612712565b60405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a490fd5b50836007541682141561270d565b508360065416821415612707565b815f52601e6020528360405f2054168015612830575b61255f5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606490fd5b50825f528360405f2054166127ee565b508160075460a01c1615612550565b5061dead85141561254a565b90505f612543565b86851415915061253d565b929450955095965061288a93506128859150611ff8565b612052565b5f602052815f527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206040515f8152a3565b60408051916060830183811067ffffffffffffffff821117611cdb57825260028352602080840190833683378451156129ec5730825260065484516315ab88c960e31b81526001600160a01b03949092909185168184600481845afa938415612a1f575f94612a00575b50875193600194600110156129ec576129489187859216898b015230611e21565b846006541694853b156103fa57918697949391975197889563791ac94760e01b875260a487019260048801525f602488015260a060448801525180925260c4860194935f905b8382106129d25750505050505091815f81819530606483015242608483015203925af19081156129c957506129c05750565b6121e090611cc7565b513d5f823e3d90fd5b8551811687528a975095820195948201949084019061298e565b634e487b7160e01b5f52603260045260245ffd5b612a18919450823d8411610ce057610cd28183611cef565b925f612927565b87513d5f823e3d90fd5b6001600160a01b0316612a3d811515611ff8565b805f525f60205260405f2054828110612aa3578290825f525f6020520360405f20557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602061dead93845f5260405f20612a98828254611db6565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b6001600160a01b0390811691612b0e831515611ff8565b1691612b1b831515612052565b815f525f60205260405f2054818110612aa357817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20612a98828254611db6565b305f525f60205260405f2054601c54612b99612b90601b5483611db6565b601d5490611db6565b9082158015612d77575b612d7257600f54601481029080820460141490151715611d2557808411612d68575b50612bdc82612bd7612be69386611d85565b611d98565b60011c80936120ec565b612c2c612bfc47612bf6846128bd565b476120ec565b612c27612c1f612c1286612bd7601b5486611d85565b95612bd7601d5485611d85565b9485926120ec565b6120ec565b925f601c555f601b555f601d555f80808060018060a01b039687600954165af150612c55611dc3565b5080151580612d5f575b612c81575b50505f8080935080926008541647905af150612c7e611dc3565b50565b606081612c948693866006541630611e21565b60c4856006541691604051948593849263f305d71960e01b845230600485015260248401525f60448401525f606484015261dead60848401524260a48401525af18015612d5457612d29575b505f8093927f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56160608395948495601c549060405192835260208301526040820152a19250612c64565b606090813d8311612d4d575b612d3f8183611cef565b810103126103fa575f612ce0565b503d612d35565b6040513d5f823e3d90fd5b50831515612c5f565b9250612bdc612bc5565b505050565b508115612ba3565b6002548060011b9080820460021490151715611d25576064900460195443145f14612e1757601a5491818310612db457505050565b8282612dc382612dec956120ec565b831015612e085750505b305f525f60205260405f2054908082105f14612e0157505b8092611db6565b601a555b80612df85750565b6121e0906128bd565b9050612de5565b612e1292506120ec565b612dcd565b80821015612e4d57505b305f525f60205260405f2054908082105f14612e4657505b8043601955601a55612df0565b9050612e39565b9050612e2156fea264697066735822122018c2a9f370a5b082947e52a818c2990ac1b3576dc8ab8fcc5d2cc66f6172de9464736f6c63430008180033

Deployed Bytecode Sourcemap

15083:22725:0:-:0;;;;;;;;;;;;-1:-1:-1;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;926:6;15083:22725;-1:-1:-1;;;;;15083:22725:0;;;;976:68;;15083:22725;;475:10;984:23;976:68;:::i;:::-;36945:42;:20;15083:22725;36968:19;15083:22725;36945:42;;:::i;:::-;36927:15;:60;15083:22725;;;37074:4;37063:15;;15083:22725;;36927:15;36945:20;15083:22725;;37271:13;15083:22725;;;;;;;;37256:29;;;;;;15083:22725;37256:4;;15083:22725;37256:4;;:29;;;;;;;15083:22725;37256:29;;;15083:22725;9253:5;37393;9253;;;;:::i;:::-;15083:22725;37501:16;37497:108;;15083:22725;;;37271:13;15083:22725;;37738:11;;;;;;15083:22725;;-1:-1:-1;;;;;;37738:11:0;;15083:22725;;;;;;;;;37738:11;;;;;;;;15083:22725;;37764:14;15083:22725;;37764:14;;;15083:22725;;;;37738:11;;;;;;:::i;:::-;15083:22725;;37764:14;37738:11;;;15083:22725;;;;;;;;;37738:11;15083:22725;;;37497:108;37581:12;;;:::i;:::-;37497:108;;;;37256:29;;;;;;;;;;;;;;;;:::i;:::-;;;15083:22725;;;;;37393:5;37256:29;;;;;;;;15083:22725;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;15649:24;15083:22725;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;:::i;:::-;926:6;15083:22725;-1:-1:-1;;;;;15083:22725:0;;;;;;976:68;475:10;984:23;;976:68;:::i;:::-;15083:22725;1276:22;;;15083:22725;;-1:-1:-1;;;;;;;;15083:22725:0;;;926:6;15083:22725;1553:40;15083:22725;;1553:40;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;976:68;15083:22725;;;;;926:6;15083:22725;;475:10;984:23;976:68;:::i;:::-;15083:22725;;21375:28;15083:22725;;21375:28;15083:22725;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;15610:33;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;3892:11;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;976:68;15083:22725;;;;;926:6;15083:22725;;475:10;984:23;976:68;:::i;:::-;3385:12;15083:22725;;;;;;;;;;;;;21604:6;15083:22725;;21569:41;;15083:22725;;926:6;15083:22725;;;;;926:6;15083:22725;;;;;21755:4;15083:22725;;21720:39;;15083:22725;;;;;21847:30;15083:22725;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;15569:35;15083:22725;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;15960:39;15083:22725;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;35012:17;15083:22725;475:10;-1:-1:-1;;;;;15083:22725:0;;;34996:33;;:68;;;;15083:22725;;;;;35161:15;35128:4;;15083:22725;;;;;;;;35161:15;:::i;34996:68::-;15083:22725;;35049:15;15083:22725;;475:10;35033:31;34996:68;;;15083:22725;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;976:68;15083:22725;;;;;926:6;15083:22725;;475:10;984:23;976:68;:::i;:::-;3385:12;15083:22725;;926:6;15083:22725;;;;;;926:6;15083:22725;;;;;;;22318:4;22326;;15083:22725;;;;;22285:45;;15083:22725;;;;;;;;;;;;;;;;;-1:-1:-1;22402:31:0;15083:22725;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24839:34;15083:22725;;;:::i;:::-;;;:::i;:::-;926:6;15083:22725;;;-1:-1:-1;;;;;15083:22725:0;976:68;;15083:22725;;475:10;984:23;976:68;:::i;:::-;15083:22725;;;;;24785:19;15083:22725;;24785:39;15083:22725;;;;;;;;;;;;;;;;;;;24785:39;15083:22725;;;;;;24839:34;15083:22725;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;15719:33;15083:22725;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;-1:-1:-1;;;;;15083:22725:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3714:6;15083:22725;;:::i;:::-;;;475:10;;3714:6;:::i;:::-;15083:22725;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;15533:29;15083:22725;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;475:10;;15083:22725;;;;;;;;;;;;;;;;;;;;;;;5153:35;;;;15083:22725;;;;5317:34;15083:22725;;;;475:10;5317:34;:::i;15083:22725::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;16897:27;15083:22725;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;15848:35;15083:22725;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;926:6;15083:22725;-1:-1:-1;;;;;15083:22725:0;;976:68;;15083:22725;;475:10;984:23;976:68;984:23;976:68;:::i;:::-;;:::i;:::-;20575:42;15083:22725;;;;;;22557:31;15083:22725;;;;;;;;;20690:4;15083:22725;;;;;;;;;;;;;20705:34;15083:22725;;;20705:34;15083:22725;;;;;;20783:26;;;;;;;;;;;;;;;;;;15083:22725;20783:26;;;15083:22725;-1:-1:-1;15083:22725:0;;-1:-1:-1;;;20850:23:0;;15083:22725;;;;;20850:23;;;;;;;;;;;15083:22725;20850:23;;;15083:22725;;;;;;;;;;;;;;;;;20765:109;;20843:4;20765:109;;;15083:22725;;;;;;;20765:109;;;;;;;;;20690:4;20765:109;;;;;;15083:22725;20765:109;;;15083:22725;;;;;20749:125;15083:22725;;;20749:125;15083:22725;976:68;475:10;15083:22725;926:6;15083:22725;;984:23;976:68;:::i;:::-;15083:22725;;22557:31;15083:22725;;;;;;;;;;;;;20749:125;15083:22725;;;;;;;;;;;;;;;;;25325:40;15083:22725;25325:40;;15083:22725;20765:109;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;20850:23;15083:22725;20850:23;;;;15083:22725;20850:23;;;;;;;;;;;:::i;:::-;;;;;;;15083:22725;;;;;;;;;20783:26;;;;;;;;;;;;;;;:::i;:::-;;;;;15083:22725;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;976:68;15083:22725;926:6;15083:22725;;475:10;984:23;976:68;:::i;:::-;15083:22725;25027:13;15083:22725;;;;25019:21;;;15083:22725;;-1:-1:-1;15083:22725:0;;;;25270:25;15083:22725;;;;;-1:-1:-1;;15083:22725:0;;;;;;;;;;;25325:40;;15083:22725;25325:40;;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;-1:-1:-1;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;;;;;;;976:68;15083:22725;;;;;926:6;15083:22725;;475:10;984:23;976:68;:::i;:::-;15083:22725;22686:21;15083:22725;;;;;;;;;;22686:21;15083:22725;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;926:6;15083:22725;;;-1:-1:-1;;;;;15083:22725:0;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;:::i;:::-;926:6;15083:22725;-1:-1:-1;;;;;15083:22725:0;;976:68;;15083:22725;;475:10;984:23;976:68;:::i;:::-;15083:22725;25532:15;15083:22725;;;;;;25489:59;;15083:22725;25489:59;;-1:-1:-1;;;;;;15083:22725:0;;25532:15;15083:22725;;;;;;;;;;;;;;;22557:46;15083:22725;;;:::i;:::-;;;;:::i;:::-;926:6;15083:22725;;;-1:-1:-1;;;;;15083:22725:0;976:68;;15083:22725;;475:10;984:23;976:68;:::i;:::-;15083:22725;;;22557:31;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;976:68;15083:22725;;;;;926:6;15083:22725;;475:10;984:23;976:68;:::i;:::-;15083:22725;;21243:22;15083:22725;;21243:22;15083:22725;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;;;;;;;;;;;;;;976:68;15083:22725;;;;;926:6;15083:22725;;475:10;984:23;976:68;:::i;:::-;35670:3;35647:26;;15083:22725;;35793:4;35781:16;;;:33;;;15083:22725;;;;;;35898:37;15083:22725;35945:27;15083:22725;;;;35982:24;15083:22725;;;;;35982:24;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;35781:33;;15083:22725;35781:33;;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;926:6;15083:22725;;;-1:-1:-1;;;;;15083:22725:0;;;976:68;475:10;984:23;;976:68;:::i;:::-;-1:-1:-1;;;;;;15083:22725:0;926:6;15083:22725;1553:40;;;;15083:22725;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;-1:-1:-1;;;;;15083:22725:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;16602:20;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;35268:17;15083:22725;-1:-1:-1;;;;;15083:22725:0;;;475:10;35252:33;:68;;;;15083:22725;;;;;;;;;35384:15;15083:22725;;35426:21;35376:85;;;;;;:::i;35252:68::-;15083:22725;;35305:15;15083:22725;;475:10;35289:31;35252:68;;15083:22725;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;15758:30;15083:22725;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;:::i;:::-;926:6;15083:22725;-1:-1:-1;;;;;15083:22725:0;;976:68;;15083:22725;;475:10;984:23;976:68;:::i;:::-;15083:22725;25733:17;15083:22725;;;;;;25697:54;;15083:22725;25697:54;;-1:-1:-1;;;;;;15083:22725:0;;25733:17;15083:22725;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;-1:-1:-1;;;;;15083:22725:0;;:::i;:::-;;;;25892:19;15083:22725;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;15680:33;15083:22725;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;15203:28;15083:22725;;;-1:-1:-1;;;;;15083:22725:0;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;976:68;15083:22725;;;;;926:6;15083:22725;;475:10;984:23;976:68;:::i;:::-;-1:-1:-1;;;15083:22725:0;;24156:6;15083:22725;;;;;;;;;;;;;;;24334:101;15083:22725;;;;;;;;;;;24334:61;15083:22725;;;;;;;;;;24334:61;:::i;:::-;15083:22725;;;;24334:101;;:::i;:::-;24445:65;24473:3;15083:22725;;;24453:23;;24445:65;:::i;:::-;15083:22725;;;;;;;;;;;24156:6;15083:22725;;24634:9;15083:22725;;;;24630:59;;15083:22725;24630:59;;;:::i;15083:22725::-;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;16698:29;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;;;4839:47;15083:22725;;:::i;:::-;475:10;15083:22725;;;;;;;;;;;;;;;;;;;4839:47;15083:22725;;;;;;4839:47;:::i;:::-;475:10;;4839:47;:::i;15083:22725::-;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;16629:29;15083:22725;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;3283:2;15083:22725;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;16776:36;15083:22725;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;16665:27;15083:22725;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;15443:33;15083:22725;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;15482:45;15083:22725;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;15283:6;15083:22725;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;:::i;:::-;;;;:::i;:::-;;4307:6;15083:22725;;4307:6;;;;:::i;:::-;15083:22725;;;;;;;;;;;;;;;475:10;15083:22725;;;;;;;;4416:26;;;;15083:22725;;;;4573:25;15083:22725;;;475:10;15083:22725;4573:25;:::i;15083:22725::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;976:68;15083:22725;;;;;926:6;15083:22725;;475:10;984:23;976:68;:::i;:::-;3385:12;15083:22725;;;;;;;;;;;;;22038:4;22046;;15083:22725;;;;;22005:45;;15083:22725;;;;;;;;;;;;;;;;;-1:-1:-1;22133:42:0;15083:22725;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;16819:33;15083:22725;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;976:68;15083:22725;;;;;926:6;15083:22725;;475:10;984:23;976:68;:::i;:::-;15083:22725;;;22867:6;15083:22725;;;;;;;;;;;;;;;23041:98;15083:22725;;;;;;;;;;;23041:59;15083:22725;;;;;;;;;;23041:59;:::i;:::-;15083:22725;;;;23041:98;;:::i;:::-;15083:22725;;;;;;;;23157:10;;15083:22725;;23216:22;;23208:64;23235:3;23216:22;;;23208:64;:::i;:::-;-1:-1:-1;;15083:22725:0;;;;;22867:6;15083:22725;23390:59;;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;16858:33;15083:22725;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;15402:35;15083:22725;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;15795:47;15083:22725;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;3385:12;15083:22725;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;15156:41;15083:22725;;;-1:-1:-1;;;;;15083:22725:0;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;-1:-1:-1;;;;;15083:22725:0;;:::i;:::-;;;;16989:63;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4085:6;15083:22725;;:::i;:::-;;;475:10;;4085:6;:::i;15083:22725::-;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;;;;3075:5;15083:22725;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3075:5;15083:22725;;;;;;-1:-1:-1;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;-1:-1:-1;;15083:22725:0;;;;;;;;-1:-1:-1;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;;16734:36;15083:22725;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;976:68;15083:22725;;;;;926:6;15083:22725;;475:10;984:23;976:68;:::i;:::-;21072:20;15083:22725;;-1:-1:-1;;15083:22725:0;;;;;21147:15;21130:32;15083:22725;;;;;;;;;;;;;;;;;;-1:-1:-1;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15083:22725:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;15083:22725:0;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:22725:0;;;;;:::i;:::-;;;;-1:-1:-1;15083:22725:0;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;15083:22725:0;;;;;;;:::o;7127:370::-;-1:-1:-1;;;;;15083:22725:0;;;;7258:19;;15083:22725;;;7336:21;;;15083:22725;;;7458:32;15083:22725;;7275:1;15083:22725;7407:11;15083:22725;;;7275:1;15083:22725;;7275:1;15083:22725;;;;;7275:1;15083:22725;;;;;;;7458:32;7127:370::o;15083:22725::-;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;23461:541;23533:6;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23533:6;15083:22725;23461:541::o;15083:22725::-;;;;:::o;:::-;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;:::o;25981:4850::-;26124:1;;25981:4850;;;-1:-1:-1;;;;;15083:22725:0;;;26108:18;;;;26100:68;26108:18;26100:68;:::i;:::-;15083:22725;;;26186:16;;;;26178:64;;;;:::i;:::-;26257:11;;26253:90;;15083:22725;26357:14;15083:22725;;;;;;;;26353:2426;;25981:4850;28838:4;;;;26124:1;15083:22725;;;26124:1;15083:22725;;;;;26124:1;15083:22725;;28894:18;15083:22725;-1:-1:-1;28870:42:0;28940:34;;;25981:4850;28940:59;;;25981:4850;28940:107;;;25981:4850;28940:149;;;25981:4850;28940:189;;;25981:4850;28923:313;;25981:4850;29264:8;15083:22725;;;;;;29263:9;:54;;;25981:4850;29263:83;;;25981:4850;29263:150;;;25981:4850;29263:192;;;25981:4850;29246:274;;25981:4850;15083:22725;;;29264:8;15083:22725;;;;29545:9;15083:22725;;;;29653:19;15083:22725;;;;;;;;29653:52;;;;25981:4850;29649:98;;25981:4850;29757:16;29783:19;;29885:896;;;25981:4850;30817:6;;;;;;;;;;;;:::i;:::-;25981:4850::o;29885:896::-;29917:9;15083:22725;;;;;;;;;;29916:10;29912:210;;29885:896;15083:22725;;30756:14;15083:22725;;;;;;;30817:6;15083:22725;;;;;;;;;;;;;30162:57;;;29885:896;30158:389;;;30239:13;;;;;9253:5;30314:3;30239:13;30248:4;15083:22725;30288:6;15083:22725;;;;9253:5;;:::i;:::-;15083:22725;30158:389;;30565:8;30561:181;;30158:389;30756:14;;:::i;:::-;29885:896;;;;;;;;;;;30561:181;30630:4;28838;;30630;;:::i;:::-;30653:75;;30561:181;;;;30653:75;30702:6;;;:::i;:::-;30653:75;;30158:389;15083:22725;;;;;;-1:-1:-1;15083:22725:0;;;;;30394:58;;30158:389;30373:174;;30158:389;;;;30373:174;30528:3;15083:22725;;;9253:5;15083:22725;30503:6;15083:22725;;9253:5;;:::i;:::-;15083:22725;30373:174;;;;30394:58;15083:22725;;30429:6;15083:22725;;30429:23;;30394:58;;30162:57;15083:22725;;30195:6;15083:22725;;;;30195:24;;30162:57;;29912:210;15083:22725;29959:1;15083:22725;;;;;;;;;;30817:6;15083:22725;;;;30756:14;15083:22725;;;;;;;;;;;;;;;29917:9;15083:22725;29994:14;15083:22725;;;;;;29982:26;29978:130;;29912:210;;;;;;;;;;;;;;;;29978:130;15083:22725;;;;;;;29917:9;15083:22725;30032:16;;:::i;:::-;29978:130;;;;15083:22725;-1:-1:-1;;;15083:22725:0;;26357:14;15083:22725;;;;;29649:98;29721:15;;-1:-1:-1;29649:98:0;;29653:52;15083:22725;;;;;;;;;;29653:52;;29246:274;36109:15;;;36092:32;15083:22725;;;;;;;36207:29;;;;;;15083:22725;28838:4;;15083:22725;28838:4;;36207:29;;;;;;;26124:1;36207:29;;;29246:274;15083:22725;9253:5;36366;15083:22725;36331:16;15083:22725;9253:5;;:::i;:::-;15083:22725;36483:16;36479:108;;29246:274;15083:22725;;29264:8;15083:22725;;36720:11;;;;;26124:1;15083:22725;;36207:29;15083:22725;;;;;;;;;36720:11;;;;;;;;;;29246:274;36746:12;;;;;29246:274;;;;36720:11;;;;;;:::i;:::-;26124:1;36720:11;;;;36479:108;36563:12;;;:::i;:::-;36479:108;;;;36207:29;;;;;;;;;;;;;;;;:::i;:::-;;;15083:22725;;;;;9253:5;36207:29;;;;;;;;15083:22725;;;26124:1;15083:22725;;;;;29263:192;15083:22725;;26124:1;15083:22725;29430:19;15083:22725;;;;26124:1;15083:22725;;;29429:26;29263:192;;:150;15083:22725;29381:32;:14;15083:22725;29398:15;15083:22725;29381:32;;:::i;:::-;29362:15;:51;;29263:150;;:83;15083:22725;;29333:13;15083:22725;;29263:83;;:54;15083:22725;;26124:1;15083:22725;;;;;;26124:1;15083:22725;;;29263:54;;28923:313;29154:15;15083:22725;;-1:-1:-1;;;;15083:22725:0;;;-1:-1:-1;;;15083:22725:0;;;;29154:15;;:::i;:::-;;15083:22725;;29154:15;15083:22725;28923:313;;28940:189;15083:22725;;26124:1;15083:22725;29106:19;15083:22725;;;;26124:1;15083:22725;;;29105:24;28940:189;;:149;15083:22725;;26124:1;15083:22725;29064:19;15083:22725;;;;26124:1;15083:22725;;;29063:26;28940:149;;:107;15083:22725;;26124:1;15083:22725;;;;;;26124:1;15083:22725;;;29015:32;28940:107;;:59;15083:22725;;28991:8;15083:22725;;;;28990:9;28940:59;;:34;15083:22725;;26357:14;15083:22725;;;;28940:34;;26353:2426;15083:22725;926:6;15083:22725;;26408:15;;;;;:48;;;;26353:2426;26408:84;;;26353:2426;26408:125;;;;26353:2426;26408:154;;;26353:2426;26387:2382;26353:2426;26387:2382;15083:22725;;;26599:14;26595:218;;26387:2382;15083:22725;26966:20;15083:22725;;26962:628;;26387:2382;15083:22725;;26124:1;15083:22725;27660:25;15083:22725;;;;;;;26124:1;15083:22725;;;27660:91;;;26387:2382;27635:1120;;;27835:20;15083:22725;27825:30;;15083:22725;;27980:137;15083:22725;26124:1;28013:22;15083:22725;;;;;26124:1;15083:22725;;28013:22;;:::i;:::-;28039:9;15083:22725;-1:-1:-1;28013:35:0;27980:137;:::i;:::-;26387:2382;;;26353:2426;;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;27635:1120;15083:22725;;26124:1;15083:22725;;;;;;26124:1;15083:22725;;;28211:91;;;27635:1120;28186:569;;;28386:20;15083:22725;28376:30;;15083:22725;;28186:569;;27635:1120;;15083:22725;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;28186:569;15083:22725;;26124:1;15083:22725;28540:31;15083:22725;;;;26124:1;15083:22725;;;28539:36;28535:220;;28186:569;;;27635:1120;;28535:220;28599:137;15083:22725;26124:1;28632:22;15083:22725;;26124:1;15083:22725;;28632:22;;:::i;28599:137::-;28535:220;;;;28211:91;15083:22725;;26124:1;15083:22725;28265:31;15083:22725;;;;26124:1;15083:22725;;;28264:38;28211:91;;27660;15083:22725;;26124:1;15083:22725;27716:31;15083:22725;;;;26124:1;15083:22725;;;27715:36;27660:91;;26962:628;27039:13;;;:71;;;26962:628;27039:127;;;26962:628;27010:562;;26962:628;;;;27010:562;27281:9;26124:1;15083:22725;27252:28;15083:22725;;;26124:1;15083:22725;;27326:12;-1:-1:-1;15083:22725:0;;;27281:9;26124:1;15083:22725;27252:28;15083:22725;;27326:12;15083:22725;26124:1;15083:22725;;27010:562;;15083:22725;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;27039:127;15083:22725;;27152:13;15083:22725;;27138:28;;;27039:127;;:71;15083:22725;;27094:15;15083:22725;;27080:30;;;27039:71;;26595:218;15083:22725;26124:1;15083:22725;26670:19;15083:22725;;;;26124:1;15083:22725;;;26670:52;;;;26595:218;;15083:22725;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;26670:52;15083:22725;;26124:1;15083:22725;;;26124:1;15083:22725;;;26670:52;;26408:154;15083:22725;;26554:8;15083:22725;;;;26553:9;26408:154;;:125;26512:21;26526:6;26512:21;;;26408:125;;:84;;;;;;:48;26443:13;;;;;-1:-1:-1;26408:48:0;;26253:90;5524:70;;;;;;;;5604:71;5524:70;;;;;;:::i;:::-;5604:71;:::i;:::-;26124:1;15083:22725;;;26124:1;15083:22725;6045:35;15083:22725;;;26124:1;15083:22725;;6045:35;26326:7::o;32127:573::-;15083:22725;;;;;;;;;;;;;;;;;;32289:1;15083:22725;;;;;;;;;;;;;;;;32319:4;15083:22725;;32344:15;15083:22725;;;-1:-1:-1;;;32344:22:0;;-1:-1:-1;;;;;15083:22725:0;;;;;;;;;32344:22;15083:22725;;32344:22;;;;;;;-1:-1:-1;32344:22:0;;;32127:573;15083:22725;;;32339:1;;15083:22725;32339:1;15083:22725;;;;32427:11;15083:22725;;;;;;;;;32319:4;32427:11;:::i;:::-;15083:22725;32344:15;15083:22725;;32475:218;;;;;;15083:22725;;;;;;;;;;;;;;32475:218;;15083:22725;;;32475:218;32344:22;32475:218;;15083:22725;-1:-1:-1;15083:22725:0;;;;;;;;;;;;;;;;;;-1:-1:-1;15083:22725:0;;;;;;;32319:4;;;;;;;;-1:-1:-1;32319:4:0;;;;15083:22725;;;;32668:15;15083:22725;;;;32475:218;;;;;;;;;;;;32127:573;:::o;32475:218::-;;;;:::i;:::-;15083:22725;;-1:-1:-1;15083:22725:0;;;;;;;;;;;;;;-1:-1:-1;15083:22725:0;;;;;;;;;;;;;;;;;;-1:-1:-1;15083:22725:0;;32344:22;15083:22725;;-1:-1:-1;15083:22725:0;32344:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;15083:22725;;;-1:-1:-1;15083:22725:0;;;;;5397:747;-1:-1:-1;;;;;15083:22725:0;5524:70;5532:20;;;5524:70;:::i;:::-;15083:22725;5550:1;15083:22725;5550:1;15083:22725;;;5550:1;15083:22725;;5816:23;;;15083:22725;;;;;5550:1;15083:22725;5550:1;15083:22725;;;;5550:1;15083:22725;;6045:35;15083:22725;;;;5550:1;15083:22725;;5550:1;15083:22725;5999:30;15083:22725;;;5999:30;:::i;:::-;15083:22725;;;;;;;6045:35;5397:747::o;15083:22725::-;;;-1:-1:-1;;;15083:22725:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;15083:22725:0;;;;;;;5397:747;-1:-1:-1;;;;;15083:22725:0;;;;5524:70;5532:20;;;5524:70;:::i;:::-;15083:22725;5612:23;5604:71;5612:23;;;5604:71;:::i;:::-;15083:22725;5550:1;15083:22725;5550:1;15083:22725;;;5550:1;15083:22725;;5816:23;;;15083:22725;;;6045:35;15083:22725;;;;5550:1;15083:22725;5550:1;15083:22725;;;;5550:1;15083:22725;;;5550:1;15083:22725;;5550:1;15083:22725;5999:30;15083:22725;;;5999:30;:::i;33216:1712::-;33298:4;3524:9;15083:22725;3524:9;15083:22725;;;3524:9;15083:22725;;33342:18;15083:22725;33342:78;:51;33375:18;15083:22725;33342:51;;:::i;:::-;33408:12;15083:22725;33342:78;;:::i;:::-;33457:20;;;:46;;;;33216:1712;33453:83;;33568:18;15083:22725;33589:2;15083:22725;;;;;;33589:2;15083:22725;;;;;;;33550:41;;;33546:113;;33216:1712;33744:36;33743:70;33744:36;;9151:5;33744:36;;;:::i;:::-;33743:70;:::i;:::-;15083:22725;;9151:5;;;:::i;:::-;34321:40;9151:5;33943:21;33992:18;;;:::i;:::-;34043:21;9151:5;:::i;:::-;34321:28;9355:5;;15083:22725;9253:5;33375:18;15083:22725;9253:5;;:::i;9355:::-;15083:22725;9253:5;33408:12;15083:22725;9253:5;;:::i;9355:::-;34321:28;;;;:::i;:::-;:40;:::i;:::-;15083:22725;3524:9;33342:18;15083:22725;3524:9;33375:18;15083:22725;3524:9;33408:12;15083:22725;3524:9;15083:22725;;;;;;;;;;34485:17;15083:22725;;34477:53;;;;;:::i;:::-;;34545:19;;;:42;;;33216:1712;34541:271;;33216:1712;15083:22725;;3524:9;15083:22725;;;;;;34844:15;15083:22725;;34886:21;34836:85;;;;;;:::i;:::-;;33216:1712::o;34541:271::-;32954:249;15083:22725;32902:11;15083:22725;;;32884:15;15083:22725;;33298:4;32902:11;:::i;:::-;15083:22725;;32884:15;15083:22725;;;;;;;;;;;;;32954:249;;33298:4;32954:249;;;15083:22725;;;;;3524:9;15083:22725;;;;3524:9;15083:22725;;;;15283:6;15083:22725;;;;33178:15;15083:22725;;;;32954:249;;;;;;;;34541:271;15083:22725;3524:9;15083:22725;;;34668:133;32954:249;15083:22725;;;;;33342:18;15083:22725;;;;;;;;;;;;;;;34668:133;34541:271;;;;32954:249;;;;;;;;;;;;;;:::i;:::-;;;15083:22725;;;;32954:249;;;;;;;;;15083:22725;;;3524:9;15083:22725;;;;;34545:42;34568:19;;;;34545:42;;33546:113;33607:41;-1:-1:-1;33743:70:0;33546:113;;33453:83;33519:7;;;:::o;33457:46::-;33481:22;;;33457:46;;30837:1284;3385:12;15083:22725;;;;;;;;3385:12;15083:22725;;;;;;;30938:3;15083:22725;;30955:17;15083:22725;30976:12;30955:33;30951:1090;30976:12;;;31034:17;15083:22725;;31034:31;;;;;31085:7;;;:::o;31030:550::-;31226:30;;;;31538:27;31226:30;;:::i;:::-;31216:41;;:125;;;;;;31441:4;-1:-1:-1;15083:22725:0;-1:-1:-1;15083:22725:0;;;-1:-1:-1;15083:22725:0;;31474:45;:21;;;:45;:21;;;:45;;31465:54;31538:27;;:::i;:::-;31034:17;15083:22725;30951:1090;32054:10;32050:65;;30837:1284;:::o;32050:65::-;32097:6;;;:::i;31474:45::-;;;;;31216:125;31310:30;;;;:::i;:::-;31216:125;;30951:1090;31687:19;;;;;;:41;;31816:4;-1:-1:-1;15083:22725:0;-1:-1:-1;15083:22725:0;;;-1:-1:-1;15083:22725:0;;31845:45;:21;;;:45;:21;;;:45;;31836:54;30976:12;30955:17;15083:22725;32004:26;15083:22725;30951:1090;;31845:45;;;;;31687:41;;;;

Swarm Source

ipfs://18c2a9f370a5b082947e52a818c2990ac1b3576dc8ab8fcc5d2cc66f6172de94
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.