ETH Price: $3,111.82 (+0.46%)
Gas: 4 Gwei

Token

Alpha Intelligence ($AI)
 

Overview

Max Total Supply

100,000,000 $AI

Holders

214

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
114,905.903188642694455611 $AI

Value
$0.00
0x955d2ca708bb8caccd0bd8dc89ecd7104c9058bf
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:
AlphaIntelligence

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-15
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

contract AlphaIntelligence is ERC20, Ownable {
    uint256 public  wilsonBuyFee  = 1;
    uint256 public  wilsonSellFee = 1;

    uint256 public  marketingBuyFee  = 2;
    uint256 public  marketingSellFee = 2;

    uint256 public treasuryBuyFee  = 2;
    uint256 public treasurySellFee = 2;

    uint256 private _totalBuyFee  = 5;
    uint256 private _totalSellFee = 5;

    address public wilsonWallet = 0x882A35de9b236EDa98A58B6602603cF71cC7Ae0c;
    address public marketingWallet = 0xAC7eA75c0f4Fd54D2DBc4f3B65332613E8Aba6Ab;
    address public treasuryWallet = 0xa981c08812e2Dd6421147895B2803A46e8bdf48F;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;
    
    address private DEAD = 0x000000000000000000000000000000000000dEaD;

    uint8 constant private _decimals = 18;
    uint256 public swapTokensAtAmount;
    bool    public swapEnabled = true;
    bool    public swapWithLimit;
    bool    private swapping;
    bool    public tradingEnabled = false;

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

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event UpdateBuyFees(uint256 treasuryBuyFee, uint256 marketingBuyFee, uint256 wilsonBuyFee);
    event UpdateSellFees(uint256 treasurySellFee, uint256 marketingSellFee, uint256 wilsonSellFee);
    event MarketingWalletUpdated(address indexed newMarketingWallet);
    event WilsonWalletUpdated(address indexed newWilsonWallet);
    event TreasuryWalletUpdated(address indexed newTreasuryWallet);
    event TradingEnabled(bool enabled);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event SwapAndLiquify(uint256 tokensSwapped, uint256 bnbReceived, uint256 tokensIntoLiqudity);
    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);

    constructor () ERC20("Alpha Intelligence", "$AI") 
    {   
                                                               
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //PCS Router 0x10ED43C718714eb63d5aA57B78B54704E256024E
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        _setAutomatedMarketMakerPair(_uniswapV2Pair, true);

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[DEAD] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingWallet] = true;
        _isExcludedFromFees[treasuryWallet] = true;
        _isExcludedFromFees[wilsonWallet] = true;
        
        _mint(owner(), 1e8 * (10 ** 18));
        swapTokensAtAmount = totalSupply() / 5000;
    }

    receive() external payable {

  	}

    function Claim(address token) external onlyOwner {
        if (token == address(0x0)) {
            payable(msg.sender).transfer(address(this).balance);
            return;
        }
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.transfer(msg.sender, balance);
    }

    function updateUniswapV2Router(address newAddress) external onlyOwner {
        require(newAddress != address(uniswapV2Router), "The router already has that address");
        emit UpdateUniswapV2Router(newAddress, address(uniswapV2Router));
        uniswapV2Router = IUniswapV2Router02(newAddress);
        address _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Pair = _uniswapV2Pair;
    }
 
    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value");
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

   
    function excludeFromFees(address account) external onlyOwner {
        require(_isExcludedFromFees[account] != true, "Account is already the value of 'excluded'");
        _isExcludedFromFees[account] = true;

        emit ExcludeFromFees(account, true);
    }

    function includeInFees(address account) external onlyOwner {
        require(_isExcludedFromFees[account] != false, "Account is already the value of 'included'");
        _isExcludedFromFees[account] = false;

        emit ExcludeFromFees(account, false);
    }

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

    function updateBuyFees(uint256 _treasuryBuyFee, uint256 _wilsonBuyFee, uint256 _marketingBuyFee) external onlyOwner {
        require(
            _treasuryBuyFee + _wilsonBuyFee +  _marketingBuyFee <= 9,
            "Fees must be less than 10%"
        );
        treasuryBuyFee = _treasuryBuyFee;
        marketingBuyFee = _marketingBuyFee;
        wilsonBuyFee = _wilsonBuyFee;

        _totalBuyFee   = treasuryBuyFee + marketingBuyFee + wilsonBuyFee;
        emit UpdateBuyFees(_treasuryBuyFee, _wilsonBuyFee, _marketingBuyFee);
    }

    function updateSellFees(uint256 _treasurySellFee, uint256 _wilsonSellFee, uint256 _marketingSellFee) external onlyOwner {
        require(
            _treasurySellFee + _wilsonSellFee + _marketingSellFee <= 9,
            "Fees must be less than 10%"
        );
        treasurySellFee = _treasurySellFee;
        wilsonSellFee = _wilsonSellFee;
        marketingSellFee = _marketingSellFee;

        _totalSellFee   = treasurySellFee + wilsonSellFee + marketingSellFee;
        emit UpdateSellFees(_treasurySellFee, _wilsonSellFee, _marketingSellFee);
    }


    function changeWilsonWallet(address _wilsonWallet) external onlyOwner {
        require(_wilsonWallet != address(0), "Operation wallet cannot be zero address");
        wilsonWallet = _wilsonWallet;
        emit WilsonWalletUpdated(_wilsonWallet);
    }
    

    function changeMarketingWallet(address _marketingWallet) external onlyOwner {
        require(_marketingWallet != address(0), "Reward wallet cannot be zero address");
        marketingWallet = _marketingWallet;
        emit MarketingWalletUpdated(_marketingWallet);
    }

     function changeTreasuryWallet(address _treasuryWallet) external onlyOwner {
        require(_treasuryWallet != address(0), "Reward wallet cannot be zero address");
        treasuryWallet = _treasuryWallet;
        emit TreasuryWalletUpdated(_treasuryWallet);
    }

   
    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        require(balanceOf(uniswapV2Pair) > 0, "Liquidity must be added first");
        tradingEnabled = true;
        emit TradingEnabled(true);
    }


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

        if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            require(tradingEnabled == true, "Trading is not enabled yet");
        }

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if( swapEnabled && 
            canSwap &&
            !swapping &&
            automatedMarketMakerPairs[to] &&
            _totalBuyFee + _totalSellFee > 0
        ) {
            swapping = true;

            if (swapWithLimit) {
                contractTokenBalance = swapTokensAtAmount;
            }

            uint256 totalFee = _totalBuyFee + _totalSellFee;
            uint256 treasuryShare = treasuryBuyFee + treasurySellFee;
            uint256 wilsonShare = wilsonBuyFee + wilsonSellFee;
            uint256 marketingShare = marketingBuyFee + marketingSellFee;
            
            if(contractTokenBalance > 0 && totalFee >= 0) {
                uint256 initialBalance = address(this).balance;

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

                uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                    contractTokenBalance,
                    0,
                    path,
                    address(this),
                    block.timestamp);
                
                uint256 newBalance = address(this).balance - initialBalance;

                if(treasuryShare > 0) {
                    uint256 treasuryAmount = newBalance * treasuryShare / totalFee;
                    payable(treasuryWallet).transfer(treasuryAmount);
                }

                if(wilsonShare > 0) {
                    uint256 wilsonAmount = newBalance * wilsonShare / totalFee;
                    payable(wilsonWallet).transfer(wilsonAmount);
                }

                if(marketingShare > 0) {
                    uint256 marketingAmount = newBalance * marketingShare / totalFee;
                    payable(marketingWallet).transfer(marketingAmount);
                }
            }         

            swapping = false;
        }

        bool takeFee = !swapping;

        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        if(takeFee && (from == uniswapV2Pair || to == uniswapV2Pair)) {
            uint256 _totalFees;
            if(from == uniswapV2Pair) {
                _totalFees = _totalBuyFee;
            } 
            else if(to == uniswapV2Pair){
                _totalFees = _totalSellFee;
            }
        	uint256 fees = amount * _totalFees / 100;
        	
        	amount = amount - fees;
            
            if(fees > 0) {
                super._transfer(from, address(this), fees);
            }
        }

        super._transfer(from, to, amount);

    }

    
    function setSwapEnabled(bool _swapEnabled) external onlyOwner {
        require(
            swapEnabled != _swapEnabled, 
            "Swap is already set to that state"
        );
        swapEnabled = _swapEnabled;
    }

    function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        require(
            newAmount > totalSupply() / 1_000_000, 
            "New Amount must more than 0.0001% of total supply"
        );
        swapTokensAtAmount = newAmount;
    }

    function setSwapWithLimit(bool _swapWithLimit) external onlyOwner {
        require(
            swapWithLimit != _swapWithLimit, 
            "Swap with limit is already set to that state"
        );
        swapWithLimit = _swapWithLimit;
    }

   
    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint8 i = 0; i < accounts.length; i++) {
            require(balanceOf(msg.sender) >= amounts[i]);
            super._transfer(msg.sender , accounts[i], amounts[i]*10**_decimals);
        }
    }
      
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"TradingEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newTreasuryWallet","type":"address"}],"name":"TreasuryWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"treasuryBuyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"marketingBuyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"wilsonBuyFee","type":"uint256"}],"name":"UpdateBuyFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"treasurySellFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"marketingSellFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"wilsonSellFee","type":"uint256"}],"name":"UpdateSellFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWilsonWallet","type":"address"}],"name":"WilsonWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"Claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasuryWallet","type":"address"}],"name":"changeTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wilsonWallet","type":"address"}],"name":"changeWilsonWallet","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapWithLimit","type":"bool"}],"name":"setSwapWithLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapWithLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasurySellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryBuyFee","type":"uint256"},{"internalType":"uint256","name":"_wilsonBuyFee","type":"uint256"},{"internalType":"uint256","name":"_marketingBuyFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasurySellFee","type":"uint256"},{"internalType":"uint256","name":"_wilsonSellFee","type":"uint256"},{"internalType":"uint256","name":"_marketingSellFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateUniswapV2Router","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wilsonBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wilsonSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wilsonWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160068190556007819055600260088190556009819055600a819055600b556005600c819055600d55600e80546001600160a01b031990811673882a35de9b236eda98a58b6602603cf71cc7ae0c17909155600f8054821673ac7ea75c0f4fd54d2dbc4f3b65332613e8aba6ab17905560108054821673a981c08812e2dd6421147895b2803a46e8bdf48f1790556013805490911661dead1790556015805463ff0000ff19169091179055348015620000bd57600080fd5b5060405180604001604052806012815260200171416c70686120496e74656c6c6967656e636560701b8152506040518060400160405280600381526020016224414960e81b8152508160039081620001169190620007dc565b506004620001258282620007dc565b50505060006200013a6200043260201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002089190620008a8565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000256573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027c9190620008a8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f09190620008a8565b601180546001600160a01b038086166001600160a01b0319928316811790935560128054918516919092161790559091506200033190309060001962000436565b6200033e81600162000562565b600160166000620003576005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556013548216815260169093528183208054851660019081179091553084528284208054861682179055600f54821684528284208054861682179055601054821684528284208054861682179055600e549091168352912080549092161790556200040d620003fb6005546001600160a01b031690565b6a52b7d2dcc80cd2e40000006200064e565b6113886200041a60025490565b620004269190620008da565b60145550620009259050565b3390565b6001600160a01b0383166200049e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620005015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000495565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526017602052604090205481151560ff909116151503620005fa5760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c75650000000000000000606482015260840162000495565b6001600160a01b038216600081815260176020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620006a65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000495565b8060026000828254620006ba9190620008fd565b90915550506001600160a01b03821660009081526020819052604081208054839290620006e9908490620008fd565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200076357607f821691505b6020821081036200078457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200073357600081815260208120601f850160051c81016020861015620007b35750805b601f850160051c820191505b81811015620007d457828155600101620007bf565b505050505050565b81516001600160401b03811115620007f857620007f862000738565b62000810816200080984546200074e565b846200078a565b602080601f8311600181146200084857600084156200082f5750858301515b600019600386901b1c1916600185901b178555620007d4565b600085815260208120601f198616915b82811015620008795788860151825594840194600190910190840162000858565b5085821015620008985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008bb57600080fd5b81516001600160a01b0381168114620008d357600080fd5b9392505050565b600082620008f857634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200091f57634e487b7160e01b600052601160045260246000fd5b92915050565b61294880620009356000396000f3fe6080604052600436106102765760003560e01c8063715018a61161014f578063b62496f5116100c1578063e01af92c1161007a578063e01af92c146107a6578063e2f45605146107c6578063e57f14e1146107dc578063e7f444b3146107fc578063ed0d213714610812578063f2fde38b1461082857600080fd5b8063b62496f5146106ba578063bb85c6d1146106ea578063c17b5b8c1461070a578063c6b72ecf1461072a578063c860b00e14610740578063dd62ed3e1461076057600080fd5b806395d89b411161011357806395d89b4114610605578063966413b21461061a578063988be1181461063a578063a457c2d71461065a578063a9059cbb1461067a578063afa4f3b21461069a57600080fd5b8063715018a61461057d57806375f0a874146105925780638095d564146105b25780638a8c523c146105d25780638da5cb5b146105e757600080fd5b806339509351116101e85780634fbee193116101ac5780634fbee1931461049e578063537c1ac7146104d757806365b8dbc0146104f757806368078952146105175780636ddd17131461052d57806370a082311461054757600080fd5b806339509351146103fe5780634626402b1461041e578063488eb37f1461043e57806349bd5a5e1461045d5780634ada218b1461047d57600080fd5b806318160ddd1161023a57806318160ddd1461035757806323b872dd146103765780632610eaca146103965780632c10508c146103b6578063313ce567146103cc57806334a4f08f146103e857600080fd5b806306fdde0314610282578063095ea7b3146102ad5780630c7ef932146102dd5780631694505e146102ff57806316a2f82a1461033757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610848565b6040516102a49190612241565b60405180910390f35b3480156102b957600080fd5b506102cd6102c83660046122a4565b6108da565b60405190151581526020016102a4565b3480156102e957600080fd5b506102fd6102f83660046122d0565b6108f1565b005b34801561030b57600080fd5b5060115461031f906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b34801561034357600080fd5b506102fd6103523660046122d0565b610a4a565b34801561036357600080fd5b506002545b6040519081526020016102a4565b34801561038257600080fd5b506102cd6103913660046122f4565b610b49565b3480156103a257600080fd5b506102fd6103b136600461240b565b610bfa565b3480156103c257600080fd5b50610368600a5481565b3480156103d857600080fd5b50604051601281526020016102a4565b3480156103f457600080fd5b5061036860075481565b34801561040a57600080fd5b506102cd6104193660046122a4565b610d35565b34801561042a57600080fd5b5060105461031f906001600160a01b031681565b34801561044a57600080fd5b506015546102cd90610100900460ff1681565b34801561046957600080fd5b5060125461031f906001600160a01b031681565b34801561048957600080fd5b506015546102cd906301000000900460ff1681565b3480156104aa57600080fd5b506102cd6104b93660046122d0565b6001600160a01b031660009081526016602052604090205460ff1690565b3480156104e357600080fd5b506102fd6104f23660046122d0565b610d71565b34801561050357600080fd5b506102fd6105123660046122d0565b610e0b565b34801561052357600080fd5b5061036860085481565b34801561053957600080fd5b506015546102cd9060ff1681565b34801561055357600080fd5b506103686105623660046122d0565b6001600160a01b031660009081526020819052604090205490565b34801561058957600080fd5b506102fd611075565b34801561059e57600080fd5b50600f5461031f906001600160a01b031681565b3480156105be57600080fd5b506102fd6105cd3660046124cd565b6110e9565b3480156105de57600080fd5b506102fd6111e6565b3480156105f357600080fd5b506005546001600160a01b031661031f565b34801561061157600080fd5b5061029761131b565b34801561062657600080fd5b50600e5461031f906001600160a01b031681565b34801561064657600080fd5b506102fd610655366004612507565b61132a565b34801561066657600080fd5b506102cd6106753660046122a4565b6113e5565b34801561068657600080fd5b506102cd6106953660046122a4565b61147e565b3480156106a657600080fd5b506102fd6106b5366004612524565b61148b565b3480156106c657600080fd5b506102cd6106d53660046122d0565b60176020526000908152604090205460ff1681565b3480156106f657600080fd5b506102fd6107053660046122d0565b611539565b34801561071657600080fd5b506102fd6107253660046124cd565b6115d3565b34801561073657600080fd5b5061036860065481565b34801561074c57600080fd5b506102fd61075b3660046122d0565b6116c7565b34801561076c57600080fd5b5061036861077b36600461253d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107b257600080fd5b506102fd6107c1366004612507565b6117a1565b3480156107d257600080fd5b5061036860145481565b3480156107e857600080fd5b506102fd6107f73660046122d0565b611842565b34801561080857600080fd5b5061036860095481565b34801561081e57600080fd5b50610368600b5481565b34801561083457600080fd5b506102fd6108433660046122d0565b611943565b60606003805461085790612576565b80601f016020809104026020016040519081016040528092919081815260200182805461088390612576565b80156108d05780601f106108a5576101008083540402835291602001916108d0565b820191906000526020600020905b8154815290600101906020018083116108b357829003601f168201915b5050505050905090565b60006108e7338484611a2e565b5060015b92915050565b6005546001600160a01b031633146109245760405162461bcd60e51b815260040161091b906125b0565b60405180910390fd5b6001600160a01b0381166109625760405133904780156108fc02916000818181858888f1935050505015801561095e573d6000803e3d6000fd5b5050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf91906125e5565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4391906125fe565b5050505b50565b6005546001600160a01b03163314610a745760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b03811660009081526016602052604081205460ff1615159003610af35760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f662060448201526927696e636c756465642760b01b606482015260840161091b565b6001600160a01b0381166000818152601660209081526040808320805460ff19169055519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791015b60405180910390a250565b6001600160a01b03831660009081526001602090815260408083203384529091528120546000198114610be45782811015610bd75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161091b565b610be48533858403611a2e565b610bef858585611b52565b506001949350505050565b6005546001600160a01b03163314610c245760405162461bcd60e51b815260040161091b906125b0565b8051825114610c6d5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b604482015260640161091b565b60005b82518160ff161015610d3057818160ff1681518110610c9157610c9161261b565b6020026020010151610cb8336001600160a01b031660009081526020819052604090205490565b1015610cc357600080fd5b610d1e33848360ff1681518110610cdc57610cdc61261b565b60200260200101516012600a610cf2919061272b565b858560ff1681518110610d0757610d0761261b565b6020026020010151610d19919061273a565b6120ed565b80610d2881612751565b915050610c70565b505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108e7918590610d6c908690612770565b611a2e565b6005546001600160a01b03163314610d9b5760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b038116610dc15760405162461bcd60e51b815260040161091b90612783565b601080546001600160a01b0319166001600160a01b0383169081179091556040517f97c79b3848e51f57983ac89e4403452655c8d83ceba8199011de63a74f60d1a790600090a250565b6005546001600160a01b03163314610e355760405162461bcd60e51b815260040161091b906125b0565b6011546001600160a01b0390811690821603610e9f5760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b606482015260840161091b565b6011546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3601180546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290516000929163c45a01559160048083019260209291908290030181865afa158015610f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5a91906127c7565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe091906127c7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561102d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105191906127c7565b601280546001600160a01b0319166001600160a01b03929092169190911790555050565b6005546001600160a01b0316331461109f5760405162461bcd60e51b815260040161091b906125b0565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146111135760405162461bcd60e51b815260040161091b906125b0565b6009816111208486612770565b61112a9190612770565b11156111785760405162461bcd60e51b815260206004820152601a60248201527f46656573206d757374206265206c657373207468616e20313025000000000000604482015260640161091b565b600a83905560088190556006829055816111928285612770565b61119c9190612770565b600c5560408051848152602081018490529081018290527fef771cd1f65ae0d0bb1f243b74153b6559106206e6dbc387e6e219afd8a95cf4906060015b60405180910390a1505050565b6005546001600160a01b031633146112105760405162461bcd60e51b815260040161091b906125b0565b6015546301000000900460ff161561126a5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161091b565b6012546001600160a01b0316600090815260208190526040812054116112d25760405162461bcd60e51b815260206004820152601d60248201527f4c6971756964697479206d757374206265206164646564206669727374000000604482015260640161091b565b6015805463ff00000019166301000000179055604051600181527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b60606004805461085790612576565b6005546001600160a01b031633146113545760405162461bcd60e51b815260040161091b906125b0565b801515601560019054906101000a900460ff161515036113cb5760405162461bcd60e51b815260206004820152602c60248201527f537761702077697468206c696d697420697320616c726561647920736574207460448201526b6f207468617420737461746560a01b606482015260840161091b565b601580549115156101000261ff0019909216919091179055565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156114675760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161091b565b6114743385858403611a2e565b5060019392505050565b60006108e7338484611b52565b6005546001600160a01b031633146114b55760405162461bcd60e51b815260040161091b906125b0565b620f42406114c260025490565b6114cc91906127e4565b81116115345760405162461bcd60e51b815260206004820152603160248201527f4e657720416d6f756e74206d757374206d6f7265207468616e20302e3030303160448201527025206f6620746f74616c20737570706c7960781b606482015260840161091b565b601455565b6005546001600160a01b031633146115635760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b0381166115895760405162461bcd60e51b815260040161091b90612783565b600f80546001600160a01b0319166001600160a01b0383169081179091556040517fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e790600090a250565b6005546001600160a01b031633146115fd5760405162461bcd60e51b815260040161091b906125b0565b60098161160a8486612770565b6116149190612770565b11156116625760405162461bcd60e51b815260206004820152601a60248201527f46656573206d757374206265206c657373207468616e20313025000000000000604482015260640161091b565b600b839055600782905560098190558061167c8385612770565b6116869190612770565b600d5560408051848152602081018490529081018290527faaaabdccd2e271f505d88ba07f83d9f2d16e63dac9b7f725cfc8d9e05a33a6e6906060016111d9565b6005546001600160a01b031633146116f15760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b0381166117575760405162461bcd60e51b815260206004820152602760248201527f4f7065726174696f6e2077616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b606482015260840161091b565b600e80546001600160a01b0319166001600160a01b0383169081179091556040517f914826967e1e7b1ab8f8c3085083d804b8b952105434cd4b4cd90bd998b2814890600090a250565b6005546001600160a01b031633146117cb5760405162461bcd60e51b815260040161091b906125b0565b60155481151560ff90911615150361182f5760405162461bcd60e51b815260206004820152602160248201527f5377617020697320616c72656164792073657420746f207468617420737461746044820152606560f81b606482015260840161091b565b6015805460ff1916911515919091179055565b6005546001600160a01b0316331461186c5760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b03811660009081526016602052604090205460ff1615156001036118ec5760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b606482015260840161091b565b6001600160a01b038116600081815260166020908152604091829020805460ff1916600190811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610b3e565b6005546001600160a01b0316331461196d5760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b0381166119d25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091b565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611a905760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091b565b6001600160a01b038216611af15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611b785760405162461bcd60e51b815260040161091b90612806565b6001600160a01b038216611b9e5760405162461bcd60e51b815260040161091b9061284b565b80600003611bb257610d30838360006120ed565b6001600160a01b03831660009081526016602052604090205460ff16158015611bf457506001600160a01b03821660009081526016602052604090205460ff16155b15611c57576015546301000000900460ff161515600114611c575760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161091b565b30600090815260208190526040902054601454601554908210159060ff168015611c7e5750805b8015611c93575060155462010000900460ff16155b8015611cb757506001600160a01b03841660009081526017602052604090205460ff165b8015611cd257506000600d54600c54611cd09190612770565b115b15611fd7576015805462ff00001916620100001790819055610100900460ff1615611cfd5760145491505b6000600d54600c54611d0f9190612770565b90506000600b54600a54611d239190612770565b90506000600754600654611d379190612770565b90506000600954600854611d4b9190612770565b9050600086118015611d5b575060015b15611fc657604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110611d9957611d9961261b565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1691906127c7565b81600181518110611e2957611e2961261b565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611e6f908b9060009086903090429060040161288e565b600060405180830381600087803b158015611e8957600080fd5b505af1158015611e9d573d6000803e3d6000fd5b5050505060008247611eaf91906128ff565b90508515611f0c57600087611ec4888461273a565b611ece91906127e4565b6010546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611f09573d6000803e3d6000fd5b50505b8415611f6757600087611f1f878461273a565b611f2991906127e4565b600e546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611f64573d6000803e3d6000fd5b50505b8315611fc257600087611f7a868461273a565b611f8491906127e4565b600f546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611fbf573d6000803e3d6000fd5b50505b5050505b50506015805462ff00001916905550505b6015546001600160a01b03861660009081526016602052604090205460ff6201000090920482161591168061202457506001600160a01b03851660009081526016602052604090205460ff165b1561202d575060005b80801561205e57506012546001600160a01b038781169116148061205e57506012546001600160a01b038681169116145b156120da576012546000906001600160a01b03908116908816036120855750600c546120a0565b6012546001600160a01b03908116908716036120a05750600d545b600060646120ae838861273a565b6120b891906127e4565b90506120c481876128ff565b955080156120d7576120d78830836120ed565b50505b6120e58686866120ed565b505050505050565b6001600160a01b0383166121135760405162461bcd60e51b815260040161091b90612806565b6001600160a01b0382166121395760405162461bcd60e51b815260040161091b9061284b565b6001600160a01b038316600090815260208190526040902054818110156121b15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161091b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906121e8908490612770565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161223491815260200190565b60405180910390a3610a43565b600060208083528351808285015260005b8181101561226e57858101830151858201604001528201612252565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a4757600080fd5b600080604083850312156122b757600080fd5b82356122c28161228f565b946020939093013593505050565b6000602082840312156122e257600080fd5b81356122ed8161228f565b9392505050565b60008060006060848603121561230957600080fd5b83356123148161228f565b925060208401356123248161228f565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561237457612374612335565b604052919050565b600067ffffffffffffffff82111561239657612396612335565b5060051b60200190565b600082601f8301126123b157600080fd5b813560206123c66123c18361237c565b61234b565b82815260059290921b840181019181810190868411156123e557600080fd5b8286015b8481101561240057803583529183019183016123e9565b509695505050505050565b6000806040838503121561241e57600080fd5b823567ffffffffffffffff8082111561243657600080fd5b818501915085601f83011261244a57600080fd5b8135602061245a6123c18361237c565b82815260059290921b8401810191818101908984111561247957600080fd5b948201945b838610156124a05785356124918161228f565b8252948201949082019061247e565b965050860135925050808211156124b657600080fd5b506124c3858286016123a0565b9150509250929050565b6000806000606084860312156124e257600080fd5b505081359360208301359350604090920135919050565b8015158114610a4757600080fd5b60006020828403121561251957600080fd5b81356122ed816124f9565b60006020828403121561253657600080fd5b5035919050565b6000806040838503121561255057600080fd5b823561255b8161228f565b9150602083013561256b8161228f565b809150509250929050565b600181811c9082168061258a57607f821691505b6020821081036125aa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156125f757600080fd5b5051919050565b60006020828403121561261057600080fd5b81516122ed816124f9565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561268257816000190482111561266857612668612631565b8085161561267557918102915b93841c939080029061264c565b509250929050565b600082612699575060016108eb565b816126a6575060006108eb565b81600181146126bc57600281146126c6576126e2565b60019150506108eb565b60ff8411156126d7576126d7612631565b50506001821b6108eb565b5060208310610133831016604e8410600b8410161715612705575081810a6108eb565b61270f8383612647565b806000190482111561272357612723612631565b029392505050565b60006122ed60ff84168361268a565b80820281158282048414176108eb576108eb612631565b600060ff821660ff810361276757612767612631565b60010192915050565b808201808211156108eb576108eb612631565b60208082526024908201527f5265776172642077616c6c65742063616e6e6f74206265207a65726f206164646040820152637265737360e01b606082015260800190565b6000602082840312156127d957600080fd5b81516122ed8161228f565b60008261280157634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128de5784516001600160a01b0316835293830193918301916001016128b9565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156108eb576108eb61263156fea264697066735822122018fdcdfbff2eea4487d6fb62b16c0967df6f9fecdcececd0ce6be114572fbd3664736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102765760003560e01c8063715018a61161014f578063b62496f5116100c1578063e01af92c1161007a578063e01af92c146107a6578063e2f45605146107c6578063e57f14e1146107dc578063e7f444b3146107fc578063ed0d213714610812578063f2fde38b1461082857600080fd5b8063b62496f5146106ba578063bb85c6d1146106ea578063c17b5b8c1461070a578063c6b72ecf1461072a578063c860b00e14610740578063dd62ed3e1461076057600080fd5b806395d89b411161011357806395d89b4114610605578063966413b21461061a578063988be1181461063a578063a457c2d71461065a578063a9059cbb1461067a578063afa4f3b21461069a57600080fd5b8063715018a61461057d57806375f0a874146105925780638095d564146105b25780638a8c523c146105d25780638da5cb5b146105e757600080fd5b806339509351116101e85780634fbee193116101ac5780634fbee1931461049e578063537c1ac7146104d757806365b8dbc0146104f757806368078952146105175780636ddd17131461052d57806370a082311461054757600080fd5b806339509351146103fe5780634626402b1461041e578063488eb37f1461043e57806349bd5a5e1461045d5780634ada218b1461047d57600080fd5b806318160ddd1161023a57806318160ddd1461035757806323b872dd146103765780632610eaca146103965780632c10508c146103b6578063313ce567146103cc57806334a4f08f146103e857600080fd5b806306fdde0314610282578063095ea7b3146102ad5780630c7ef932146102dd5780631694505e146102ff57806316a2f82a1461033757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610848565b6040516102a49190612241565b60405180910390f35b3480156102b957600080fd5b506102cd6102c83660046122a4565b6108da565b60405190151581526020016102a4565b3480156102e957600080fd5b506102fd6102f83660046122d0565b6108f1565b005b34801561030b57600080fd5b5060115461031f906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b34801561034357600080fd5b506102fd6103523660046122d0565b610a4a565b34801561036357600080fd5b506002545b6040519081526020016102a4565b34801561038257600080fd5b506102cd6103913660046122f4565b610b49565b3480156103a257600080fd5b506102fd6103b136600461240b565b610bfa565b3480156103c257600080fd5b50610368600a5481565b3480156103d857600080fd5b50604051601281526020016102a4565b3480156103f457600080fd5b5061036860075481565b34801561040a57600080fd5b506102cd6104193660046122a4565b610d35565b34801561042a57600080fd5b5060105461031f906001600160a01b031681565b34801561044a57600080fd5b506015546102cd90610100900460ff1681565b34801561046957600080fd5b5060125461031f906001600160a01b031681565b34801561048957600080fd5b506015546102cd906301000000900460ff1681565b3480156104aa57600080fd5b506102cd6104b93660046122d0565b6001600160a01b031660009081526016602052604090205460ff1690565b3480156104e357600080fd5b506102fd6104f23660046122d0565b610d71565b34801561050357600080fd5b506102fd6105123660046122d0565b610e0b565b34801561052357600080fd5b5061036860085481565b34801561053957600080fd5b506015546102cd9060ff1681565b34801561055357600080fd5b506103686105623660046122d0565b6001600160a01b031660009081526020819052604090205490565b34801561058957600080fd5b506102fd611075565b34801561059e57600080fd5b50600f5461031f906001600160a01b031681565b3480156105be57600080fd5b506102fd6105cd3660046124cd565b6110e9565b3480156105de57600080fd5b506102fd6111e6565b3480156105f357600080fd5b506005546001600160a01b031661031f565b34801561061157600080fd5b5061029761131b565b34801561062657600080fd5b50600e5461031f906001600160a01b031681565b34801561064657600080fd5b506102fd610655366004612507565b61132a565b34801561066657600080fd5b506102cd6106753660046122a4565b6113e5565b34801561068657600080fd5b506102cd6106953660046122a4565b61147e565b3480156106a657600080fd5b506102fd6106b5366004612524565b61148b565b3480156106c657600080fd5b506102cd6106d53660046122d0565b60176020526000908152604090205460ff1681565b3480156106f657600080fd5b506102fd6107053660046122d0565b611539565b34801561071657600080fd5b506102fd6107253660046124cd565b6115d3565b34801561073657600080fd5b5061036860065481565b34801561074c57600080fd5b506102fd61075b3660046122d0565b6116c7565b34801561076c57600080fd5b5061036861077b36600461253d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107b257600080fd5b506102fd6107c1366004612507565b6117a1565b3480156107d257600080fd5b5061036860145481565b3480156107e857600080fd5b506102fd6107f73660046122d0565b611842565b34801561080857600080fd5b5061036860095481565b34801561081e57600080fd5b50610368600b5481565b34801561083457600080fd5b506102fd6108433660046122d0565b611943565b60606003805461085790612576565b80601f016020809104026020016040519081016040528092919081815260200182805461088390612576565b80156108d05780601f106108a5576101008083540402835291602001916108d0565b820191906000526020600020905b8154815290600101906020018083116108b357829003601f168201915b5050505050905090565b60006108e7338484611a2e565b5060015b92915050565b6005546001600160a01b031633146109245760405162461bcd60e51b815260040161091b906125b0565b60405180910390fd5b6001600160a01b0381166109625760405133904780156108fc02916000818181858888f1935050505015801561095e573d6000803e3d6000fd5b5050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf91906125e5565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4391906125fe565b5050505b50565b6005546001600160a01b03163314610a745760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b03811660009081526016602052604081205460ff1615159003610af35760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f662060448201526927696e636c756465642760b01b606482015260840161091b565b6001600160a01b0381166000818152601660209081526040808320805460ff19169055519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791015b60405180910390a250565b6001600160a01b03831660009081526001602090815260408083203384529091528120546000198114610be45782811015610bd75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161091b565b610be48533858403611a2e565b610bef858585611b52565b506001949350505050565b6005546001600160a01b03163314610c245760405162461bcd60e51b815260040161091b906125b0565b8051825114610c6d5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b604482015260640161091b565b60005b82518160ff161015610d3057818160ff1681518110610c9157610c9161261b565b6020026020010151610cb8336001600160a01b031660009081526020819052604090205490565b1015610cc357600080fd5b610d1e33848360ff1681518110610cdc57610cdc61261b565b60200260200101516012600a610cf2919061272b565b858560ff1681518110610d0757610d0761261b565b6020026020010151610d19919061273a565b6120ed565b80610d2881612751565b915050610c70565b505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108e7918590610d6c908690612770565b611a2e565b6005546001600160a01b03163314610d9b5760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b038116610dc15760405162461bcd60e51b815260040161091b90612783565b601080546001600160a01b0319166001600160a01b0383169081179091556040517f97c79b3848e51f57983ac89e4403452655c8d83ceba8199011de63a74f60d1a790600090a250565b6005546001600160a01b03163314610e355760405162461bcd60e51b815260040161091b906125b0565b6011546001600160a01b0390811690821603610e9f5760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b606482015260840161091b565b6011546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3601180546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290516000929163c45a01559160048083019260209291908290030181865afa158015610f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5a91906127c7565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe091906127c7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561102d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105191906127c7565b601280546001600160a01b0319166001600160a01b03929092169190911790555050565b6005546001600160a01b0316331461109f5760405162461bcd60e51b815260040161091b906125b0565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146111135760405162461bcd60e51b815260040161091b906125b0565b6009816111208486612770565b61112a9190612770565b11156111785760405162461bcd60e51b815260206004820152601a60248201527f46656573206d757374206265206c657373207468616e20313025000000000000604482015260640161091b565b600a83905560088190556006829055816111928285612770565b61119c9190612770565b600c5560408051848152602081018490529081018290527fef771cd1f65ae0d0bb1f243b74153b6559106206e6dbc387e6e219afd8a95cf4906060015b60405180910390a1505050565b6005546001600160a01b031633146112105760405162461bcd60e51b815260040161091b906125b0565b6015546301000000900460ff161561126a5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161091b565b6012546001600160a01b0316600090815260208190526040812054116112d25760405162461bcd60e51b815260206004820152601d60248201527f4c6971756964697479206d757374206265206164646564206669727374000000604482015260640161091b565b6015805463ff00000019166301000000179055604051600181527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b60606004805461085790612576565b6005546001600160a01b031633146113545760405162461bcd60e51b815260040161091b906125b0565b801515601560019054906101000a900460ff161515036113cb5760405162461bcd60e51b815260206004820152602c60248201527f537761702077697468206c696d697420697320616c726561647920736574207460448201526b6f207468617420737461746560a01b606482015260840161091b565b601580549115156101000261ff0019909216919091179055565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156114675760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161091b565b6114743385858403611a2e565b5060019392505050565b60006108e7338484611b52565b6005546001600160a01b031633146114b55760405162461bcd60e51b815260040161091b906125b0565b620f42406114c260025490565b6114cc91906127e4565b81116115345760405162461bcd60e51b815260206004820152603160248201527f4e657720416d6f756e74206d757374206d6f7265207468616e20302e3030303160448201527025206f6620746f74616c20737570706c7960781b606482015260840161091b565b601455565b6005546001600160a01b031633146115635760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b0381166115895760405162461bcd60e51b815260040161091b90612783565b600f80546001600160a01b0319166001600160a01b0383169081179091556040517fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e790600090a250565b6005546001600160a01b031633146115fd5760405162461bcd60e51b815260040161091b906125b0565b60098161160a8486612770565b6116149190612770565b11156116625760405162461bcd60e51b815260206004820152601a60248201527f46656573206d757374206265206c657373207468616e20313025000000000000604482015260640161091b565b600b839055600782905560098190558061167c8385612770565b6116869190612770565b600d5560408051848152602081018490529081018290527faaaabdccd2e271f505d88ba07f83d9f2d16e63dac9b7f725cfc8d9e05a33a6e6906060016111d9565b6005546001600160a01b031633146116f15760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b0381166117575760405162461bcd60e51b815260206004820152602760248201527f4f7065726174696f6e2077616c6c65742063616e6e6f74206265207a65726f206044820152666164647265737360c81b606482015260840161091b565b600e80546001600160a01b0319166001600160a01b0383169081179091556040517f914826967e1e7b1ab8f8c3085083d804b8b952105434cd4b4cd90bd998b2814890600090a250565b6005546001600160a01b031633146117cb5760405162461bcd60e51b815260040161091b906125b0565b60155481151560ff90911615150361182f5760405162461bcd60e51b815260206004820152602160248201527f5377617020697320616c72656164792073657420746f207468617420737461746044820152606560f81b606482015260840161091b565b6015805460ff1916911515919091179055565b6005546001600160a01b0316331461186c5760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b03811660009081526016602052604090205460ff1615156001036118ec5760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b606482015260840161091b565b6001600160a01b038116600081815260166020908152604091829020805460ff1916600190811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610b3e565b6005546001600160a01b0316331461196d5760405162461bcd60e51b815260040161091b906125b0565b6001600160a01b0381166119d25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091b565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611a905760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091b565b6001600160a01b038216611af15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611b785760405162461bcd60e51b815260040161091b90612806565b6001600160a01b038216611b9e5760405162461bcd60e51b815260040161091b9061284b565b80600003611bb257610d30838360006120ed565b6001600160a01b03831660009081526016602052604090205460ff16158015611bf457506001600160a01b03821660009081526016602052604090205460ff16155b15611c57576015546301000000900460ff161515600114611c575760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161091b565b30600090815260208190526040902054601454601554908210159060ff168015611c7e5750805b8015611c93575060155462010000900460ff16155b8015611cb757506001600160a01b03841660009081526017602052604090205460ff165b8015611cd257506000600d54600c54611cd09190612770565b115b15611fd7576015805462ff00001916620100001790819055610100900460ff1615611cfd5760145491505b6000600d54600c54611d0f9190612770565b90506000600b54600a54611d239190612770565b90506000600754600654611d379190612770565b90506000600954600854611d4b9190612770565b9050600086118015611d5b575060015b15611fc657604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110611d9957611d9961261b565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1691906127c7565b81600181518110611e2957611e2961261b565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611e6f908b9060009086903090429060040161288e565b600060405180830381600087803b158015611e8957600080fd5b505af1158015611e9d573d6000803e3d6000fd5b5050505060008247611eaf91906128ff565b90508515611f0c57600087611ec4888461273a565b611ece91906127e4565b6010546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611f09573d6000803e3d6000fd5b50505b8415611f6757600087611f1f878461273a565b611f2991906127e4565b600e546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611f64573d6000803e3d6000fd5b50505b8315611fc257600087611f7a868461273a565b611f8491906127e4565b600f546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611fbf573d6000803e3d6000fd5b50505b5050505b50506015805462ff00001916905550505b6015546001600160a01b03861660009081526016602052604090205460ff6201000090920482161591168061202457506001600160a01b03851660009081526016602052604090205460ff165b1561202d575060005b80801561205e57506012546001600160a01b038781169116148061205e57506012546001600160a01b038681169116145b156120da576012546000906001600160a01b03908116908816036120855750600c546120a0565b6012546001600160a01b03908116908716036120a05750600d545b600060646120ae838861273a565b6120b891906127e4565b90506120c481876128ff565b955080156120d7576120d78830836120ed565b50505b6120e58686866120ed565b505050505050565b6001600160a01b0383166121135760405162461bcd60e51b815260040161091b90612806565b6001600160a01b0382166121395760405162461bcd60e51b815260040161091b9061284b565b6001600160a01b038316600090815260208190526040902054818110156121b15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161091b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906121e8908490612770565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161223491815260200190565b60405180910390a3610a43565b600060208083528351808285015260005b8181101561226e57858101830151858201604001528201612252565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a4757600080fd5b600080604083850312156122b757600080fd5b82356122c28161228f565b946020939093013593505050565b6000602082840312156122e257600080fd5b81356122ed8161228f565b9392505050565b60008060006060848603121561230957600080fd5b83356123148161228f565b925060208401356123248161228f565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561237457612374612335565b604052919050565b600067ffffffffffffffff82111561239657612396612335565b5060051b60200190565b600082601f8301126123b157600080fd5b813560206123c66123c18361237c565b61234b565b82815260059290921b840181019181810190868411156123e557600080fd5b8286015b8481101561240057803583529183019183016123e9565b509695505050505050565b6000806040838503121561241e57600080fd5b823567ffffffffffffffff8082111561243657600080fd5b818501915085601f83011261244a57600080fd5b8135602061245a6123c18361237c565b82815260059290921b8401810191818101908984111561247957600080fd5b948201945b838610156124a05785356124918161228f565b8252948201949082019061247e565b965050860135925050808211156124b657600080fd5b506124c3858286016123a0565b9150509250929050565b6000806000606084860312156124e257600080fd5b505081359360208301359350604090920135919050565b8015158114610a4757600080fd5b60006020828403121561251957600080fd5b81356122ed816124f9565b60006020828403121561253657600080fd5b5035919050565b6000806040838503121561255057600080fd5b823561255b8161228f565b9150602083013561256b8161228f565b809150509250929050565b600181811c9082168061258a57607f821691505b6020821081036125aa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156125f757600080fd5b5051919050565b60006020828403121561261057600080fd5b81516122ed816124f9565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561268257816000190482111561266857612668612631565b8085161561267557918102915b93841c939080029061264c565b509250929050565b600082612699575060016108eb565b816126a6575060006108eb565b81600181146126bc57600281146126c6576126e2565b60019150506108eb565b60ff8411156126d7576126d7612631565b50506001821b6108eb565b5060208310610133831016604e8410600b8410161715612705575081810a6108eb565b61270f8383612647565b806000190482111561272357612723612631565b029392505050565b60006122ed60ff84168361268a565b80820281158282048414176108eb576108eb612631565b600060ff821660ff810361276757612767612631565b60010192915050565b808201808211156108eb576108eb612631565b60208082526024908201527f5265776172642077616c6c65742063616e6e6f74206265207a65726f206164646040820152637265737360e01b606082015260800190565b6000602082840312156127d957600080fd5b81516122ed8161228f565b60008261280157634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128de5784516001600160a01b0316835293830193918301916001016128b9565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156108eb576108eb61263156fea264697066735822122018fdcdfbff2eea4487d6fb62b16c0967df6f9fecdcececd0ce6be114572fbd3664736f6c63430008110033

