ETH Price: $3,338.55 (-1.08%)

Token

DECOM (DECOM)
 

Overview

Max Total Supply

1,000,000,000 DECOM

Holders

275

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
75,427.828851454946629437 DECOM

Value
$0.00
0xd41c9e546b02049990f8ca6ac7a2572cc7f16b8a
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:
DECOM

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-11
*/

/**
TG:  https://t.me/decometh
Twitter: https://x.com/decometh
Web: https://decommarketplace.io
*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

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

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) internal _balances;

    mapping (address => mapping (address => uint256)) internal _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");
        _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");
        _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");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(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);
    }

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract DECOM is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public launched;


    modifier lockSwapping() {
        swapping = true;
        _;
        swapping = false;
    }
    
    event TransferForeignToken(address token, uint256 amount);
    event Launched();
    event SwapEnabled();
    event SwapThresholdUpdated();
    event BuyTaxesUpdated();
    event SellTaxesUpdated();
    event MarketingWalletUpdated();
    event DevelopmentWalletUpdated();
    event StoicDaoWalletUpdated();
    event ExcludedFromFeesUpdated();
    event MaxTxAmountUpdated();
    event MaxWalletAmountUpdated();
    event StuckEthersCleared();
    
    uint256 public swapThreshold = 1000000 * 10**18; //0.1% of total supply
    uint256 public maxTxAmount = 20000000 * 10**18; //2% of total supply
    uint256 public maxWalletAmount = 20000000 * 10**18; //2% of total supply
    
    address public marketingWallet = 0x33A68654dd5d385a73FcD4E8C22867D89096D437;
    address public developmentWallet = 0x42051c9BA1D2E8D251c5fea186eD03514f7df123;
    address public stoicDaoWallet = 0x8be832e68E1748B0111aa852077D825Cbd9B90F5;
    
    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 development;
        uint256 stoicDao;
        uint256 burn;
     }
    
    Taxes public buyTaxes = Taxes(2,0,2,1,0);
    Taxes public sellTaxes = Taxes(2,0,2,1,0);
    uint256 private totBuyTax = 5; //5% 
    uint256 private totSellTax = 5; //5% 
    
    mapping (address => bool) public excludedFromFees;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }

    constructor() ERC20("DECOM", "DECOM") {
        _mint(msg.sender, 1000000000 * 10 ** decimals());
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[developmentWallet] = true;
        excludedFromFees[stoicDaoWallet] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(launched, "Trading not active yet");
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
          
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
         
        else{
            if(recipient == pair) fee = amount * totSellTax / 100;
            else if(sender == pair) fee = amount * totBuyTax / 100;
            else fee = 0;
        }
        
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

        uint256 tokensForBurn = 0;

        tokensForBurn = fee * sellTaxes.burn / totSellTax;

        if(tokensForBurn > 0) {
                 super._transfer(address(this), address(0xdead), tokensForBurn);
            }

    }
    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));

        if (contractBalance >= swapThreshold) {

            uint256 denominator = totSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(tokensToAddLiquidityWith > 0 && ethToAddLiquidityWith > 0){
                // Add liquidity to dex
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
    
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
            
            uint256 developmentAmt = unitBalance * 2 * sellTaxes.development;
            if(developmentAmt > 0){
                payable(developmentWallet).sendValue(developmentAmt);
            }
            uint256 stoicDaoAmt = unitBalance * 2 * sellTaxes.stoicDao;
            if(stoicDaoAmt > 0){
                payable(stoicDaoWallet).sendValue(stoicDaoAmt);
            }       

        }
    }

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

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

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

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(0xdead),
            block.timestamp
        );
    }
    function setSwapEnabled(bool state) external onlyOwner { // to be used only in case of dire emergency
        swapEnabled = state;
        emit SwapEnabled();
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        require(new_amount >= 10000, "Swap amount cannot be lower than 0.001% total supply.");
        require(new_amount <= 30000000, "Swap amount cannot be higher than 3% total supply.");
        swapThreshold = new_amount * (10**18);
        emit SwapThresholdUpdated();
    }

    function launch(uint256 _marketing, uint256 _liquidity, uint256 _development, uint256 _stoicDao, uint256 _burn, uint256 amount) external onlyOwner{
        require(!launched, "Trading already active");
        buyTaxes = Taxes(_marketing, _liquidity, _development, _stoicDao, _burn);
        totBuyTax = _marketing + _liquidity + _development + _stoicDao + _burn;
        sellTaxes = Taxes(_marketing, _liquidity, _development, _stoicDao, _burn);
        totSellTax = _marketing + _liquidity + _development + _stoicDao + _burn;
        maxTxAmount = amount * (10**18);
        maxWalletAmount = amount * (10**18);
        launched = true;
        swapEnabled = true;
        emit Launched();
    }

    function setBuyTaxes(uint256 _marketing, uint256 _liquidity, uint256 _development, uint256 _stoicDao, uint256 _burn) external onlyOwner{
        buyTaxes = Taxes(_marketing, _liquidity, _development, _stoicDao, _burn);
        totBuyTax = _marketing + _liquidity + _development + _stoicDao + _burn;
        require(totBuyTax <= 45,"Total buy fees cannot be greater than 5%");
        emit BuyTaxesUpdated();
    }

    function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _development, uint256 _stoicDao, uint256 _burn) external onlyOwner{
        sellTaxes = Taxes(_marketing, _liquidity, _development, _stoicDao, _burn);
        totSellTax = _marketing + _liquidity + _development + _stoicDao + _burn;
        require(totSellTax <= 45,"Total sell fees cannot be greater than 5%");
        emit SellTaxesUpdated();
    }
    
    function setMarketingWallet(address newWallet) external onlyOwner{
        excludedFromFees[marketingWallet] = false;
        require(newWallet != address(0), "Marketing Wallet cannot be zero address");
        marketingWallet = newWallet;
        emit MarketingWalletUpdated();     
    }
   
    function setDevelopmentWallet(address newWallet) external onlyOwner{
        excludedFromFees[developmentWallet] = false;
        require(newWallet != address(0), "Development Wallet cannot be zero address");
        developmentWallet = newWallet;
        emit DevelopmentWalletUpdated();
    }

    function setStoicDaoWallet(address newWallet) external onlyOwner{
        excludedFromFees[stoicDaoWallet] = false;
        require(newWallet != address(0), "StoicDao Wallet cannot be zero address");
        stoicDaoWallet = newWallet;
        emit StoicDaoWalletUpdated();     
    }

    function setExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
        emit ExcludedFromFeesUpdated();
    }
    
    function setMaxTxAmount(uint256 amount) external onlyOwner{
        require(amount >= 2500000, "Cannot set maxSell lower than 0.25%");
        maxTxAmount = amount * (10**18);
        emit MaxTxAmountUpdated();
    }
    
    function setMaxWalletAmount(uint256 amount) external onlyOwner{
        require(amount >= 2500000, "Cannot set maxSell lower than 0.25%");
        maxWalletAmount = amount * (10**18);
        emit MaxWalletAmountUpdated();
    }

    function withdrawStuckTokens(address _token, address _to) external onlyOwner returns (bool _sent) {
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }

    function clearStuckEthers(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer((amountETH * amountPercentage) / 100);
        emit StuckEthersCleared();
    }

    function unclog() public onlyOwner lockSwapping {
        swapTokensForETH(
            balanceOf(address(this))
        );

        uint256 ethBalance = address(this).balance;
        uint256 ethMarketing = ethBalance / 2;
        uint256 ethDevelopment = ethBalance - ethMarketing;

        bool success;
        (success, ) = address(marketingWallet).call{value: ethMarketing}("");

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

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"DevelopmentWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"ExcludedFromFeesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxWalletAmountUpdated","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":[],"name":"SellTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"StoicDaoWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"StuckEthersCleared","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapEnabled","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapThresholdUpdated","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":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"stoicDao","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckEthers","outputs":[],"stateMutability":"nonpayable","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":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_stoicDao","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"stoicDao","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_stoicDao","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_stoicDao","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setStoicDaoWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stoicDaoWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckTokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

69d3c21bcecceda10000006008556a108b2a2c280290940000006009819055600a55600b80546001600160a01b03199081167333a68654dd5d385a73fcd4e8c22867d89096d43717909155600c805482167342051c9ba1d2e8d251c5fea186ed03514f7df123179055600d8054909116738be832e68e1748b0111aa852077d825cbd9b90f5179055600260808190525f60a081905260c0829052600160e0819052610100829052600e839055600f8290556010839055601181905560128290556101c06040526101208390526101408290526101608390526101808190526101a0829052601383905560148290556015929092556016919091556017556005601881905560195534801562000112575f80fd5b506040805180820182526005808252644445434f4d60d81b60208084018290528451808601909552918452908301529060036200015083826200057f565b5060046200015f82826200057f565b5050506200017c62000176620003a160201b60201c565b620003a5565b620001a5336200018f6012600a62000756565b6200019f90633b9aca006200076d565b620003f6565b335f908152601a60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa1580156200020d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000233919062000787565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a5919062000787565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002f0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000316919062000787565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f908152601a6020526040808220805460ff199081166001908117909255600b54851684528284208054821683179055600c54851684528284208054821683179055600d54909416835291208054909216179055620007c5565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004515760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620004649190620007af565b90915550506001600160a01b0382165f908152602081905260408120805483929062000492908490620007af565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200050957607f821691505b6020821081036200052857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004db575f81815260208120601f850160051c81016020861015620005565750805b601f850160051c820191505b81811015620005775782815560010162000562565b505050505050565b81516001600160401b038111156200059b576200059b620004e0565b620005b381620005ac8454620004f4565b846200052e565b602080601f831160018114620005e9575f8415620005d15750858301515b5f19600386901b1c1916600185901b17855562000577565b5f85815260208120601f198616915b828110156200061957888601518255948401946001909101908401620005f8565b50858210156200063757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200069b57815f19048211156200067f576200067f62000647565b808516156200068d57918102915b93841c939080029062000660565b509250929050565b5f82620006b35750600162000750565b81620006c157505f62000750565b8160018114620006da5760028114620006e55762000705565b600191505062000750565b60ff841115620006f957620006f962000647565b50506001821b62000750565b5060208310610133831016604e8410600b84101617156200072a575081810a62000750565b6200073683836200065b565b805f19048211156200074c576200074c62000647565b0290505b92915050565b5f6200076660ff841683620006a3565b9392505050565b808202811582820484141762000750576200075062000647565b5f6020828403121562000798575f80fd5b81516001600160a01b038116811462000766575f80fd5b8082018082111562000750576200075062000647565b6127e080620007d35f395ff3fe608060405260043610610241575f3560e01c80637f048c4d11610134578063a9059cbb116100b3578063dd62ed3e11610078578063dd62ed3e146106cd578063e01af92c14610711578063ec28438a14610730578063f2fde38b1461074f578063f66895a31461076e578063f887ea4014610794575f80fd5b8063a9059cbb1461062d578063aa4bde281461064c578063c04a541414610661578063c791fc5414610680578063dbe66ca01461069f575f80fd5b806395d89b41116100f957806395d89b411461059d5780639aed7370146105b15780639d0014b1146105d0578063a457c2d7146105ef578063a8aa1b311461060e575f80fd5b80637f048c4d146104de5780638091f3bf146104fd578063864701a51461051d5780638c0b5e221461056b5780638da5cb5b14610580575f80fd5b806340ac48d3116101c057806370a082311161018557806370a0823114610421578063715018a61461045557806372ac24861461046957806375f0a8741461048857806376a630bc146104bf575f80fd5b806340ac48d314610390578063590ffdce146103af5780635d098b38146103ce57806367c45349146103ed5780636ddd171314610401575f80fd5b806323b872dd1161020657806323b872dd146102f957806325b86edf1461031857806327a14fc214610337578063313ce567146103565780633950935114610371575f80fd5b80630294f4541461024c5780630445b6671461026d57806306fdde0314610295578063095ea7b3146102b657806318160ddd146102e5575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b5061026b6102663660046123a2565b6107b3565b005b348015610278575f80fd5b5061028260085481565b6040519081526020015b60405180910390f35b3480156102a0575f80fd5b506102a96108ac565b60405161028c91906123c4565b3480156102c1575f80fd5b506102d56102d036600461240f565b61093c565b604051901515815260200161028c565b3480156102f0575f80fd5b50600254610282565b348015610304575f80fd5b506102d5610313366004612439565b610952565b348015610323575f80fd5b506102d5610332366004612477565b610a01565b348015610342575f80fd5b5061026b6103513660046124ae565b610b55565b348015610361575f80fd5b506040516012815260200161028c565b34801561037c575f80fd5b506102d561038b36600461240f565b610be2565b34801561039b575f80fd5b5061026b6103aa3660046124c5565b610c18565b3480156103ba575f80fd5b5061026b6103c9366004612509565b610d42565b3480156103d9575f80fd5b5061026b6103e83660046123a2565b610db9565b3480156103f8575f80fd5b5061026b610eaa565b34801561040c575f80fd5b506007546102d590600160a81b900460ff1681565b34801561042c575f80fd5b5061028261043b3660046123a2565b6001600160a01b03165f9081526020819052604090205490565b348015610460575f80fd5b5061026b610fe3565b348015610474575f80fd5b5061026b6104833660046123a2565b611018565b348015610493575f80fd5b50600b546104a7906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b3480156104ca575f80fd5b50600d546104a7906001600160a01b031681565b3480156104e9575f80fd5b5061026b6104f8366004612535565b61110b565b348015610508575f80fd5b506007546102d590600160b01b900460ff1681565b348015610528575f80fd5b50600e54600f54601054601154601254610543949392919085565b604080519586526020860194909452928401919091526060830152608082015260a00161028c565b348015610576575f80fd5b5061028260095481565b34801561058b575f80fd5b506005546001600160a01b03166104a7565b3480156105a8575f80fd5b506102a96112d3565b3480156105bc575f80fd5b5061026b6105cb3660046124ae565b6112e2565b3480156105db575f80fd5b5061026b6105ea3660046124ae565b611379565b3480156105fa575f80fd5b506102d561060936600461240f565b6114c1565b348015610619575f80fd5b506007546104a7906001600160a01b031681565b348015610638575f80fd5b506102d561064736600461240f565b61155b565b348015610657575f80fd5b50610282600a5481565b34801561066c575f80fd5b50600c546104a7906001600160a01b031681565b34801561068b575f80fd5b5061026b61069a3660046124c5565b611567565b3480156106aa575f80fd5b506102d56106b93660046123a2565b601a6020525f908152604090205460ff1681565b3480156106d8575f80fd5b506102826106e7366004612477565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561071c575f80fd5b5061026b61072b366004612574565b611692565b34801561073b575f80fd5b5061026b61074a3660046124ae565b6116fe565b34801561075a575f80fd5b5061026b6107693660046123a2565b61178b565b348015610779575f80fd5b50601354601454601554601654601754610543949392919085565b34801561079f575f80fd5b506006546104a7906001600160a01b031681565b6005546001600160a01b031633146107e65760405162461bcd60e51b81526004016107dd9061258f565b60405180910390fd5b600d546001600160a01b039081165f908152601a60205260409020805460ff1916905581166108665760405162461bcd60e51b815260206004820152602660248201527f53746f696344616f2057616c6c65742063616e6e6f74206265207a65726f206160448201526564647265737360d01b60648201526084016107dd565b600d80546001600160a01b0319166001600160a01b0383161790556040517f5c6de18ad463cc9be6b3bde5ace1020863f549309dd0c9219db51c3f0bb5dac7905f90a150565b6060600380546108bb906125c4565b80601f01602080910402602001604051908101604052809291908181526020018280546108e7906125c4565b80156109325780601f1061090957610100808354040283529160200191610932565b820191905f5260205f20905b81548152906001019060200180831161091557829003601f168201915b5050505050905090565b5f610948338484611826565b5060015b92915050565b5f61095e848484611949565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109e25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107dd565b6109f685336109f18685612610565b611826565b506001949350505050565b6005545f906001600160a01b03163314610a2d5760405162461bcd60e51b81526004016107dd9061258f565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610a71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a959190612623565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015610ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b09919061263a565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610b7f5760405162461bcd60e51b81526004016107dd9061258f565b622625a0811015610ba25760405162461bcd60e51b81526004016107dd90612655565b610bb481670de0b6b3a7640000612698565b600a556040517f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec905f90a150565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916109489185906109f19086906126af565b6005546001600160a01b03163314610c425760405162461bcd60e51b81526004016107dd9061258f565b6040805160a0810182528681526020810186905290810184905260608101839052608001819052600e859055600f849055601083905560118290556012819055808284610c8f87896126af565b610c9991906126af565b610ca391906126af565b610cad91906126af565b6018819055602d1015610d135760405162461bcd60e51b815260206004820152602860248201527f546f74616c2062757920666565732063616e6e6f742062652067726561746572604482015267207468616e20352560c01b60648201526084016107dd565b6040517f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d905f90a15050505050565b6005546001600160a01b03163314610d6c5760405162461bcd60e51b81526004016107dd9061258f565b6001600160a01b0382165f908152601a6020526040808220805460ff1916841515179055517fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed9190a15050565b6005546001600160a01b03163314610de35760405162461bcd60e51b81526004016107dd9061258f565b600b546001600160a01b039081165f908152601a60205260409020805460ff191690558116610e645760405162461bcd60e51b815260206004820152602760248201527f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b60648201526084016107dd565b600b80546001600160a01b0319166001600160a01b0383161790556040517fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e0905f90a150565b6005546001600160a01b03163314610ed45760405162461bcd60e51b81526004016107dd9061258f565b6007805460ff60a01b1916600160a01b179055610f0d610f08306001600160a01b03165f9081526020819052604090205490565b611cb4565b475f610f1a6002836126c2565b90505f610f278284612610565b600b546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114610f76576040519150601f19603f3d011682016040523d82523d5f602084013e610f7b565b606091505b5050600c546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114610fc8576040519150601f19603f3d011682016040523d82523d5f602084013e610fcd565b606091505b50506007805460ff60a01b191690555050505050565b6005546001600160a01b0316331461100d5760405162461bcd60e51b81526004016107dd9061258f565b6110165f611e04565b565b6005546001600160a01b031633146110425760405162461bcd60e51b81526004016107dd9061258f565b600c546001600160a01b039081165f908152601a60205260409020805460ff1916905581166110c55760405162461bcd60e51b815260206004820152602960248201527f446576656c6f706d656e742057616c6c65742063616e6e6f74206265207a65726044820152686f206164647265737360b81b60648201526084016107dd565b600c80546001600160a01b0319166001600160a01b0383161790556040517f56c050a659ad3741e0a2373000420a1c3c060f7f39c95458be197a36a6e61ec2905f90a150565b6005546001600160a01b031633146111355760405162461bcd60e51b81526004016107dd9061258f565b600754600160b01b900460ff16156111885760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016107dd565b6040805160a0810182528781526020810187905290810185905260608101849052608001829052600e869055600f8590556010849055601183905560128290558183856111d5888a6126af565b6111df91906126af565b6111e991906126af565b6111f391906126af565b6018556040805160a081018252878152602081018790529081018590526060810184905260800182905260138690556014859055601584905560168390556017829055818385611243888a6126af565b61124d91906126af565b61125791906126af565b61126191906126af565b60195561127681670de0b6b3a7640000612698565b60095561128b81670de0b6b3a7640000612698565b600a556007805461ffff60a81b191661010160a81b1790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a1505050505050565b6060600480546108bb906125c4565b6005546001600160a01b0316331461130c5760405162461bcd60e51b81526004016107dd9061258f565b47336108fc606461131d8585612698565b61132791906126c2565b6040518115909202915f818181858888f1935050505015801561134c573d5f803e3d5ffd5b506040517ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf9905f90a15050565b6005546001600160a01b031633146113a35760405162461bcd60e51b81526004016107dd9061258f565b6127108110156114135760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016107dd565b6301c9c3808111156114825760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527137101992903a37ba30b61039bab838363c9760711b60648201526084016107dd565b61149481670de0b6b3a7640000612698565b6008556040517ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d905f90a150565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156115425760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107dd565b61155133856109f18685612610565b5060019392505050565b5f610948338484611949565b6005546001600160a01b031633146115915760405162461bcd60e51b81526004016107dd9061258f565b6040805160a0810182528681526020810186905290810184905260608101839052608001819052601385905560148490556015839055601682905560178190558082846115de87896126af565b6115e891906126af565b6115f291906126af565b6115fc91906126af565b6019819055602d10156116635760405162461bcd60e51b815260206004820152602960248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201526872207468616e20352560b81b60648201526084016107dd565b6040517f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c30785905f90a15050505050565b6005546001600160a01b031633146116bc5760405162461bcd60e51b81526004016107dd9061258f565b6007805460ff60a81b1916600160a81b831515021790556040517f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a905f90a150565b6005546001600160a01b031633146117285760405162461bcd60e51b81526004016107dd9061258f565b622625a081101561174b5760405162461bcd60e51b81526004016107dd90612655565b61175d81670de0b6b3a7640000612698565b6009556040517f3fb2441f7fb0cf4882020ee77c4b9fb347bdbbf2fa439c76ca667e1b55f18b2b905f90a150565b6005546001600160a01b031633146117b55760405162461bcd60e51b81526004016107dd9061258f565b6001600160a01b03811661181a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107dd565b61182381611e04565b50565b6001600160a01b0383166118885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107dd565b6001600160a01b0382166118e95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107dd565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116119aa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107dd565b6001600160a01b0383165f908152601a602052604090205460ff161580156119ea57506001600160a01b0382165f908152601a602052604090205460ff16155b8015611a005750600754600160a01b900460ff16155b15611b4257600754600160b01b900460ff16611a575760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016107dd565b600954811115611aa95760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016107dd565b6007546001600160a01b03838116911614611b4257600a5481611ae0846001600160a01b03165f9081526020819052604090205490565b611aea91906126af565b1115611b425760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016107dd565b6007545f90600160a01b900460ff1680611b7357506001600160a01b0384165f908152601a602052604090205460ff165b80611b9557506001600160a01b0383165f908152601a602052604090205460ff165b15611ba157505f611c01565b6007546001600160a01b0390811690841603611bd857606460195483611bc79190612698565b611bd191906126c2565b9050611c01565b6007546001600160a01b0390811690851603611bfe57606460185483611bc79190612698565b505f5b600754600160a81b900460ff168015611c245750600754600160a01b900460ff16155b8015611c3e57506007546001600160a01b03858116911614155b8015611c4957505f81115b15611c5657611c56611e55565b611c6a8484611c658486612610565b611ff6565b8015611c7b57611c7b843083611ff6565b6019546017545f9190611c8e9084612698565b611c9891906126c2565b90508015611cad57611cad3061dead83611ff6565b5050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611ce757611ce76126e1565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d6291906126f5565b81600181518110611d7557611d756126e1565b6001600160a01b039283166020918202929092010152600654611d9b9130911684611826565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dd39085905f90869030904290600401612710565b5f604051808303815f87803b158015611dea575f80fd5b505af1158015611dfc573d5f803e3d5ffd5b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16611016576007805460ff60a01b1916600160a01b179055305f9081526020819052604081205490506008548110611fe6575f6019546002611ea39190612698565b90505f8160136001015484611eb89190612698565b611ec291906126c2565b90505f611ecf8285612610565b905047611edb82611cb4565b5f611ee68247612610565b6014549091505f90611ef89087612610565b611f0290836126c2565b6014549091505f90611f149083612698565b90505f86118015611f2457505f81115b15611f3357611f3386826121cc565b6013545f90611f43846002612698565b611f4d9190612698565b90508015611f6b57600b54611f6b906001600160a01b031682612274565b6015545f90611f7b856002612698565b611f859190612698565b90508015611fa357600c54611fa3906001600160a01b031682612274565b6016545f90611fb3866002612698565b611fbd9190612698565b90508015611fdb57600d54611fdb906001600160a01b031682612274565b505050505050505050505b506007805460ff60a01b19169055565b6001600160a01b03831661205a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107dd565b6001600160a01b0382166120bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107dd565b6001600160a01b0383165f90815260208190526040902054818110156121335760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107dd565b61213d8282612610565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906121729084906126af565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121be91815260200190565b60405180910390a350505050565b6006546121e49030906001600160a01b031684611826565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561224f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611cad919061277f565b804710156122c45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107dd565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461230d576040519150601f19603f3d011682016040523d82523d5f602084013e612312565b606091505b50509050806123895760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107dd565b505050565b6001600160a01b0381168114611823575f80fd5b5f602082840312156123b2575f80fd5b81356123bd8161238e565b9392505050565b5f6020808352835180828501525f5b818110156123ef578581018301518582016040015282016123d3565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215612420575f80fd5b823561242b8161238e565b946020939093013593505050565b5f805f6060848603121561244b575f80fd5b83356124568161238e565b925060208401356124668161238e565b929592945050506040919091013590565b5f8060408385031215612488575f80fd5b82356124938161238e565b915060208301356124a38161238e565b809150509250929050565b5f602082840312156124be575f80fd5b5035919050565b5f805f805f60a086880312156124d9575f80fd5b505083359560208501359550604085013594606081013594506080013592509050565b8015158114611823575f80fd5b5f806040838503121561251a575f80fd5b82356125258161238e565b915060208301356124a3816124fc565b5f805f805f8060c0878903121561254a575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f60208284031215612584575f80fd5b81356123bd816124fc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806125d857607f821691505b6020821081036125f657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561094c5761094c6125fc565b5f60208284031215612633575f80fd5b5051919050565b5f6020828403121561264a575f80fd5b81516123bd816124fc565b60208082526023908201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60408201526232352560e81b606082015260800190565b808202811582820484141761094c5761094c6125fc565b8082018082111561094c5761094c6125fc565b5f826126dc57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612705575f80fd5b81516123bd8161238e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561275e5784516001600160a01b031683529383019391830191600101612739565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612791575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122055bbf3d6570750efb233177527d26af004cd67cc871b29fb92cb2da62375c8a464736f6c63430008140033

Deployed Bytecode

0x608060405260043610610241575f3560e01c80637f048c4d11610134578063a9059cbb116100b3578063dd62ed3e11610078578063dd62ed3e146106cd578063e01af92c14610711578063ec28438a14610730578063f2fde38b1461074f578063f66895a31461076e578063f887ea4014610794575f80fd5b8063a9059cbb1461062d578063aa4bde281461064c578063c04a541414610661578063c791fc5414610680578063dbe66ca01461069f575f80fd5b806395d89b41116100f957806395d89b411461059d5780639aed7370146105b15780639d0014b1146105d0578063a457c2d7146105ef578063a8aa1b311461060e575f80fd5b80637f048c4d146104de5780638091f3bf146104fd578063864701a51461051d5780638c0b5e221461056b5780638da5cb5b14610580575f80fd5b806340ac48d3116101c057806370a082311161018557806370a0823114610421578063715018a61461045557806372ac24861461046957806375f0a8741461048857806376a630bc146104bf575f80fd5b806340ac48d314610390578063590ffdce146103af5780635d098b38146103ce57806367c45349146103ed5780636ddd171314610401575f80fd5b806323b872dd1161020657806323b872dd146102f957806325b86edf1461031857806327a14fc214610337578063313ce567146103565780633950935114610371575f80fd5b80630294f4541461024c5780630445b6671461026d57806306fdde0314610295578063095ea7b3146102b657806318160ddd146102e5575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b5061026b6102663660046123a2565b6107b3565b005b348015610278575f80fd5b5061028260085481565b6040519081526020015b60405180910390f35b3480156102a0575f80fd5b506102a96108ac565b60405161028c91906123c4565b3480156102c1575f80fd5b506102d56102d036600461240f565b61093c565b604051901515815260200161028c565b3480156102f0575f80fd5b50600254610282565b348015610304575f80fd5b506102d5610313366004612439565b610952565b348015610323575f80fd5b506102d5610332366004612477565b610a01565b348015610342575f80fd5b5061026b6103513660046124ae565b610b55565b348015610361575f80fd5b506040516012815260200161028c565b34801561037c575f80fd5b506102d561038b36600461240f565b610be2565b34801561039b575f80fd5b5061026b6103aa3660046124c5565b610c18565b3480156103ba575f80fd5b5061026b6103c9366004612509565b610d42565b3480156103d9575f80fd5b5061026b6103e83660046123a2565b610db9565b3480156103f8575f80fd5b5061026b610eaa565b34801561040c575f80fd5b506007546102d590600160a81b900460ff1681565b34801561042c575f80fd5b5061028261043b3660046123a2565b6001600160a01b03165f9081526020819052604090205490565b348015610460575f80fd5b5061026b610fe3565b348015610474575f80fd5b5061026b6104833660046123a2565b611018565b348015610493575f80fd5b50600b546104a7906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b3480156104ca575f80fd5b50600d546104a7906001600160a01b031681565b3480156104e9575f80fd5b5061026b6104f8366004612535565b61110b565b348015610508575f80fd5b506007546102d590600160b01b900460ff1681565b348015610528575f80fd5b50600e54600f54601054601154601254610543949392919085565b604080519586526020860194909452928401919091526060830152608082015260a00161028c565b348015610576575f80fd5b5061028260095481565b34801561058b575f80fd5b506005546001600160a01b03166104a7565b3480156105a8575f80fd5b506102a96112d3565b3480156105bc575f80fd5b5061026b6105cb3660046124ae565b6112e2565b3480156105db575f80fd5b5061026b6105ea3660046124ae565b611379565b3480156105fa575f80fd5b506102d561060936600461240f565b6114c1565b348015610619575f80fd5b506007546104a7906001600160a01b031681565b348015610638575f80fd5b506102d561064736600461240f565b61155b565b348015610657575f80fd5b50610282600a5481565b34801561066c575f80fd5b50600c546104a7906001600160a01b031681565b34801561068b575f80fd5b5061026b61069a3660046124c5565b611567565b3480156106aa575f80fd5b506102d56106b93660046123a2565b601a6020525f908152604090205460ff1681565b3480156106d8575f80fd5b506102826106e7366004612477565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561071c575f80fd5b5061026b61072b366004612574565b611692565b34801561073b575f80fd5b5061026b61074a3660046124ae565b6116fe565b34801561075a575f80fd5b5061026b6107693660046123a2565b61178b565b348015610779575f80fd5b50601354601454601554601654601754610543949392919085565b34801561079f575f80fd5b506006546104a7906001600160a01b031681565b6005546001600160a01b031633146107e65760405162461bcd60e51b81526004016107dd9061258f565b60405180910390fd5b600d546001600160a01b039081165f908152601a60205260409020805460ff1916905581166108665760405162461bcd60e51b815260206004820152602660248201527f53746f696344616f2057616c6c65742063616e6e6f74206265207a65726f206160448201526564647265737360d01b60648201526084016107dd565b600d80546001600160a01b0319166001600160a01b0383161790556040517f5c6de18ad463cc9be6b3bde5ace1020863f549309dd0c9219db51c3f0bb5dac7905f90a150565b6060600380546108bb906125c4565b80601f01602080910402602001604051908101604052809291908181526020018280546108e7906125c4565b80156109325780601f1061090957610100808354040283529160200191610932565b820191905f5260205f20905b81548152906001019060200180831161091557829003601f168201915b5050505050905090565b5f610948338484611826565b5060015b92915050565b5f61095e848484611949565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109e25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107dd565b6109f685336109f18685612610565b611826565b506001949350505050565b6005545f906001600160a01b03163314610a2d5760405162461bcd60e51b81526004016107dd9061258f565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610a71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a959190612623565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af1158015610ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b09919061263a565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b03163314610b7f5760405162461bcd60e51b81526004016107dd9061258f565b622625a0811015610ba25760405162461bcd60e51b81526004016107dd90612655565b610bb481670de0b6b3a7640000612698565b600a556040517f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec905f90a150565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916109489185906109f19086906126af565b6005546001600160a01b03163314610c425760405162461bcd60e51b81526004016107dd9061258f565b6040805160a0810182528681526020810186905290810184905260608101839052608001819052600e859055600f849055601083905560118290556012819055808284610c8f87896126af565b610c9991906126af565b610ca391906126af565b610cad91906126af565b6018819055602d1015610d135760405162461bcd60e51b815260206004820152602860248201527f546f74616c2062757920666565732063616e6e6f742062652067726561746572604482015267207468616e20352560c01b60648201526084016107dd565b6040517f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d905f90a15050505050565b6005546001600160a01b03163314610d6c5760405162461bcd60e51b81526004016107dd9061258f565b6001600160a01b0382165f908152601a6020526040808220805460ff1916841515179055517fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed9190a15050565b6005546001600160a01b03163314610de35760405162461bcd60e51b81526004016107dd9061258f565b600b546001600160a01b039081165f908152601a60205260409020805460ff191690558116610e645760405162461bcd60e51b815260206004820152602760248201527f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b60648201526084016107dd565b600b80546001600160a01b0319166001600160a01b0383161790556040517fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e0905f90a150565b6005546001600160a01b03163314610ed45760405162461bcd60e51b81526004016107dd9061258f565b6007805460ff60a01b1916600160a01b179055610f0d610f08306001600160a01b03165f9081526020819052604090205490565b611cb4565b475f610f1a6002836126c2565b90505f610f278284612610565b600b546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114610f76576040519150601f19603f3d011682016040523d82523d5f602084013e610f7b565b606091505b5050600c546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114610fc8576040519150601f19603f3d011682016040523d82523d5f602084013e610fcd565b606091505b50506007805460ff60a01b191690555050505050565b6005546001600160a01b0316331461100d5760405162461bcd60e51b81526004016107dd9061258f565b6110165f611e04565b565b6005546001600160a01b031633146110425760405162461bcd60e51b81526004016107dd9061258f565b600c546001600160a01b039081165f908152601a60205260409020805460ff1916905581166110c55760405162461bcd60e51b815260206004820152602960248201527f446576656c6f706d656e742057616c6c65742063616e6e6f74206265207a65726044820152686f206164647265737360b81b60648201526084016107dd565b600c80546001600160a01b0319166001600160a01b0383161790556040517f56c050a659ad3741e0a2373000420a1c3c060f7f39c95458be197a36a6e61ec2905f90a150565b6005546001600160a01b031633146111355760405162461bcd60e51b81526004016107dd9061258f565b600754600160b01b900460ff16156111885760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016107dd565b6040805160a0810182528781526020810187905290810185905260608101849052608001829052600e869055600f8590556010849055601183905560128290558183856111d5888a6126af565b6111df91906126af565b6111e991906126af565b6111f391906126af565b6018556040805160a081018252878152602081018790529081018590526060810184905260800182905260138690556014859055601584905560168390556017829055818385611243888a6126af565b61124d91906126af565b61125791906126af565b61126191906126af565b60195561127681670de0b6b3a7640000612698565b60095561128b81670de0b6b3a7640000612698565b600a556007805461ffff60a81b191661010160a81b1790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c8905f90a1505050505050565b6060600480546108bb906125c4565b6005546001600160a01b0316331461130c5760405162461bcd60e51b81526004016107dd9061258f565b47336108fc606461131d8585612698565b61132791906126c2565b6040518115909202915f818181858888f1935050505015801561134c573d5f803e3d5ffd5b506040517ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf9905f90a15050565b6005546001600160a01b031633146113a35760405162461bcd60e51b81526004016107dd9061258f565b6127108110156114135760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016107dd565b6301c9c3808111156114825760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527137101992903a37ba30b61039bab838363c9760711b60648201526084016107dd565b61149481670de0b6b3a7640000612698565b6008556040517ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d905f90a150565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156115425760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107dd565b61155133856109f18685612610565b5060019392505050565b5f610948338484611949565b6005546001600160a01b031633146115915760405162461bcd60e51b81526004016107dd9061258f565b6040805160a0810182528681526020810186905290810184905260608101839052608001819052601385905560148490556015839055601682905560178190558082846115de87896126af565b6115e891906126af565b6115f291906126af565b6115fc91906126af565b6019819055602d10156116635760405162461bcd60e51b815260206004820152602960248201527f546f74616c2073656c6c20666565732063616e6e6f742062652067726561746560448201526872207468616e20352560b81b60648201526084016107dd565b6040517f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c30785905f90a15050505050565b6005546001600160a01b031633146116bc5760405162461bcd60e51b81526004016107dd9061258f565b6007805460ff60a81b1916600160a81b831515021790556040517f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a905f90a150565b6005546001600160a01b031633146117285760405162461bcd60e51b81526004016107dd9061258f565b622625a081101561174b5760405162461bcd60e51b81526004016107dd90612655565b61175d81670de0b6b3a7640000612698565b6009556040517f3fb2441f7fb0cf4882020ee77c4b9fb347bdbbf2fa439c76ca667e1b55f18b2b905f90a150565b6005546001600160a01b031633146117b55760405162461bcd60e51b81526004016107dd9061258f565b6001600160a01b03811661181a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107dd565b61182381611e04565b50565b6001600160a01b0383166118885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107dd565b6001600160a01b0382166118e95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107dd565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116119aa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107dd565b6001600160a01b0383165f908152601a602052604090205460ff161580156119ea57506001600160a01b0382165f908152601a602052604090205460ff16155b8015611a005750600754600160a01b900460ff16155b15611b4257600754600160b01b900460ff16611a575760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016107dd565b600954811115611aa95760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016107dd565b6007546001600160a01b03838116911614611b4257600a5481611ae0846001600160a01b03165f9081526020819052604090205490565b611aea91906126af565b1115611b425760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016107dd565b6007545f90600160a01b900460ff1680611b7357506001600160a01b0384165f908152601a602052604090205460ff165b80611b9557506001600160a01b0383165f908152601a602052604090205460ff165b15611ba157505f611c01565b6007546001600160a01b0390811690841603611bd857606460195483611bc79190612698565b611bd191906126c2565b9050611c01565b6007546001600160a01b0390811690851603611bfe57606460185483611bc79190612698565b505f5b600754600160a81b900460ff168015611c245750600754600160a01b900460ff16155b8015611c3e57506007546001600160a01b03858116911614155b8015611c4957505f81115b15611c5657611c56611e55565b611c6a8484611c658486612610565b611ff6565b8015611c7b57611c7b843083611ff6565b6019546017545f9190611c8e9084612698565b611c9891906126c2565b90508015611cad57611cad3061dead83611ff6565b5050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611ce757611ce76126e1565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d6291906126f5565b81600181518110611d7557611d756126e1565b6001600160a01b039283166020918202929092010152600654611d9b9130911684611826565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dd39085905f90869030904290600401612710565b5f604051808303815f87803b158015611dea575f80fd5b505af1158015611dfc573d5f803e3d5ffd5b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16611016576007805460ff60a01b1916600160a01b179055305f9081526020819052604081205490506008548110611fe6575f6019546002611ea39190612698565b90505f8160136001015484611eb89190612698565b611ec291906126c2565b90505f611ecf8285612610565b905047611edb82611cb4565b5f611ee68247612610565b6014549091505f90611ef89087612610565b611f0290836126c2565b6014549091505f90611f149083612698565b90505f86118015611f2457505f81115b15611f3357611f3386826121cc565b6013545f90611f43846002612698565b611f4d9190612698565b90508015611f6b57600b54611f6b906001600160a01b031682612274565b6015545f90611f7b856002612698565b611f859190612698565b90508015611fa357600c54611fa3906001600160a01b031682612274565b6016545f90611fb3866002612698565b611fbd9190612698565b90508015611fdb57600d54611fdb906001600160a01b031682612274565b505050505050505050505b506007805460ff60a01b19169055565b6001600160a01b03831661205a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107dd565b6001600160a01b0382166120bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107dd565b6001600160a01b0383165f90815260208190526040902054818110156121335760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107dd565b61213d8282612610565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906121729084906126af565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121be91815260200190565b60405180910390a350505050565b6006546121e49030906001600160a01b031684611826565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561224f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611cad919061277f565b804710156122c45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107dd565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461230d576040519150601f19603f3d011682016040523d82523d5f602084013e612312565b606091505b50509050806123895760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107dd565b505050565b6001600160a01b0381168114611823575f80fd5b5f602082840312156123b2575f80fd5b81356123bd8161238e565b9392505050565b5f6020808352835180828501525f5b818110156123ef578581018301518582016040015282016123d3565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215612420575f80fd5b823561242b8161238e565b946020939093013593505050565b5f805f6060848603121561244b575f80fd5b83356124568161238e565b925060208401356124668161238e565b929592945050506040919091013590565b5f8060408385031215612488575f80fd5b82356124938161238e565b915060208301356124a38161238e565b809150509250929050565b5f602082840312156124be575f80fd5b5035919050565b5f805f805f60a086880312156124d9575f80fd5b505083359560208501359550604085013594606081013594506080013592509050565b8015158114611823575f80fd5b5f806040838503121561251a575f80fd5b82356125258161238e565b915060208301356124a3816124fc565b5f805f805f8060c0878903121561254a575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f60208284031215612584575f80fd5b81356123bd816124fc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806125d857607f821691505b6020821081036125f657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561094c5761094c6125fc565b5f60208284031215612633575f80fd5b5051919050565b5f6020828403121561264a575f80fd5b81516123bd816124fc565b60208082526023908201527f43616e6e6f7420736574206d617853656c6c206c6f776572207468616e20302e60408201526232352560e81b606082015260800190565b808202811582820484141761094c5761094c6125fc565b8082018082111561094c5761094c6125fc565b5f826126dc57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612705575f80fd5b81516123bd8161238e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561275e5784516001600160a01b031683529383019391830191600101612739565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612791575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122055bbf3d6570750efb233177527d26af004cd67cc871b29fb92cb2da62375c8a464736f6c63430008140033

Deployed Bytecode Sourcemap

7360:11181:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16450:289;;;;;;;;;;-1:-1:-1;16450:289:0;;;;;:::i;:::-;;:::i;:::-;;8171:47;;;;;;;;;;;;;;;;;;;548:25:1;;;536:2;521:18;8171:47:0;;;;;;;;1797:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2711:169::-;;;;;;;;;;-1:-1:-1;2711:169:0;;;;;:::i;:::-;;:::i;:::-;;;1622:14:1;;1615:22;1597:41;;1585:2;1570:18;2711:169:0;1457:187:1;2118:108:0;;;;;;;;;;-1:-1:-1;2206:12:0;;2118:108;;2888:422;;;;;;;;;;-1:-1:-1;2888:422:0;;;;;:::i;:::-;;:::i;17403:310::-;;;;;;;;;;-1:-1:-1;17403:310:0;;;;;:::i;:::-;;:::i;17163:232::-;;;;;;;;;;-1:-1:-1;17163:232:0;;;;;:::i;:::-;;:::i;2017:93::-;;;;;;;;;;-1:-1:-1;2017:93:0;;2100:2;2830:36:1;;2818:2;2803:18;2017:93:0;2688:184:1;3318:215:0;;;;;;;;;;-1:-1:-1;3318:215:0;;;;;:::i;:::-;;:::i;14976:418::-;;;;;;;;;;-1:-1:-1;14976:418:0;;;;;:::i;:::-;;:::i;16747:172::-;;;;;;;;;;-1:-1:-1;16747:172:0;;;;;:::i;:::-;;:::i;15838:294::-;;;;;;;;;;-1:-1:-1;15838:294:0;;;;;:::i;:::-;;:::i;17973:510::-;;;;;;;;;;;;;:::i;7533:23::-;;;;;;;;;;-1:-1:-1;7533:23:0;;;;-1:-1:-1;;;7533:23:0;;;;;;2234:127;;;;;;;;;;-1:-1:-1;2234:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2335:18:0;2308:7;2335:18;;;;;;;;;;;;2234:127;6137:94;;;;;;;;;;;;;:::i;16143:299::-;;;;;;;;;;-1:-1:-1;16143:299:0;;;;;:::i;:::-;;:::i;8406:75::-;;;;;;;;;;-1:-1:-1;8406:75:0;;;;-1:-1:-1;;;;;8406:75:0;;;;;;-1:-1:-1;;;;;4010:32:1;;;3992:51;;3980:2;3965:18;8406:75:0;3846:203:1;8572:74:0;;;;;;;;;;-1:-1:-1;8572:74:0;;;;-1:-1:-1;;;;;8572:74:0;;;14260:708;;;;;;;;;;-1:-1:-1;14260:708:0;;;;;:::i;:::-;;:::i;7563:20::-;;;;;;;;;;-1:-1:-1;7563:20:0;;;;-1:-1:-1;;;7563:20:0;;;;;;8829:40;;;;;;;;;;-1:-1:-1;8829:40:0;;;;;;;;;;;;;;;;;;;;;;4841:25:1;;;4897:2;4882:18;;4875:34;;;;4925:18;;;4918:34;;;;4983:2;4968:18;;4961:34;5026:3;5011:19;;5004:35;4828:3;4813:19;8829:40:0;4582:463:1;8248:46:0;;;;;;;;;;;;;;;;5914:87;;;;;;;;;;-1:-1:-1;5987:6:0;;-1:-1:-1;;;;;5987:6:0;5914:87;;1905:104;;;;;;;;;;;;;:::i;17721:244::-;;;;;;;;;;-1:-1:-1;17721:244:0;;;;;:::i;:::-;;:::i;13901:351::-;;;;;;;;;;-1:-1:-1;13901:351:0;;;;;:::i;:::-;;:::i;3541:377::-;;;;;;;;;;-1:-1:-1;3541:377:0;;;;;:::i;:::-;;:::i;7473:19::-;;;;;;;;;;-1:-1:-1;7473:19:0;;;;-1:-1:-1;;;;;7473:19:0;;;2369:175;;;;;;;;;;-1:-1:-1;2369:175:0;;;;;:::i;:::-;;:::i;8322:50::-;;;;;;;;;;;;;;;;8488:77;;;;;;;;;;-1:-1:-1;8488:77:0;;;;-1:-1:-1;;;;;8488:77:0;;;15402:424;;;;;;;;;;-1:-1:-1;15402:424:0;;;;;:::i;:::-;;:::i;9015:49::-;;;;;;;;;;-1:-1:-1;9015:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2552:151;;;;;;;;;;-1:-1:-1;2552:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2668:18:0;;;2641:7;2668:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2552:151;13726:167;;;;;;;;;;-1:-1:-1;13726:167:0;;;;;:::i;:::-;;:::i;16931:220::-;;;;;;;;;;-1:-1:-1;16931:220:0;;;;;:::i;:::-;;:::i;6239:192::-;;;;;;;;;;-1:-1:-1;6239:192:0;;;;;:::i;:::-;;:::i;8876:41::-;;;;;;;;;;-1:-1:-1;8876:41:0;;;;;;;;;;;;;;;;;;7445:21;;;;;;;;;;-1:-1:-1;7445:21:0;;;;-1:-1:-1;;;;;7445:21:0;;;16450:289;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;;;;;;;;;16542:14:::1;::::0;-1:-1:-1;;;;;16542:14:0;;::::1;16560:5;16525:32:::0;;;:16:::1;:32;::::0;;;;:40;;-1:-1:-1;;16525:40:0::1;::::0;;16584:23;::::1;16576:74;;;::::0;-1:-1:-1;;;16576:74:0;;6082:2:1;16576:74:0::1;::::0;::::1;6064:21:1::0;6121:2;6101:18;;;6094:30;6160:34;6140:18;;;6133:62;-1:-1:-1;;;6211:18:1;;;6204:36;6257:19;;16576:74:0::1;5880:402:1::0;16576:74:0::1;16661:14;:26:::0;;-1:-1:-1;;;;;;16661:26:0::1;-1:-1:-1::0;;;;;16661:26:0;::::1;;::::0;;16703:23:::1;::::0;::::1;::::0;-1:-1:-1;;16703:23:0::1;16450:289:::0;:::o;1797:100::-;1851:13;1884:5;1877:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1797:100;:::o;2711:169::-;2794:4;2811:39;279:10;2834:7;2843:6;2811:8;:39::i;:::-;-1:-1:-1;2868:4:0;2711:169;;;;;:::o;2888:422::-;2994:4;3011:36;3021:6;3029:9;3040:6;3011:9;:36::i;:::-;-1:-1:-1;;;;;3087:19:0;;3060:24;3087:19;;;:11;:19;;;;;;;;279:10;3087:33;;;;;;;;3139:26;;;;3131:79;;;;-1:-1:-1;;;3131:79:0;;6874:2:1;3131:79:0;;;6856:21:1;6913:2;6893:18;;;6886:30;6952:34;6932:18;;;6925:62;-1:-1:-1;;;7003:18:1;;;6996:38;7051:19;;3131:79:0;6672:404:1;3131:79:0;3221:57;3230:6;279:10;3252:25;3271:6;3252:16;:25;:::i;:::-;3221:8;:57::i;:::-;-1:-1:-1;3298:4:0;;2888:422;-1:-1:-1;;;;2888:422:0:o;17403:310::-;5987:6;;17489:10;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;17539:39:::1;::::0;-1:-1:-1;;;17539:39:0;;17572:4:::1;17539:39;::::0;::::1;3992:51:1::0;17512:24:0::1;::::0;-1:-1:-1;;;;;17539:24:0;::::1;::::0;::::1;::::0;3965:18:1;;17539:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17597:46;::::0;-1:-1:-1;;;17597:46:0;;-1:-1:-1;;;;;7727:32:1;;;17597:46:0::1;::::0;::::1;7709:51:1::0;7776:18;;;7769:34;;;17512:66:0;;-1:-1:-1;17597:23:0;;::::1;::::0;::::1;::::0;7682:18:1;;17597:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17659;::::0;;-1:-1:-1;;;;;7727:32:1;;7709:51;;7791:2;7776:18;;7769:34;;;17589:54:0;;-1:-1:-1;17659:46:0::1;::::0;7682:18:1;17659:46:0::1;;;;;;;17501:212;17403:310:::0;;;;:::o;17163:232::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;17254:7:::1;17244:6;:17;;17236:65;;;;-1:-1:-1::0;;;17236:65:0::1;;;;;;;:::i;:::-;17330:17;:6:::0;17340::::1;17330:17;:::i;:::-;17312:15;:35:::0;17363:24:::1;::::0;::::1;::::0;;;::::1;17163:232:::0;:::o;3318:215::-;279:10;3406:4;3455:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3455:34:0;;;;;;;;;;3406:4;;3423:80;;3446:7;;3455:47;;3492:10;;3455:47;:::i;14976:418::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;15133:61:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;15122:8:::1;:72:::0;;;;;;;;;;;;;;;;;;;15188:5;15177:9;15163:12;15217:23:::1;15151:10:::0;15139;15217:23:::1;:::i;:::-;:38;;;;:::i;:::-;:50;;;;:::i;:::-;:58;;;;:::i;:::-;15205:9;:70:::0;;;15307:2:::1;-1:-1:-1::0;15294:15:0::1;15286:67;;;::::0;-1:-1:-1;;;15286:67:0;;8973:2:1;15286:67:0::1;::::0;::::1;8955:21:1::0;9012:2;8992:18;;;8985:30;9051:34;9031:18;;;9024:62;-1:-1:-1;;;9102:18:1;;;9095:38;9150:19;;15286:67:0::1;8771:404:1::0;15286:67:0::1;15369:17;::::0;::::1;::::0;;;::::1;14976:418:::0;;;;;:::o;16747:172::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16836:26:0;::::1;;::::0;;;:16:::1;:26;::::0;;;;;:34;;-1:-1:-1;;16836:34:0::1;::::0;::::1;;;::::0;;16886:25;::::1;::::0;16836:26;16886:25:::1;16747:172:::0;;:::o;15838:294::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;15931:15:::1;::::0;-1:-1:-1;;;;;15931:15:0;;::::1;15950:5;15914:33:::0;;;:16:::1;:33;::::0;;;;:41;;-1:-1:-1;;15914:41:0::1;::::0;;15974:23;::::1;15966:75;;;::::0;-1:-1:-1;;;15966:75:0;;9382:2:1;15966:75:0::1;::::0;::::1;9364:21:1::0;9421:2;9401:18;;;9394:30;9460:34;9440:18;;;9433:62;-1:-1:-1;;;9511:18:1;;;9504:37;9558:19;;15966:75:0::1;9180:403:1::0;15966:75:0::1;16052:15;:27:::0;;-1:-1:-1;;;;;;16052:27:0::1;-1:-1:-1::0;;;;;16052:27:0;::::1;;::::0;;16095:24:::1;::::0;::::1;::::0;-1:-1:-1;;16095:24:0::1;15838:294:::0;:::o;17973:510::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;7629:8:::1;:15:::0;;-1:-1:-1;;;;7629:15:0::1;-1:-1:-1::0;;;7629:15:0::1;::::0;;18032:66:::2;18063:24;18081:4;-1:-1:-1::0;;;;;2335:18:0;2308:7;2335:18;;;;;;;;;;;;2234:127;18063:24:::2;18032:16;:66::i;:::-;18132:21;18111:18;18187:14;18200:1;18132:21:::0;18187:14:::2;:::i;:::-;18164:37:::0;-1:-1:-1;18212:22:0::2;18237:25;18164:37:::0;18237:10;:25:::2;:::i;:::-;18320:15;::::0;18312:54:::2;::::0;18212:50;;-1:-1:-1;18275:12:0::2;::::0;-1:-1:-1;;;;;18320:15:0;;::::2;::::0;18349:12;;18275;18312:54;18275:12;18312:54;18349:12;18320:15;18312:54:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;18401:17:0::2;::::0;18393:82:::2;::::0;18298:68;;-1:-1:-1;;;;;;18401:17:0::2;::::0;18432:14;;18393:82:::2;::::0;;;18432:14;18401:17;18393:82:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;7667:8:0::1;:16:::0;;-1:-1:-1;;;;7667:16:0::1;::::0;;-1:-1:-1;;;;;17973:510:0:o;6137:94::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;6202:21:::1;6220:1;6202:9;:21::i;:::-;6137:94::o:0;16143:299::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;16238:17:::1;::::0;-1:-1:-1;;;;;16238:17:0;;::::1;16259:5;16221:35:::0;;;:16:::1;:35;::::0;;;;:43;;-1:-1:-1;;16221:43:0::1;::::0;;16283:23;::::1;16275:77;;;::::0;-1:-1:-1;;;16275:77:0;;10222:2:1;16275:77:0::1;::::0;::::1;10204:21:1::0;10261:2;10241:18;;;10234:30;10300:34;10280:18;;;10273:62;-1:-1:-1;;;10351:18:1;;;10344:39;10400:19;;16275:77:0::1;10020:405:1::0;16275:77:0::1;16363:17;:29:::0;;-1:-1:-1;;;;;;16363:29:0::1;-1:-1:-1::0;;;;;16363:29:0;::::1;;::::0;;16408:26:::1;::::0;::::1;::::0;-1:-1:-1;;16408:26:0::1;16143:299:::0;:::o;14260:708::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;14426:8:::1;::::0;-1:-1:-1;;;14426:8:0;::::1;;;14425:9;14417:44;;;::::0;-1:-1:-1;;;14417:44:0;;10632:2:1;14417:44:0::1;::::0;::::1;10614:21:1::0;10671:2;10651:18;;;10644:30;-1:-1:-1;;;10690:18:1;;;10683:52;10752:18;;14417:44:0::1;10430:346:1::0;14417:44:0::1;14483:61;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;14472:8:::1;:72:::0;;;;;;;;;;;;;;;;;;;14538:5;14527:9;14513:12;14567:23:::1;14501:10:::0;14489;14567:23:::1;:::i;:::-;:38;;;;:::i;:::-;:50;;;;:::i;:::-;:58;;;;:::i;:::-;14555:9;:70:::0;14648:61:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;14636:9:::1;:73:::0;;;;;;;;;;;;;;;;;;;14703:5;14692:9;14678:12;14733:23:::1;14666:10:::0;14654;14733:23:::1;:::i;:::-;:38;;;;:::i;:::-;:50;;;;:::i;:::-;:58;;;;:::i;:::-;14720:10;:71:::0;14816:17:::1;:6:::0;14826::::1;14816:17;:::i;:::-;14802:11;:31:::0;14862:17:::1;:6:::0;14872::::1;14862:17;:::i;:::-;14844:15;:35:::0;14890:8:::1;:15:::0;;-1:-1:-1;;;;14916:18:0;-1:-1:-1;;;14916:18:0;;;14950:10:::1;::::0;::::1;::::0;-1:-1:-1;;14950:10:0::1;14260:708:::0;;;;;;:::o;1905:104::-;1961:13;1994:7;1987:14;;;;;:::i;17721:244::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;17823:21:::1;17863:10;17855:66;17917:3;17885:28;17897:16:::0;17823:21;17885:28:::1;:::i;:::-;17884:36;;;;:::i;:::-;17855:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;17937:20:0::1;::::0;::::1;::::0;;;::::1;17792:173;17721:244:::0;:::o;13901:351::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;13999:5:::1;13985:10;:19;;13977:85;;;::::0;-1:-1:-1;;;13977:85:0;;10983:2:1;13977:85:0::1;::::0;::::1;10965:21:1::0;11022:2;11002:18;;;10995:30;11061:34;11041:18;;;11034:62;-1:-1:-1;;;11112:18:1;;;11105:51;11173:19;;13977:85:0::1;10781:417:1::0;13977:85:0::1;14095:8;14081:10;:22;;14073:85;;;::::0;-1:-1:-1;;;14073:85:0;;11405:2:1;14073:85:0::1;::::0;::::1;11387:21:1::0;11444:2;11424:18;;;11417:30;11483:34;11463:18;;;11456:62;-1:-1:-1;;;11534:18:1;;;11527:48;11592:19;;14073:85:0::1;11203:414:1::0;14073:85:0::1;14185:21;:10:::0;14199:6:::1;14185:21;:::i;:::-;14169:13;:37:::0;14222:22:::1;::::0;::::1;::::0;;;::::1;13901:351:::0;:::o;3541:377::-;279:10;3634:4;3678:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3678:34:0;;;;;;;;;;3731:35;;;;3723:85;;;;-1:-1:-1;;;3723:85:0;;11824:2:1;3723:85:0;;;11806:21:1;11863:2;11843:18;;;11836:30;11902:34;11882:18;;;11875:62;-1:-1:-1;;;11953:18:1;;;11946:35;11998:19;;3723:85:0;11622:401:1;3723:85:0;3819:67;279:10;3842:7;3851:34;3870:15;3851:16;:34;:::i;3819:67::-;-1:-1:-1;3906:4:0;;3541:377;-1:-1:-1;;;3541:377:0:o;2369:175::-;2455:4;2472:42;279:10;2496:9;2507:6;2472:9;:42::i;15402:424::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;15561:61:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;15549:9:::1;:73:::0;;;;;;;;;;;;;;;;;;;15616:5;15605:9;15591:12;15646:23:::1;15579:10:::0;15567;15646:23:::1;:::i;:::-;:38;;;;:::i;:::-;:50;;;;:::i;:::-;:58;;;;:::i;:::-;15633:10;:71:::0;;;15737:2:::1;-1:-1:-1::0;15723:16:0::1;15715:69;;;::::0;-1:-1:-1;;;15715:69:0;;12230:2:1;15715:69:0::1;::::0;::::1;12212:21:1::0;12269:2;12249:18;;;12242:30;12308:34;12288:18;;;12281:62;-1:-1:-1;;;12359:18:1;;;12352:39;12408:19;;15715:69:0::1;12028:405:1::0;15715:69:0::1;15800:18;::::0;::::1;::::0;;;::::1;15402:424:::0;;;;;:::o;13726:167::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;13837:11:::1;:19:::0;;-1:-1:-1;;;;13837:19:0::1;-1:-1:-1::0;;;13837:19:0;::::1;;;;::::0;;13872:13:::1;::::0;::::1;::::0;-1:-1:-1;;13872:13:0::1;13726:167:::0;:::o;16931:220::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;17018:7:::1;17008:6;:17;;17000:65;;;;-1:-1:-1::0;;;17000:65:0::1;;;;;;;:::i;:::-;17090:17;:6:::0;17100::::1;17090:17;:::i;:::-;17076:11;:31:::0;17123:20:::1;::::0;::::1;::::0;;;::::1;16931:220:::0;:::o;6239:192::-;5987:6;;-1:-1:-1;;;;;5987:6:0;279:10;6049:23;6041:68;;;;-1:-1:-1;;;6041:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6328:22:0;::::1;6320:73;;;::::0;-1:-1:-1;;;6320:73:0;;12640:2:1;6320:73:0::1;::::0;::::1;12622:21:1::0;12679:2;12659:18;;;12652:30;12718:34;12698:18;;;12691:62;-1:-1:-1;;;12769:18:1;;;12762:36;12815:19;;6320:73:0::1;12438:402:1::0;6320:73:0::1;6404:19;6414:8;6404:9;:19::i;:::-;6239:192:::0;:::o;4884:346::-;-1:-1:-1;;;;;4986:19:0;;4978:68;;;;-1:-1:-1;;;4978:68:0;;13047:2:1;4978:68:0;;;13029:21:1;13086:2;13066:18;;;13059:30;13125:34;13105:18;;;13098:62;-1:-1:-1;;;13176:18:1;;;13169:34;13220:19;;4978:68:0;12845:400:1;4978:68:0;-1:-1:-1;;;;;5065:21:0;;5057:68;;;;-1:-1:-1;;;5057:68:0;;13452:2:1;5057:68:0;;;13434:21:1;13491:2;13471:18;;;13464:30;13530:34;13510:18;;;13503:62;-1:-1:-1;;;13581:18:1;;;13574:32;13623:19;;5057:68:0;13250:398:1;5057:68:0;-1:-1:-1;;;;;5138:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5190:32;;548:25:1;;;5190:32:0;;521:18:1;5190:32:0;;;;;;;4884:346;;;:::o;9835:1377::-;9951:1;9942:6;:10;9934:64;;;;-1:-1:-1;;;9934:64:0;;13855:2:1;9934:64:0;;;13837:21:1;13894:2;13874:18;;;13867:30;13933:34;13913:18;;;13906:62;-1:-1:-1;;;13984:18:1;;;13977:39;14033:19;;9934:64:0;13653:405:1;9934:64:0;-1:-1:-1;;;;;10041:24:0;;;;;;:16;:24;;;;;;;;10040:25;:57;;;;-1:-1:-1;;;;;;10070:27:0;;;;;;:16;:27;;;;;;;;10069:28;10040:57;:70;;;;-1:-1:-1;10102:8:0;;-1:-1:-1;;;10102:8:0;;;;10101:9;10040:70;10037:386;;;10134:8;;-1:-1:-1;;;10134:8:0;;;;10126:43;;;;-1:-1:-1;;;10126:43:0;;14265:2:1;10126:43:0;;;14247:21:1;14304:2;14284:18;;;14277:30;-1:-1:-1;;;14323:18:1;;;14316:52;14385:18;;10126:43:0;14063:346:1;10126:43:0;10202:11;;10192:6;:21;;10184:63;;;;-1:-1:-1;;;10184:63:0;;14616:2:1;10184:63:0;;;14598:21:1;14655:2;14635:18;;;14628:30;14694:31;14674:18;;;14667:59;14743:18;;10184:63:0;14414:353:1;10184:63:0;10278:4;;-1:-1:-1;;;;;10265:17:0;;;10278:4;;10265:17;10262:150;;10343:15;;10333:6;10310:20;10320:9;-1:-1:-1;;;;;2335:18:0;2308:7;2335:18;;;;;;;;;;;;2234:127;10310:20;:29;;;;:::i;:::-;:48;;10302:94;;;;-1:-1:-1;;;10302:94:0;;14974:2:1;10302:94:0;;;14956:21:1;15013:2;14993:18;;;14986:30;15052:34;15032:18;;;15025:62;-1:-1:-1;;;15103:18:1;;;15096:31;15144:19;;10302:94:0;14772:397:1;10302:94:0;10473:8;;10435:11;;-1:-1:-1;;;10473:8:0;;;;;:36;;-1:-1:-1;;;;;;10485:24:0;;;;;;:16;:24;;;;;;;;10473:36;:67;;;-1:-1:-1;;;;;;10513:27:0;;;;;;:16;:27;;;;;;;;10473:67;10469:282;;;-1:-1:-1;10548:1:0;10469:282;;;10606:4;;-1:-1:-1;;;;;10606:4:0;;;10593:17;;;;10590:149;;10640:3;10627:10;;10618:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;10612:31;;10590:149;;;10676:4;;-1:-1:-1;;;;;10676:4:0;;;10666:14;;;;10663:76;;10709:3;10697:9;;10688:6;:18;;;;:::i;10663:76::-;-1:-1:-1;10738:1:0;10663:76;10775:11;;-1:-1:-1;;;10775:11:0;;;;:24;;;;-1:-1:-1;10791:8:0;;-1:-1:-1;;;10791:8:0;;;;10790:9;10775:24;:42;;;;-1:-1:-1;10813:4:0;;-1:-1:-1;;;;;10803:14:0;;;10813:4;;10803:14;;10775:42;:53;;;;;10827:1;10821:3;:7;10775:53;10771:72;;;10830:13;:11;:13::i;:::-;10856:48;10872:6;10880:9;10891:12;10900:3;10891:6;:12;:::i;:::-;10856:15;:48::i;:::-;10918:7;;10915:55;;10927:43;10943:6;10959:4;10966:3;10927:15;:43::i;:::-;11060:10;;11043:14;;10983:21;;11060:10;11037:20;;:3;:20;:::i;:::-;:33;;;;:::i;:::-;11021:49;-1:-1:-1;11086:17:0;;11083:120;;11125:62;11149:4;11164:6;11173:13;11125:15;:62::i;:::-;9923:1289;;9835:1377;;;:::o;12811:398::-;12901:16;;;12915:1;12901:16;;;;;;;;12877:21;;12901:16;;;;;;;;;;-1:-1:-1;12901:16:0;12877:40;;12946:4;12928;12933:1;12928:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12928:23:0;;;:7;;;;;;;;;;:23;;;;12972:6;;:13;;;-1:-1:-1;;;12972:13:0;;;;:6;;;;;:11;;:13;;;;;12928:7;;12972:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12962:4;12967:1;12962:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12962:23:0;;;:7;;;;;;;;;:23;13030:6;;12998:53;;13015:4;;13030:6;13039:11;12998:8;:53::i;:::-;13090:6;;:111;;-1:-1:-1;;;13090:111:0;;-1:-1:-1;;;;;13090:6:0;;;;:57;;:111;;13148:11;;13090:6;;13164:4;;13178;;13185:15;;13090:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12866:343;12811:398;:::o;6439:173::-;6514:6;;;-1:-1:-1;;;;;6531:17:0;;;-1:-1:-1;;;;;;6531:17:0;;;;;;;6564:40;;6514:6;;;6531:17;6514:6;;6564:40;;6495:16;;6564:40;6484:128;6439:173;:::o;11218:1585::-;9111:8;;-1:-1:-1;;;9111:8:0;;;;9106:104;;9136:8;:15;;-1:-1:-1;;;;9136:15:0;-1:-1:-1;;;9136:15:0;;;11311:4:::1;-1:-1:-1::0;2335:18:0;;;;;;;;;;;11267:50:::1;;11353:13;;11334:15;:32;11330:1466;;11385:19;11407:10;;11420:1;11407:14;;;;:::i;:::-;11385:36;;11436:32;11511:11;11489:9;:19;;;11471:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;11436:86:::0;-1:-1:-1;11537:14:0::1;11554:42;11436:86:::0;11554:15;:42:::1;:::i;:::-;11537:59:::0;-1:-1:-1;11642:21:0::1;11684:24;11537:59:::0;11684:16:::1;:24::i;:::-;11729:20;11752:38;11776:14:::0;11752:21:::1;:38;:::i;:::-;11856:19:::0;;11729:61;;-1:-1:-1;11805:19:0::1;::::0;11842:33:::1;::::0;:11;:33:::1;:::i;:::-;11826:50;::::0;:12;:50:::1;:::i;:::-;11937:19:::0;;11805:71;;-1:-1:-1;11891:29:0::1;::::0;11923:33:::1;::::0;11805:71;11923:33:::1;:::i;:::-;11891:65;;12007:1;11980:24;:28;:57;;;;;12036:1;12012:21;:25;11980:57;11977:198;;;12098:61;12111:24;12137:21;12098:12;:61::i;:::-;12236:9;:19:::0;12195:20:::1;::::0;12218:15:::1;:11:::0;12232:1:::1;12218:15;:::i;:::-;:37;;;;:::i;:::-;12195:60:::0;-1:-1:-1;12273:16:0;;12270:103:::1;;12317:15;::::0;12309:48:::1;::::0;-1:-1:-1;;;;;12317:15:0::1;12344:12:::0;12309:34:::1;:48::i;:::-;12444:21:::0;;12401:22:::1;::::0;12426:15:::1;:11:::0;12444:21:::1;12426:15;:::i;:::-;:39;;;;:::i;:::-;12401:64:::0;-1:-1:-1;12483:18:0;;12480:109:::1;;12529:17;::::0;12521:52:::1;::::0;-1:-1:-1;;;;;12529:17:0::1;12558:14:::0;12521:36:::1;:52::i;:::-;12643:18:::0;;12603:19:::1;::::0;12625:15:::1;:11:::0;12639:1:::1;12625:15;:::i;:::-;:36;;;;:::i;:::-;12603:58:::0;-1:-1:-1;12679:15:0;;12676:100:::1;;12722:14;::::0;12714:46:::1;::::0;-1:-1:-1;;;;;12722:14:0::1;12748:11:::0;12714:33:::1;:46::i;:::-;11368:1428;;;;;;;;;;11330:1466;-1:-1:-1::0;9182:8:0;:16;;-1:-1:-1;;;;9182:16:0;;;11218:1585::o;3926:604::-;-1:-1:-1;;;;;4032:20:0;;4024:70;;;;-1:-1:-1;;;4024:70:0;;16881:2:1;4024:70:0;;;16863:21:1;16920:2;16900:18;;;16893:30;16959:34;16939:18;;;16932:62;-1:-1:-1;;;17010:18:1;;;17003:35;17055:19;;4024:70:0;16679:401:1;4024:70:0;-1:-1:-1;;;;;4113:23:0;;4105:71;;;;-1:-1:-1;;;4105:71:0;;17287:2:1;4105:71:0;;;17269:21:1;17326:2;17306:18;;;17299:30;17365:34;17345:18;;;17338:62;-1:-1:-1;;;17416:18:1;;;17409:33;17459:19;;4105:71:0;17085:399:1;4105:71:0;-1:-1:-1;;;;;4273:17:0;;4249:21;4273:17;;;;;;;;;;;4309:23;;;;4301:74;;;;-1:-1:-1;;;4301:74:0;;17691:2:1;4301:74:0;;;17673:21:1;17730:2;17710:18;;;17703:30;17769:34;17749:18;;;17742:62;-1:-1:-1;;;17820:18:1;;;17813:36;17866:19;;4301:74:0;17489:402:1;4301:74:0;4406:22;4422:6;4406:13;:22;:::i;:::-;-1:-1:-1;;;;;4386:17:0;;;:9;:17;;;;;;;;;;;:42;;;;4439:20;;;;;;;;:30;;4463:6;;4386:9;4439:30;;4463:6;;4439:30;:::i;:::-;;;;;;;;4504:9;-1:-1:-1;;;;;4487:35:0;4496:6;-1:-1:-1;;;;;4487:35:0;;4515:6;4487:35;;;;548:25:1;;536:2;521:18;;402:177;4487:35:0;;;;;;;;4013:517;3926:604;;;:::o;13217:503::-;13397:6;;13365:53;;13382:4;;-1:-1:-1;;;;;13397:6:0;13406:11;13365:8;:53::i;:::-;13461:6;;:251;;-1:-1:-1;;;13461:251:0;;13524:4;13461:251;;;18237:34:1;18287:18;;;18280:34;;;13461:6:0;18330:18:1;;;18323:34;;;18373:18;;;18366:34;13664:6:0;18416:19:1;;;18409:44;13686:15:0;18469:19:1;;;18462:35;-1:-1:-1;;;;;13461:6:0;;;;:22;;13491:9;;18171:19:1;;13461:251:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5359:317::-;5474:6;5449:21;:31;;5441:73;;;;-1:-1:-1;;;5441:73:0;;19021:2:1;5441:73:0;;;19003:21:1;19060:2;19040:18;;;19033:30;19099:31;19079:18;;;19072:59;19148:18;;5441:73:0;18819:353:1;5441:73:0;5528:12;5546:9;-1:-1:-1;;;;;5546:14:0;5568:6;5546:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5527:52;;;5598:7;5590:78;;;;-1:-1:-1;;;5590:78:0;;19379:2:1;5590:78:0;;;19361:21:1;19418:2;19398:18;;;19391:30;19457:34;19437:18;;;19430:62;19528:28;19508:18;;;19501:56;19574:19;;5590:78:0;19177:422:1;5590:78:0;5430:246;5359:317;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:1:o;584:548::-;696:4;725:2;754;743:9;736:21;786:6;780:13;829:6;824:2;813:9;809:18;802:34;854:1;864:140;878:6;875:1;872:13;864:140;;;973:14;;;969:23;;963:30;939:17;;;958:2;935:26;928:66;893:10;;864:140;;;868:3;1053:1;1048:2;1039:6;1028:9;1024:22;1020:31;1013:42;1123:2;1116;1112:7;1107:2;1099:6;1095:15;1091:29;1080:9;1076:45;1072:54;1064:62;;;;584:548;;;;:::o;1137:315::-;1205:6;1213;1266:2;1254:9;1245:7;1241:23;1237:32;1234:52;;;1282:1;1279;1272:12;1234:52;1321:9;1308:23;1340:31;1365:5;1340:31;:::i;:::-;1390:5;1442:2;1427:18;;;;1414:32;;-1:-1:-1;;;1137:315:1:o;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2110:388::-;2178:6;2186;2239:2;2227:9;2218:7;2214:23;2210:32;2207:52;;;2255:1;2252;2245:12;2207:52;2294:9;2281:23;2313:31;2338:5;2313:31;:::i;:::-;2363:5;-1:-1:-1;2420:2:1;2405:18;;2392:32;2433:33;2392:32;2433:33;:::i;:::-;2485:7;2475:17;;;2110:388;;;;;:::o;2503:180::-;2562:6;2615:2;2603:9;2594:7;2590:23;2586:32;2583:52;;;2631:1;2628;2621:12;2583:52;-1:-1:-1;2654:23:1;;2503:180;-1:-1:-1;2503:180:1:o;2877:454::-;2972:6;2980;2988;2996;3004;3057:3;3045:9;3036:7;3032:23;3028:33;3025:53;;;3074:1;3071;3064:12;3025:53;-1:-1:-1;;3097:23:1;;;3167:2;3152:18;;3139:32;;-1:-1:-1;3218:2:1;3203:18;;3190:32;;3269:2;3254:18;;3241:32;;-1:-1:-1;3320:3:1;3305:19;3292:33;;-1:-1:-1;2877:454:1;-1:-1:-1;2877:454:1:o;3336:118::-;3422:5;3415:13;3408:21;3401:5;3398:32;3388:60;;3444:1;3441;3434:12;3459:382;3524:6;3532;3585:2;3573:9;3564:7;3560:23;3556:32;3553:52;;;3601:1;3598;3591:12;3553:52;3640:9;3627:23;3659:31;3684:5;3659:31;:::i;:::-;3709:5;-1:-1:-1;3766:2:1;3751:18;;3738:32;3779:30;3738:32;3779:30;:::i;4054:523::-;4158:6;4166;4174;4182;4190;4198;4251:3;4239:9;4230:7;4226:23;4222:33;4219:53;;;4268:1;4265;4258:12;4219:53;-1:-1:-1;;4291:23:1;;;4361:2;4346:18;;4333:32;;-1:-1:-1;4412:2:1;4397:18;;4384:32;;4463:2;4448:18;;4435:32;;-1:-1:-1;4514:3:1;4499:19;;4486:33;;-1:-1:-1;4566:3:1;4551:19;4538:33;;-1:-1:-1;4054:523:1;-1:-1:-1;4054:523:1:o;5050:241::-;5106:6;5159:2;5147:9;5138:7;5134:23;5130:32;5127:52;;;5175:1;5172;5165:12;5127:52;5214:9;5201:23;5233:28;5255:5;5233:28;:::i;5519:356::-;5721:2;5703:21;;;5740:18;;;5733:30;5799:34;5794:2;5779:18;;5772:62;5866:2;5851:18;;5519:356::o;6287:380::-;6366:1;6362:12;;;;6409;;;6430:61;;6484:4;6476:6;6472:17;6462:27;;6430:61;6537:2;6529:6;6526:14;6506:18;6503:38;6500:161;;6583:10;6578:3;6574:20;6571:1;6564:31;6618:4;6615:1;6608:15;6646:4;6643:1;6636:15;6500:161;;6287:380;;;:::o;7081:127::-;7142:10;7137:3;7133:20;7130:1;7123:31;7173:4;7170:1;7163:15;7197:4;7194:1;7187:15;7213:128;7280:9;;;7301:11;;;7298:37;;;7315:18;;:::i;7346:184::-;7416:6;7469:2;7457:9;7448:7;7444:23;7440:32;7437:52;;;7485:1;7482;7475:12;7437:52;-1:-1:-1;7508:16:1;;7346:184;-1:-1:-1;7346:184:1:o;7814:245::-;7881:6;7934:2;7922:9;7913:7;7909:23;7905:32;7902:52;;;7950:1;7947;7940:12;7902:52;7982:9;7976:16;8001:28;8023:5;8001:28;:::i;8064:399::-;8266:2;8248:21;;;8305:2;8285:18;;;8278:30;8344:34;8339:2;8324:18;;8317:62;-1:-1:-1;;;8410:2:1;8395:18;;8388:33;8453:3;8438:19;;8064:399::o;8468:168::-;8541:9;;;8572;;8589:15;;;8583:22;;8569:37;8559:71;;8610:18;;:::i;8641:125::-;8706:9;;;8727:10;;;8724:36;;;8740:18;;:::i;9588:217::-;9628:1;9654;9644:132;;9698:10;9693:3;9689:20;9686:1;9679:31;9733:4;9730:1;9723:15;9761:4;9758:1;9751:15;9644:132;-1:-1:-1;9790:9:1;;9588:217::o;15306:127::-;15367:10;15362:3;15358:20;15355:1;15348:31;15398:4;15395:1;15388:15;15422:4;15419:1;15412:15;15438:251;15508:6;15561:2;15549:9;15540:7;15536:23;15532:32;15529:52;;;15577:1;15574;15567:12;15529:52;15609:9;15603:16;15628:31;15653:5;15628:31;:::i;15694:980::-;15956:4;16004:3;15993:9;15989:19;16035:6;16024:9;16017:25;16061:2;16099:6;16094:2;16083:9;16079:18;16072:34;16142:3;16137:2;16126:9;16122:18;16115:31;16166:6;16201;16195:13;16232:6;16224;16217:22;16270:3;16259:9;16255:19;16248:26;;16309:2;16301:6;16297:15;16283:29;;16330:1;16340:195;16354:6;16351:1;16348:13;16340:195;;;16419:13;;-1:-1:-1;;;;;16415:39:1;16403:52;;16510:15;;;;16475:12;;;;16451:1;16369:9;16340:195;;;-1:-1:-1;;;;;;;16591:32:1;;;;16586:2;16571:18;;16564:60;-1:-1:-1;;;16655:3:1;16640:19;16633:35;16552:3;15694:980;-1:-1:-1;;;15694:980:1:o;18508:306::-;18596:6;18604;18612;18665:2;18653:9;18644:7;18640:23;18636:32;18633:52;;;18681:1;18678;18671:12;18633:52;18710:9;18704:16;18694:26;;18760:2;18749:9;18745:18;18739:25;18729:35;;18804:2;18793:9;18789:18;18783:25;18773:35;;18508:306;;;;;:::o

Swarm Source

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