Deployed Bytecode Sourcemap

15408:11765:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2736:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3650:169;;;;;;;;;;-1:-1:-1;3650:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3650:169:0;1023:187:1;18491:352:0;;;;;;;;;;-1:-1:-1;18491:352:0;;;;;:::i;:::-;;:::i;:::-;;16040:41;;;;;;;;;;-1:-1:-1;16040:41:0;;;;-1:-1:-1;;;;;16040:41:0;;;;;;-1:-1:-1;;;;;1658:32:1;;;1640:51;;1628:2;1613:18;16040:41:0;1467:230:1;19948:266:0;;;;;;;;;;-1:-1:-1;19948:266:0;;;;;:::i;:::-;;:::i;3057:108::-;;;;;;;;;;-1:-1:-1;3145:12:0;;3057:108;;;1848:25:1;;;1836:2;1821:18;3057:108:0;1702:177:1;3827:573:0;;;;;;;;;;-1:-1:-1;3827:573:0;;;;;:::i;:::-;;:::i;26772:390::-;;;;;;;;;;-1:-1:-1;26772:390:0;;;;;:::i;:::-;;:::i;15630:34::-;;;;;;;;;;;;;;;;2956:93;;;;;;;;;;-1:-1:-1;2956:93:0;;3039:2;4974:36:1;;4962:2;4947:18;2956:93:0;4832:184:1;15500:33:0;;;;;;;;;;;;;;;;4408:215;;;;;;;;;;-1:-1:-1;4408:215:0;;;;;:::i;:::-;;:::i;15957:74::-;;;;;;;;;;-1:-1:-1;15957:74:0;;;;-1:-1:-1;;;;;15957:74:0;;;16328:28;;;;;;;;;;-1:-1:-1;16328:28:0;;;;;;;;;;;16088:29;;;;;;;;;;-1:-1:-1;16088:29:0;;;;-1:-1:-1;;;;;16088:29:0;;;16394:37;;;;;;;;;;-1:-1:-1;16394:37:0;;;;;;;;;;;20222:125;;;;;;;;;;-1:-1:-1;20222:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;20311:28:0;20287:4;20311:28;;;:19;:28;;;;;;;;;20222:125;22048:268;;;;;;;;;;-1:-1:-1;22048:268:0;;;;;:::i;:::-;;:::i;18851:494::-;;;;;;;;;;-1:-1:-1;18851:494:0;;;;;:::i;:::-;;:::i;15542:36::-;;;;;;;;;;;;;;;;16288:33;;;;;;;;;;-1:-1:-1;16288:33:0;;;;;;;;3173:127;;;;;;;;;;-1:-1:-1;3173:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3274:18:0;3247:7;3274:18;;;;;;;;;;;;3173:127;1923:148;;;;;;;;;;;;;:::i;15875:75::-;;;;;;;;;;-1:-1:-1;15875:75:0;;;;-1:-1:-1;;;;;15875:75:0;;;20355:550;;;;;;;;;;-1:-1:-1;20355:550:0;;;;;:::i;:::-;;:::i;22329:266::-;;;;;;;;;;;;;:::i;1709:79::-;;;;;;;;;;-1:-1:-1;1774:6:0;;-1:-1:-1;;;;;1774:6:0;1709:79;;2844:104;;;;;;;;;;;;;:::i;15796:72::-;;;;;;;;;;-1:-1:-1;15796:72:0;;;;-1:-1:-1;;;;;15796:72:0;;;26507:252;;;;;;;;;;-1:-1:-1;26507:252:0;;;;;:::i;:::-;;:::i;4631:413::-;;;;;;;;;;-1:-1:-1;4631:413:0;;;;;:::i;:::-;;:::i;3308:175::-;;;;;;;;;;-1:-1:-1;3308:175:0;;;;;:::i;:::-;;:::i;26233:266::-;;;;;;;;;;-1:-1:-1;26233:266:0;;;;;:::i;:::-;;:::i;16500:58::-;;;;;;;;;;-1:-1:-1;16500:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21764:275;;;;;;;;;;-1:-1:-1;21764:275:0;;;;;:::i;:::-;;:::i;20913:570::-;;;;;;;;;;-1:-1:-1;20913:570:0;;;;;:::i;:::-;;:::i;15460:33::-;;;;;;;;;;;;;;;;21493:257;;;;;;;;;;-1:-1:-1;21493:257:0;;;;;:::i;:::-;;:::i;3491:151::-;;;;;;;;;;-1:-1:-1;3491:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3607:18:0;;;3580:7;3607:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3491:151;25996:229;;;;;;;;;;-1:-1:-1;25996:229:0;;;;;:::i;:::-;;:::i;16248:33::-;;;;;;;;;;;;;;;;19675:265;;;;;;;;;;-1:-1:-1;19675:265:0;;;;;:::i;:::-;;:::i;15585:36::-;;;;;;;;;;;;;;;;15671:34;;;;;;;;;;;;;;;;2079:244;;;;;;;;;;-1:-1:-1;2079:244:0;;;;;:::i;:::-;;:::i;2736:100::-;2790:13;2823:5;2816:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2736:100;:::o;3650:169::-;3733:4;3750:39;1112:10;3773:7;3782:6;3750:8;:39::i;:::-;-1:-1:-1;3807:4:0;3650:169;;;;;:::o;18491:352::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;18555:21:0;::::1;18551:126;;18593:51;::::0;18601:10:::1;::::0;18622:21:::1;18593:51:::0;::::1;;;::::0;::::1;::::0;;;18622:21;18601:10;18593:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18491:352:::0;:::o;18551:126::-:1;18749:35;::::0;-1:-1:-1;;;18749:35:0;;18778:4:::1;18749:35;::::0;::::1;1640:51:1::0;18714:5:0;;18687:17:::1;::::0;-1:-1:-1;;;;;18749:20:0;::::1;::::0;::::1;::::0;1613:18:1;;18749:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18795:40;::::0;-1:-1:-1;;;18795:40:0;;18815:10:::1;18795:40;::::0;::::1;7606:51:1::0;7673:18;;;7666:34;;;18731:53:0;;-1:-1:-1;;;;;;18795:19:0;::::1;::::0;::::1;::::0;7579:18:1;;18795:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18540:303;;1906:1;18491:352:::0;:::o;19948:266::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20026:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;::::1;;:37;;::::0;;20018:92:::1;;;::::0;-1:-1:-1;;;20018:92:0;;8163:2:1;20018:92:0::1;::::0;::::1;8145:21:1::0;8202:2;8182:18;;;8175:30;8241:34;8221:18;;;8214:62;-1:-1:-1;;;8292:18:1;;;8285:40;8342:19;;20018:92:0::1;7961:406:1::0;20018:92:0::1;-1:-1:-1::0;;;;;20121:28:0;::::1;20152:5;20121:28:::0;;;:19:::1;:28;::::0;;;;;;;:36;;-1:-1:-1;;20121:36:0::1;::::0;;20175:31;1163:41:1;;;20175:31:0::1;::::0;1136:18:1;20175:31:0::1;;;;;;;;19948:266:::0;:::o;3827:573::-;-1:-1:-1;;;;;4011:19:0;;3967:4;4011:19;;;:11;:19;;;;;;;;1112:10;4011:33;;;;;;;;-1:-1:-1;;4059:37:0;;4055:265;;4141:6;4121:16;:26;;4113:79;;;;-1:-1:-1;;;4113:79:0;;8574:2:1;4113:79:0;;;8556:21:1;8613:2;8593:18;;;8586:30;8652:34;8632:18;;;8625:62;-1:-1:-1;;;8703:18:1;;;8696:38;8751:19;;4113:79:0;8372:404:1;4113:79:0;4236:57;4245:6;1112:10;4286:6;4267:16;:25;4236:8;:57::i;:::-;4332:36;4342:6;4350:9;4361:6;4332:9;:36::i;:::-;-1:-1:-1;4388:4:0;;3827:573;-1:-1:-1;;;;3827:573:0:o;26772:390::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;26907:7:::1;:14;26888:8;:15;:33;26880:67;;;::::0;-1:-1:-1;;;26880:67:0;;8983:2:1;26880:67:0::1;::::0;::::1;8965:21:1::0;9022:2;9002:18;;;8995:30;-1:-1:-1;;;9041:18:1;;;9034:51;9102:18;;26880:67:0::1;8781:345:1::0;26880:67:0::1;26963:7;26958:197;26980:8;:15;26976:1;:19;;;26958:197;;;27050:7;27058:1;27050:10;;;;;;;;;;:::i;:::-;;;;;;;27025:21;27035:10;-1:-1:-1::0;;;;;3274:18:0;3247:7;3274:18;;;;;;;;;;;;3173:127;27025:21:::1;:35;;27017:44;;;::::0;::::1;;27076:67;27092:10;27105:8;27114:1;27105:11;;;;;;;;;;:::i;:::-;;;;;;;16239:2;27129;:13;;;;:::i;:::-;27118:7;27126:1;27118:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;27076:15;:67::i;:::-;26997:3:::0;::::1;::::0;::::1;:::i;:::-;;;;26958:197;;;;26772:390:::0;;:::o;4408:215::-;1112:10;4496:4;4545:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4545:34:0;;;;;;;;;;4496:4;;4513:80;;4536:7;;4545:47;;4582:10;;4545:47;:::i;:::-;4513:8;:80::i;22048:268::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22141:29:0;::::1;22133:78;;;;-1:-1:-1::0;;;22133:78:0::1;;;;;;;:::i;:::-;22222:14;:32:::0;;-1:-1:-1;;;;;;22222:32:0::1;-1:-1:-1::0;;;;;22222:32:0;::::1;::::0;;::::1;::::0;;;22270:38:::1;::::0;::::1;::::0;-1:-1:-1;;22270:38:0::1;22048:268:::0;:::o;18851:494::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;18962:15:::1;::::0;-1:-1:-1;;;;;18962:15:0;;::::1;18940:38:::0;;::::1;::::0;18932:86:::1;;;::::0;-1:-1:-1;;;18932:86:0;;11868:2:1;18932:86:0::1;::::0;::::1;11850:21:1::0;11907:2;11887:18;;;11880:30;11946:34;11926:18;;;11919:62;-1:-1:-1;;;11997:18:1;;;11990:33;12040:19;;18932:86:0::1;11666:399:1::0;18932:86:0::1;19076:15;::::0;19034:59:::1;::::0;-1:-1:-1;;;;;19076:15:0;;::::1;::::0;19034:59;::::1;::::0;::::1;::::0;19076:15:::1;::::0;19034:59:::1;19104:15;:48:::0;;-1:-1:-1;;;;;;19104:48:0::1;-1:-1:-1::0;;;;;19104:48:0;::::1;::::0;;::::1;::::0;;;19206:25:::1;::::0;;-1:-1:-1;;;19206:25:0;;;;-1:-1:-1;;19104:48:0;19206:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;19104:48;19206:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19188:69:0::1;;19266:4;19273:15;;;;;;;;;-1:-1:-1::0;;;;;19273:15:0::1;-1:-1:-1::0;;;;;19273:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19188:108;::::0;-1:-1:-1;;;;;;19188:108:0::1;::::0;;;;;;-1:-1:-1;;;;;12556:15:1;;;19188:108:0::1;::::0;::::1;12538:34:1::0;12608:15;;12588:18;;;12581:43;12473:18;;19188:108:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19307:13;:30:::0;;-1:-1:-1;;;;;;19307:30:0::1;-1:-1:-1::0;;;;;19307:30:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;18851:494:0:o;1923:148::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;2014:6:::1;::::0;1993:40:::1;::::0;2030:1:::1;::::0;-1:-1:-1;;;;;2014:6:0::1;::::0;1993:40:::1;::::0;2030:1;;1993:40:::1;2044:6;:19:::0;;-1:-1:-1;;;;;;2044:19:0::1;::::0;;1923:148::o;20355:550::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;20559:1:::1;20539:16:::0;20504:31:::1;20522:13:::0;20504:15;:31:::1;:::i;:::-;:51;;;;:::i;:::-;:56;;20482:132;;;::::0;-1:-1:-1;;;20482:132:0;;12837:2:1;20482:132:0::1;::::0;::::1;12819:21:1::0;12876:2;12856:18;;;12849:30;12915:28;12895:18;;;12888:56;12961:18;;20482:132:0::1;12635:350:1::0;20482:132:0::1;20625:14;:32:::0;;;20668:15:::1;:34:::0;;;20713:12:::1;:28:::0;;;20728:13;20771:32:::1;20686:16:::0;20642:15;20771:32:::1;:::i;:::-;:47;;;;:::i;:::-;20754:12;:64:::0;20834:63:::1;::::0;;13192:25:1;;;13248:2;13233:18;;13226:34;;;13276:18;;;13269:34;;;20834:63:0::1;::::0;13180:2:1;13165:18;20834:63:0::1;;;;;;;;20355:550:::0;;;:::o;22329:266::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;22393:14:::1;::::0;;;::::1;;;22392:15;22384:54;;;::::0;-1:-1:-1;;;22384:54:0;;13516:2:1;22384:54:0::1;::::0;::::1;13498:21:1::0;13555:2;13535:18;;;13528:30;13594:28;13574:18;;;13567:56;13640:18;;22384:54:0::1;13314:350:1::0;22384:54:0::1;22467:13;::::0;-1:-1:-1;;;;;22467:13:0::1;22484:1;3274:18:::0;;;;;;;;;;;22457:28:::1;22449:70;;;::::0;-1:-1:-1;;;22449:70:0;;13871:2:1;22449:70:0::1;::::0;::::1;13853:21:1::0;13910:2;13890:18;;;13883:30;13949:31;13929:18;;;13922:59;13998:18;;22449:70:0::1;13669:353:1::0;22449:70:0::1;22530:14;:21:::0;;-1:-1:-1;;22530:21:0::1;::::0;::::1;::::0;;22567:20:::1;::::0;-1:-1:-1;1163:41:1;;22567:20:0::1;::::0;1151:2:1;1136:18;22567:20:0::1;;;;;;;22329:266::o:0;2844:104::-;2900:13;2933:7;2926:14;;;;;:::i;26507:252::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;26623:14:::1;26606:31;;:13;;;;;;;;;;;:31;;::::0;26584:126:::1;;;::::0;-1:-1:-1;;;26584:126:0;;14229:2:1;26584:126:0::1;::::0;::::1;14211:21:1::0;14268:2;14248:18;;;14241:30;14307:34;14287:18;;;14280:62;-1:-1:-1;;;14358:18:1;;;14351:42;14410:19;;26584:126:0::1;14027:408:1::0;26584:126:0::1;26721:13;:30:::0;;;::::1;;;;-1:-1:-1::0;;26721:30:0;;::::1;::::0;;;::::1;::::0;;26507:252::o;4631:413::-;1112:10;4724:4;4768:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4768:34:0;;;;;;;;;;4821:35;;;;4813:85;;;;-1:-1:-1;;;4813:85:0;;14642:2:1;4813:85:0;;;14624:21:1;14681:2;14661:18;;;14654:30;14720:34;14700:18;;;14693:62;-1:-1:-1;;;14771:18:1;;;14764:35;14816:19;;4813:85:0;14440:401:1;4813:85:0;4934:67;1112:10;4957:7;4985:15;4966:16;:34;4934:8;:67::i;:::-;-1:-1:-1;5032:4:0;;4631:413;-1:-1:-1;;;4631:413:0:o;3308:175::-;3394:4;3411:42;1112:10;3435:9;3446:6;3411:9;:42::i;26233:266::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;26363:9:::1;26347:13;3145:12:::0;;;3057:108;26347:13:::1;:25;;;;:::i;:::-;26335:9;:37;26313:137;;;::::0;-1:-1:-1;;;26313:137:0;;15270:2:1;26313:137:0::1;::::0;::::1;15252:21:1::0;15309:2;15289:18;;;15282:30;15348:34;15328:18;;;15321:62;-1:-1:-1;;;15399:18:1;;;15392:47;15456:19;;26313:137:0::1;15068:413:1::0;26313:137:0::1;26461:18;:30:::0;26233:266::o;21764:275::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21859:30:0;::::1;21851:79;;;;-1:-1:-1::0;;;21851:79:0::1;;;;;;;:::i;:::-;21941:15;:34:::0;;-1:-1:-1;;;;;;21941:34:0::1;-1:-1:-1::0;;;;;21941:34:0;::::1;::::0;;::::1;::::0;;;21991:40:::1;::::0;::::1;::::0;-1:-1:-1;;21991:40:0::1;21764:275:::0;:::o;20913:570::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;21123:1:::1;21102:17:::0;21066:33:::1;21085:14:::0;21066:16;:33:::1;:::i;:::-;:53;;;;:::i;:::-;:58;;21044:134;;;::::0;-1:-1:-1;;;21044:134:0;;12837:2:1;21044:134:0::1;::::0;::::1;12819:21:1::0;12876:2;12856:18;;;12849:30;12915:28;12895:18;;;12888:56;12961:18;;21044:134:0::1;12635:350:1::0;21044:134:0::1;21189:15;:34:::0;;;21234:13:::1;:30:::0;;;21275:16:::1;:36:::0;;;21294:17;21342:31:::1;21250:14:::0;21207:16;21342:31:::1;:::i;:::-;:50;;;;:::i;:::-;21324:13;:68:::0;21408:67:::1;::::0;;13192:25:1;;;13248:2;13233:18;;13226:34;;;13276:18;;;13269:34;;;21408:67:0::1;::::0;13180:2:1;13165:18;21408:67:0::1;12990:319:1::0;21493:257:0;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21582:27:0;::::1;21574:79;;;::::0;-1:-1:-1;;;21574:79:0;;15688:2:1;21574:79:0::1;::::0;::::1;15670:21:1::0;15727:2;15707:18;;;15700:30;15766:34;15746:18;;;15739:62;-1:-1:-1;;;15817:18:1;;;15810:37;15864:19;;21574:79:0::1;15486:403:1::0;21574:79:0::1;21664:12;:28:::0;;-1:-1:-1;;;;;;21664:28:0::1;-1:-1:-1::0;;;;;21664:28:0;::::1;::::0;;::::1;::::0;;;21708:34:::1;::::0;::::1;::::0;-1:-1:-1;;21708:34:0::1;21493:257:::0;:::o;25996:229::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;26091:11:::1;::::0;:27;::::1;;:11;::::0;;::::1;:27;;::::0;26069:111:::1;;;::::0;-1:-1:-1;;;26069:111:0;;16096:2:1;26069:111:0::1;::::0;::::1;16078:21:1::0;16135:2;16115:18;;;16108:30;16174:34;16154:18;;;16147:62;-1:-1:-1;;;16225:18:1;;;16218:31;16266:19;;26069:111:0::1;15894:397:1::0;26069:111:0::1;26191:11;:26:::0;;-1:-1:-1;;26191:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25996:229::o;19675:265::-;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19755:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;::::1;;:36;;:28:::0;:36;19747:91:::1;;;::::0;-1:-1:-1;;;19747:91:0;;16498:2:1;19747:91:0::1;::::0;::::1;16480:21:1::0;16537:2;16517:18;;;16510:30;16576:34;16556:18;;;16549:62;-1:-1:-1;;;16627:18:1;;;16620:40;16677:19;;19747:91:0::1;16296:406:1::0;19747:91:0::1;-1:-1:-1::0;;;;;19849:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:35;;-1:-1:-1;;19849:35:0::1;19880:4;19849:35:::0;;::::1;::::0;;;19902:30;;1163:41:1;;;19902:30:0::1;::::0;1136:18:1;19902:30:0::1;1023:187:1::0;2079:244:0;1836:6;;-1:-1:-1;;;;;1836:6:0;1112:10;1836:22;1828:67;;;;-1:-1:-1;;;1828:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2168:22:0;::::1;2160:73;;;::::0;-1:-1:-1;;;2160:73:0;;16909:2:1;2160:73:0::1;::::0;::::1;16891:21:1::0;16948:2;16928:18;;;16921:30;16987:34;16967:18;;;16960:62;-1:-1:-1;;;17038:18:1;;;17031:36;17084:19;;2160:73:0::1;16707:402:1::0;2160:73:0::1;2270:6;::::0;2249:38:::1;::::0;-1:-1:-1;;;;;2249:38:0;;::::1;::::0;2270:6:::1;::::0;2249:38:::1;::::0;2270:6:::1;::::0;2249:38:::1;2298:6;:17:::0;;-1:-1:-1;;;;;;2298:17:0::1;-1:-1:-1::0;;;;;2298:17:0;;;::::1;::::0;;;::::1;::::0;;2079:244::o;6799:380::-;-1:-1:-1;;;;;6935:19:0;;6927:68;;;;-1:-1:-1;;;6927:68:0;;17316:2:1;6927:68:0;;;17298:21:1;17355:2;17335:18;;;17328:30;17394:34;17374:18;;;17367:62;-1:-1:-1;;;17445:18:1;;;17438:34;17489:19;;6927:68:0;17114:400:1;6927:68:0;-1:-1:-1;;;;;7014:21:0;;7006:68;;;;-1:-1:-1;;;7006:68:0;;17721:2:1;7006:68:0;;;17703:21:1;17760:2;17740:18;;;17733:30;17799:34;17779:18;;;17772:62;-1:-1:-1;;;17850:18:1;;;17843:32;17892:19;;7006:68:0;17519:398:1;7006:68:0;-1:-1:-1;;;;;7087:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7139:32;;1848:25:1;;;7139:32:0;;1821:18:1;7139:32:0;;;;;;;6799:380;;;:::o;22605:3377::-;-1:-1:-1;;;;;22738:18:0;;22730:68;;;;-1:-1:-1;;;22730:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22817:16:0;;22809:64;;;;-1:-1:-1;;;22809:64:0;;;;;;;:::i;:::-;22896:6;22906:1;22896:11;22893:92;;22924:28;22940:4;22946:2;22950:1;22924:15;:28::i;22893:92::-;-1:-1:-1;;;;;23002:25:0;;;;;;:19;:25;;;;;;;;23001:26;:54;;;;-1:-1:-1;;;;;;23032:23:0;;;;;;:19;:23;;;;;;;;23031:24;23001:54;22997:148;;;23080:14;;;;;;;:22;;23098:4;23080:22;23072:61;;;;-1:-1:-1;;;23072:61:0;;18934:2:1;23072:61:0;;;18916:21:1;18973:2;18953:18;;;18946:30;19012:28;18992:18;;;18985:56;19058:18;;23072:61:0;18732:350:1;23072:61:0;23200:4;23151:28;3274:18;;;;;;;;;;;23258;;23293:11;;23234:42;;;;;23293:11;;:36;;;;;23322:7;23293:36;:62;;;;-1:-1:-1;23347:8:0;;;;;;;23346:9;23293:62;:108;;;;-1:-1:-1;;;;;;23372:29:0;;;;;;:25;:29;;;;;;;;23293:108;:157;;;;;23449:1;23433:13;;23418:12;;:28;;;;:::i;:::-;:32;23293:157;23289:1952;;;23477:8;:15;;-1:-1:-1;;23477:15:0;;;;;;;;23513:13;;23477:15;23513:13;23509:95;;;23570:18;;23547:41;;23509:95;23620:16;23654:13;;23639:12;;:28;;;;:::i;:::-;23620:47;;23682:21;23723:15;;23706:14;;:32;;;;:::i;:::-;23682:56;;23753:19;23790:13;;23775:12;;:28;;;;:::i;:::-;23753:50;;23818:22;23861:16;;23843:15;;:34;;;;:::i;:::-;23818:59;;23932:1;23909:20;:24;:41;;;;-1:-1:-1;23937:13:0;23909:41;23906:1282;;;24062:16;;;24076:1;24062:16;;;;;;;;23996:21;;23971:22;;24062:16;24076:1;24062:16;;;;;;;;;;-1:-1:-1;24062:16:0;24038:40;;24115:4;24097;24102:1;24097:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24097:23:0;;;:7;;;;;;;;;;:23;;;;24149:15;;:22;;;-1:-1:-1;;;24149:22:0;;;;:15;;;;;:20;;:22;;;;;24097:7;;24149:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24139:4;24144:1;24139:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24139:32:0;;;:7;;;;;;;;;:32;24192:15;;:235;;-1:-1:-1;;;24192:235:0;;:15;;;:66;;:235;;24281:20;;24192:15;;24348:4;;24383;;24411:15;;24192:235;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24464:18;24509:14;24485:21;:38;;;;:::i;:::-;24464:59;-1:-1:-1;24547:17:0;;24544:198;;24589:22;24643:8;24614:26;24627:13;24614:10;:26;:::i;:::-;:37;;;;:::i;:::-;24682:14;;24674:48;;24589:62;;-1:-1:-1;;;;;;24682:14:0;;24674:48;;;;;24589:62;;24682:14;24674:48;24682:14;24674:48;24589:62;24682:14;24674:48;;;;;;;;;;;;;;;;;;;;;24566:176;24544:198;24765:15;;24762:188;;24805:20;24855:8;24828:24;24841:11;24828:10;:24;:::i;:::-;:35;;;;:::i;:::-;24894:12;;24886:44;;24805:58;;-1:-1:-1;;;;;;24894:12:0;;24886:44;;;;;24805:58;;24894:12;24886:44;24894:12;24886:44;24805:58;24894:12;24886:44;;;;;;;;;;;;;;;;;;;;;24782:168;24762:188;24973:18;;24970:203;;25016:23;25072:8;25042:27;25055:14;25042:10;:27;:::i;:::-;:38;;;;:::i;:::-;25111:15;;25103:50;;25016:64;;-1:-1:-1;;;;;;25111:15:0;;25103:50;;;;;25016:64;;25111:15;25103:50;25111:15;25103:50;25016:64;25111:15;25103:50;;;;;;;;;;;;;;;;;;;;;24993:180;24970:203;23952:1236;;;23906:1282;-1:-1:-1;;25213:8:0;:16;;-1:-1:-1;;25213:16:0;;;-1:-1:-1;;23289:1952:0;25269:8;;-1:-1:-1;;;;;25293:25:0;;25253:12;25293:25;;;:19;:25;;;;;;25269:8;;;;;;;25268:9;;25293:25;;:52;;-1:-1:-1;;;;;;25322:23:0;;;;;;:19;:23;;;;;;;;25293:52;25290:99;;;-1:-1:-1;25372:5:0;25290:99;25404:7;:57;;;;-1:-1:-1;25424:13:0;;-1:-1:-1;;;;;25416:21:0;;;25424:13;;25416:21;;:44;;-1:-1:-1;25447:13:0;;-1:-1:-1;;;;;25441:19:0;;;25447:13;;25441:19;25416:44;25401:526;;;25522:13;;25478:18;;-1:-1:-1;;;;;25522:13:0;;;25514:21;;;;25511:190;;-1:-1:-1;25569:12:0;;25511:190;;;25626:13;;-1:-1:-1;;;;;25626:13:0;;;25620:19;;;;25617:84;;-1:-1:-1;25672:13:0;;25617:84;25712:12;25749:3;25727:19;25736:10;25727:6;:19;:::i;:::-;:25;;;;:::i;:::-;25712:40;-1:-1:-1;25784:13:0;25712:40;25784:6;:13;:::i;:::-;25775:22;-1:-1:-1;25829:8:0;;25826:90;;25858:42;25874:4;25888;25895;25858:15;:42::i;:::-;25463:464;;25401:526;25939:33;25955:4;25961:2;25965:6;25939:15;:33::i;:::-;22719:3263;;;22605:3377;;;:::o;5052:733::-;-1:-1:-1;;;;;5192:20:0;;5184:70;;;;-1:-1:-1;;;5184:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5273:23:0;;5265:71;;;;-1:-1:-1;;;5265:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5433:17:0;;5409:21;5433:17;;;;;;;;;;;5469:23;;;;5461:74;;;;-1:-1:-1;;;5461:74:0;;20407:2:1;5461:74:0;;;20389:21:1;20446:2;20426:18;;;20419:30;20485:34;20465:18;;;20458:62;-1:-1:-1;;;20536:18:1;;;20529:36;20582:19;;5461:74:0;20205:402:1;5461:74:0;-1:-1:-1;;;;;5571:17:0;;;:9;:17;;;;;;;;;;;5591:22;;;5571:42;;5635:20;;;;;;;;:30;;5607:6;;5571:9;5635:30;;5607:6;;5635:30;:::i;:::-;;;;;;;;5700:9;-1:-1:-1;;;;;5683:35:0;5692:6;-1:-1:-1;;;;;5683:35:0;;5711:6;5683:35;;;;1848:25:1;;1836:2;1821:18;;1702:177;5683:35:0;;;;;;;;5731:46;26772:390;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;:::-;1451:5;1215:247;-1:-1:-1;;;1215:247:1:o;1884:456::-;1961:6;1969;1977;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2085:9;2072:23;2104:31;2129:5;2104:31;:::i;:::-;2154:5;-1:-1:-1;2211:2:1;2196:18;;2183:32;2224:33;2183:32;2224:33;:::i;:::-;1884:456;;2276:7;;-1:-1:-1;;;2330:2:1;2315:18;;;;2302:32;;1884:456::o;2345:127::-;2406:10;2401:3;2397:20;2394:1;2387:31;2437:4;2434:1;2427:15;2461:4;2458:1;2451:15;2477:275;2548:2;2542:9;2613:2;2594:13;;-1:-1:-1;;2590:27:1;2578:40;;2648:18;2633:34;;2669:22;;;2630:62;2627:88;;;2695:18;;:::i;:::-;2731:2;2724:22;2477:275;;-1:-1:-1;2477:275:1:o;2757:183::-;2817:4;2850:18;2842:6;2839:30;2836:56;;;2872:18;;:::i;:::-;-1:-1:-1;2917:1:1;2913:14;2929:4;2909:25;;2757:183::o;2945:662::-;2999:5;3052:3;3045:4;3037:6;3033:17;3029:27;3019:55;;3070:1;3067;3060:12;3019:55;3106:6;3093:20;3132:4;3156:60;3172:43;3212:2;3172:43;:::i;:::-;3156:60;:::i;:::-;3250:15;;;3336:1;3332:10;;;;3320:23;;3316:32;;;3281:12;;;;3360:15;;;3357:35;;;3388:1;3385;3378:12;3357:35;3424:2;3416:6;3412:15;3436:142;3452:6;3447:3;3444:15;3436:142;;;3518:17;;3506:30;;3556:12;;;;3469;;3436:142;;;-1:-1:-1;3596:5:1;2945:662;-1:-1:-1;;;;;;2945:662:1:o;3612:1215::-;3730:6;3738;3791:2;3779:9;3770:7;3766:23;3762:32;3759:52;;;3807:1;3804;3797:12;3759:52;3847:9;3834:23;3876:18;3917:2;3909:6;3906:14;3903:34;;;3933:1;3930;3923:12;3903:34;3971:6;3960:9;3956:22;3946:32;;4016:7;4009:4;4005:2;4001:13;3997:27;3987:55;;4038:1;4035;4028:12;3987:55;4074:2;4061:16;4096:4;4120:60;4136:43;4176:2;4136:43;:::i;4120:60::-;4214:15;;;4296:1;4292:10;;;;4284:19;;4280:28;;;4245:12;;;;4320:19;;;4317:39;;;4352:1;4349;4342:12;4317:39;4376:11;;;;4396:217;4412:6;4407:3;4404:15;4396:217;;;4492:3;4479:17;4509:31;4534:5;4509:31;:::i;:::-;4553:18;;4429:12;;;;4591;;;;4396:217;;;4632:5;-1:-1:-1;;4675:18:1;;4662:32;;-1:-1:-1;;4706:16:1;;;4703:36;;;4735:1;4732;4725:12;4703:36;;4758:63;4813:7;4802:8;4791:9;4787:24;4758:63;:::i;:::-;4748:73;;;3612:1215;;;;;:::o;5229:316::-;5306:6;5314;5322;5375:2;5363:9;5354:7;5350:23;5346:32;5343:52;;;5391:1;5388;5381:12;5343:52;-1:-1:-1;;5414:23:1;;;5484:2;5469:18;;5456:32;;-1:-1:-1;5535:2:1;5520:18;;;5507:32;;5229:316;-1:-1:-1;5229:316:1:o;5550:118::-;5636:5;5629:13;5622:21;5615:5;5612:32;5602:60;;5658:1;5655;5648:12;5673:241;5729:6;5782:2;5770:9;5761:7;5757:23;5753:32;5750:52;;;5798:1;5795;5788:12;5750:52;5837:9;5824:23;5856:28;5878:5;5856:28;:::i;5919:180::-;5978:6;6031:2;6019:9;6010:7;6006:23;6002:32;5999:52;;;6047:1;6044;6037:12;5999:52;-1:-1:-1;6070:23:1;;5919:180;-1:-1:-1;5919:180:1:o;6104:388::-;6172:6;6180;6233:2;6221:9;6212:7;6208:23;6204:32;6201:52;;;6249:1;6246;6239:12;6201:52;6288:9;6275:23;6307:31;6332:5;6307:31;:::i;:::-;6357:5;-1:-1:-1;6414:2:1;6399:18;;6386:32;6427:33;6386:32;6427:33;:::i;:::-;6479:7;6469:17;;;6104:388;;;;;:::o;6497:380::-;6576:1;6572:12;;;;6619;;;6640:61;;6694:4;6686:6;6682:17;6672:27;;6640:61;6747:2;6739:6;6736:14;6716:18;6713:38;6710:161;;6793:10;6788:3;6784:20;6781:1;6774:31;6828:4;6825:1;6818:15;6856:4;6853:1;6846:15;6710:161;;6497:380;;;:::o;6882:356::-;7084:2;7066:21;;;7103:18;;;7096:30;7162:34;7157:2;7142:18;;7135:62;7229:2;7214:18;;6882:356::o;7243:184::-;7313:6;7366:2;7354:9;7345:7;7341:23;7337:32;7334:52;;;7382:1;7379;7372:12;7334:52;-1:-1:-1;7405:16:1;;7243:184;-1:-1:-1;7243:184:1:o;7711:245::-;7778:6;7831:2;7819:9;7810:7;7806:23;7802:32;7799:52;;;7847:1;7844;7837:12;7799:52;7879:9;7873:16;7898:28;7920:5;7898:28;:::i;9131:127::-;9192:10;9187:3;9183:20;9180:1;9173:31;9223:4;9220:1;9213:15;9247:4;9244:1;9237:15;9263:127;9324:10;9319:3;9315:20;9312:1;9305:31;9355:4;9352:1;9345:15;9379:4;9376:1;9369:15;9395:422;9484:1;9527:5;9484:1;9541:270;9562:7;9552:8;9549:21;9541:270;;;9621:4;9617:1;9613:6;9609:17;9603:4;9600:27;9597:53;;;9630:18;;:::i;:::-;9680:7;9670:8;9666:22;9663:55;;;9700:16;;;;9663:55;9779:22;;;;9739:15;;;;9541:270;;;9545:3;9395:422;;;;;:::o;9822:806::-;9871:5;9901:8;9891:80;;-1:-1:-1;9942:1:1;9956:5;;9891:80;9990:4;9980:76;;-1:-1:-1;10027:1:1;10041:5;;9980:76;10072:4;10090:1;10085:59;;;;10158:1;10153:130;;;;10065:218;;10085:59;10115:1;10106:10;;10129:5;;;10153:130;10190:3;10180:8;10177:17;10174:43;;;10197:18;;:::i;:::-;-1:-1:-1;;10253:1:1;10239:16;;10268:5;;10065:218;;10367:2;10357:8;10354:16;10348:3;10342:4;10339:13;10335:36;10329:2;10319:8;10316:16;10311:2;10305:4;10302:12;10298:35;10295:77;10292:159;;;-1:-1:-1;10404:19:1;;;10436:5;;10292:159;10483:34;10508:8;10502:4;10483:34;:::i;:::-;10553:6;10549:1;10545:6;10541:19;10532:7;10529:32;10526:58;;;10564:18;;:::i;:::-;10602:20;;9822:806;-1:-1:-1;;;9822:806:1:o;10633:140::-;10691:5;10720:47;10761:4;10751:8;10747:19;10741:4;10720:47;:::i;10778:168::-;10851:9;;;10882;;10899:15;;;10893:22;;10879:37;10869:71;;10920:18;;:::i;10951:175::-;10988:3;11032:4;11025:5;11021:16;11061:4;11052:7;11049:17;11046:43;;11069:18;;:::i;:::-;11118:1;11105:15;;10951:175;-1:-1:-1;;10951:175:1:o;11131:125::-;11196:9;;;11217:10;;;11214:36;;;11230:18;;:::i;11261:400::-;11463:2;11445:21;;;11502:2;11482:18;;;11475:30;11541:34;11536:2;11521:18;;11514:62;-1:-1:-1;;;11607:2:1;11592:18;;11585:34;11651:3;11636:19;;11261:400::o;12070:251::-;12140:6;12193:2;12181:9;12172:7;12168:23;12164:32;12161:52;;;12209:1;12206;12199:12;12161:52;12241:9;12235:16;12260:31;12285:5;12260:31;:::i;14846:217::-;14886:1;14912;14902:132;;14956:10;14951:3;14947:20;14944:1;14937:31;14991:4;14988:1;14981:15;15019:4;15016:1;15009:15;14902:132;-1:-1:-1;15048:9:1;;14846:217::o;17922:401::-;18124:2;18106:21;;;18163:2;18143:18;;;18136:30;18202:34;18197:2;18182:18;;18175:62;-1:-1:-1;;;18268:2:1;18253:18;;18246:35;18313:3;18298:19;;17922:401::o;18328:399::-;18530:2;18512:21;;;18569:2;18549:18;;;18542:30;18608:34;18603:2;18588:18;;18581:62;-1:-1:-1;;;18674:2:1;18659:18;;18652:33;18717:3;18702:19;;18328:399::o;19087:980::-;19349:4;19397:3;19386:9;19382:19;19428:6;19417:9;19410:25;19454:2;19492:6;19487:2;19476:9;19472:18;19465:34;19535:3;19530:2;19519:9;19515:18;19508:31;19559:6;19594;19588:13;19625:6;19617;19610:22;19663:3;19652:9;19648:19;19641:26;;19702:2;19694:6;19690:15;19676:29;;19723:1;19733:195;19747:6;19744:1;19741:13;19733:195;;;19812:13;;-1:-1:-1;;;;;19808:39:1;19796:52;;19903:15;;;;19868:12;;;;19844:1;19762:9;19733:195;;;-1:-1:-1;;;;;;;19984:32:1;;;;19979:2;19964:18;;19957:60;-1:-1:-1;;;20048:3:1;20033:19;20026:35;19945:3;19087:980;-1:-1:-1;;;19087:980:1:o;20072:128::-;20139:9;;;20160:11;;;20157:37;;;20174:18;;:::i

Swarm Source

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