ETH Price: $3,308.52 (+1.81%)
Gas: 3 Gwei

Token

Linkedinu (Linkedinu)
 

Overview

Max Total Supply

1,000,000,000,000 Linkedinu

Holders

48

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10,552,033,643.596457425 Linkedinu

Value
$0.00
0xB7BB4454eb4DDcA78C17b2911a0d0183984985B9
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:
Linkedinu

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-29
*/

/*
SPDX-License-Identifier: Unlicensed                                                            
https://t.me/linkedinu
https://t.me/linkedinu
https://t.me/linkedinu
*/

pragma solidity ^0.8.4;

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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;
    }
    
}

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Linkedinu is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Linkedinu";
    string private constant _symbol = "Linkedinu";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping (address => uint256) private _buyMap;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    mapping(address => bool) private _isSniper;
    uint256 public launchTime;

    uint256 private _redisFeeOnBuy = 3;
    uint256 private _taxFeeOnBuy = 9;
    
    uint256 private _redisFeeOnSell = 3;
    uint256 private _taxFeeOnSell = 9;
    
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _burnFee = 33;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    uint256 private _previousburnFee = _burnFee;
    
    address payable private _marketingAddress = payable(0xAc5201Dd71d1621572cB1140D25a23dc721f1913);
    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 2e10 * 10**9; 
    uint256 public _maxWalletSize = 2e10 * 10**9;
    uint256 public _swapTokensAtAmount = 1000 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        
       

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[deadAddress] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function newPair() external onlyOwner() {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        .createPair(address(this), _uniswapV2Router.WETH());

    }

    function name() public pure returns (string memory) {
        return _name;
    }

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0 && _burnFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        _previousburnFee = _burnFee;
        
        _redisFee = 0;
        _taxFee = 0;
        _burnFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
        _burnFee = _previousburnFee;
    }

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

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

        if (from != owner() && to != owner()) {
            
            if (!tradingOpen) {
                revert("Trading not yet enabled!");
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (to != address(this) && from != address(this) && to != _marketingAddress && from != _marketingAddress) {
                    require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                }
            }

            if (to != uniswapV2Pair && to != _marketingAddress && to != address(this) && to != deadAddress) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance > _swapTokensAtAmount;
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                uint256 burntAmount = 0;
                if (_burnFee > 0) {
                    burntAmount = contractTokenBalance.mul(_burnFee).div(10**2);
                    burnTokens(burntAmount);
                }
                swapTokensForEth(contractTokenBalance - burntAmount);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                    _buyMap[to] = block.timestamp;
                    _redisFee = _redisFeeOnBuy;
                    _taxFee = _taxFeeOnBuy;
                    if (block.timestamp == launchTime) {
                        _isSniper[to] = true;
                    }
            }
    
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                
                    _redisFee = _redisFeeOnSell;
                    _taxFee = _taxFeeOnSell;
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function burnTokens(uint256 burntAmount) private {
        _transfer(address(this), deadAddress, burntAmount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function setTrading() public onlyOwner {
        require(!tradingOpen);
        tradingOpen = true;
        launchTime = block.timestamp;
    }


    function setMarketingWallet(address marketingAddress) external {
        require(_msgSender() == _marketingAddress);
        _marketingAddress = payable(marketingAddress);
        _isExcludedFromFee[_marketingAddress] = true;
    }

    
    function manualswap(uint256 amount) external {
        require(_msgSender() == _marketingAddress);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function addSniper(address[] memory snipers) external onlyOwner {
        for(uint256 i= 0; i< snipers.length; i++){
            _isSniper[snipers[i]] = true;
            
        }
    }

    function removeSniper(address sniper) external onlyOwner {
        if (_isSniper[sniper]) {
            _isSniper[sniper] = false;
        }
    }

    function isSniper(address sniper) external view returns (bool){
        return _isSniper[sniper];
    }

    function manualsend() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);

        return (rAmount, rTransferAmount, rFee);
    }

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

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }

    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function setTaxFee(uint256 amountBuy, uint256 amountSell) external onlyOwner {
        _taxFeeOnBuy = amountBuy;
        _taxFeeOnSell = amountSell;
    }

    function setRefFee(uint256 amountRefBuy, uint256 amountRefSell) external onlyOwner {
        _redisFeeOnBuy = amountRefBuy;
        _redisFeeOnSell = amountRefSell;
    }

    function setBurnFee(uint256 amount) external onlyOwner {
        _burnFee = amount;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"snipers","type":"address[]"}],"name":"addSniper","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"newPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRefBuy","type":"uint256"},{"internalType":"uint256","name":"amountRefSell","type":"uint256"}],"name":"setRefFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"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"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea00000600019620001d5565b6200002990600019620001f8565b6007556003600b8190556009600c819055600d829055600e819055600f829055601081905560216011819055601292909255601355601455601580546001600160a01b03191673ac5201dd71d1621572cb1140d25a23dc721f19131790556017805461ffff60a81b1916600160b01b1790556801158e460913d00000601881905560195564e8d4a51000601a55348015620000c357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360008181526002602090815260408083209490945581546001600160a01b039081168352600682528483208054600160ff19918216811790925530855286852080548216831790556015549092168452858420805483168217905561dead84527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280549092161790559251683635c9adc5dea000008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200021e565b600082620001f357634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156200021957634e487b7160e01b600052601160045260246000fd5b500390565b612112806200022e6000396000f3fe6080604052600436106101f25760003560e01c80636d8aa8f81161010d578063881dce60116100a0578063a9059cbb1161006f578063a9059cbb14610564578063c552849014610584578063dd62ed3e146105a4578063ea1644d5146105ea578063f2fde38b1461060a57600080fd5b8063881dce60146105105780638da5cb5b146105305780638f9a55c01461054e57806395d89b41146101fe57600080fd5b806374010ece116100dc57806374010ece146104af578063790ca413146104cf5780637c519ffb146104e55780637d1db4a5146104fa57600080fd5b80636d8aa8f8146104455780636fc3eaec1461046557806370a082311461047a578063715018a61461049a57600080fd5b80632fd689e31161018557806349bd5a5e1161015457806349bd5a5e146103d05780634bf2c7c9146103f05780634f6a05c2146104105780635d098b381461042557600080fd5b80632fd689e31461035e578063313ce5671461037457806333251a0b1461039057806338eea22d146103b057600080fd5b806318160ddd116101c157806318160ddd146102e057806323b872dd1461030657806327c8f8351461032657806328bb665a1461033c57600080fd5b806306fdde03146101fe578063095ea7b31461023f5780630f3a325f1461026f5780631694505e146102a857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5060408051808201825260098152684c696e6b6564696e7560b81b602082015290516102369190611c9e565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004611d18565b61062a565b6040519015158152602001610236565b34801561027b57600080fd5b5061025f61028a366004611d44565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102b457600080fd5b506016546102c8906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b3480156102ec57600080fd5b50683635c9adc5dea000005b604051908152602001610236565b34801561031257600080fd5b5061025f610321366004611d61565b610641565b34801561033257600080fd5b506102c861dead81565b34801561034857600080fd5b5061035c610357366004611db8565b6106aa565b005b34801561036a57600080fd5b506102f8601a5481565b34801561038057600080fd5b5060405160098152602001610236565b34801561039c57600080fd5b5061035c6103ab366004611d44565b610749565b3480156103bc57600080fd5b5061035c6103cb366004611e7d565b6107b8565b3480156103dc57600080fd5b506017546102c8906001600160a01b031681565b3480156103fc57600080fd5b5061035c61040b366004611e9f565b6107ed565b34801561041c57600080fd5b5061035c61081c565b34801561043157600080fd5b5061035c610440366004611d44565b610a01565b34801561045157600080fd5b5061035c610460366004611eb8565b610a5b565b34801561047157600080fd5b5061035c610aa3565b34801561048657600080fd5b506102f8610495366004611d44565b610acd565b3480156104a657600080fd5b5061035c610aef565b3480156104bb57600080fd5b5061035c6104ca366004611e9f565b610b63565b3480156104db57600080fd5b506102f8600a5481565b3480156104f157600080fd5b5061035c610b92565b34801561050657600080fd5b506102f860185481565b34801561051c57600080fd5b5061035c61052b366004611e9f565b610bec565b34801561053c57600080fd5b506000546001600160a01b03166102c8565b34801561055a57600080fd5b506102f860195481565b34801561057057600080fd5b5061025f61057f366004611d18565b610c68565b34801561059057600080fd5b5061035c61059f366004611e7d565b610c75565b3480156105b057600080fd5b506102f86105bf366004611eda565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105f657600080fd5b5061035c610605366004611e9f565b610caa565b34801561061657600080fd5b5061035c610625366004611d44565b610cd9565b6000610637338484610dc3565b5060015b92915050565b600061064e848484610ee7565b6106a0843361069b856040518060600160405280602881526020016120b5602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611541565b610dc3565b5060019392505050565b6000546001600160a01b031633146106dd5760405162461bcd60e51b81526004016106d490611f13565b60405180910390fd5b60005b81518110156107455760016009600084848151811061070157610701611f48565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061073d81611f74565b9150506106e0565b5050565b6000546001600160a01b031633146107735760405162461bcd60e51b81526004016106d490611f13565b6001600160a01b03811660009081526009602052604090205460ff16156107b5576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146107e25760405162461bcd60e51b81526004016106d490611f13565b600b91909155600d55565b6000546001600160a01b031633146108175760405162461bcd60e51b81526004016106d490611f13565b601155565b6000546001600160a01b031633146108465760405162461bcd60e51b81526004016106d490611f13565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b1580156108a657600080fd5b505afa1580156108ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108de9190611f8f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561092657600080fd5b505afa15801561093a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095e9190611f8f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156109a657600080fd5b505af11580156109ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109de9190611f8f565b601780546001600160a01b0319166001600160a01b039290921691909117905550565b6015546001600160a01b0316336001600160a01b031614610a2157600080fd5b601580546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b03163314610a855760405162461bcd60e51b81526004016106d490611f13565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6015546001600160a01b0316336001600160a01b031614610ac357600080fd5b476107b58161157b565b6001600160a01b03811660009081526002602052604081205461063b906115b5565b6000546001600160a01b03163314610b195760405162461bcd60e51b81526004016106d490611f13565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b8d5760405162461bcd60e51b81526004016106d490611f13565b601855565b6000546001600160a01b03163314610bbc5760405162461bcd60e51b81526004016106d490611f13565b601754600160a01b900460ff1615610bd357600080fd5b6017805460ff60a01b1916600160a01b17905542600a55565b6015546001600160a01b0316336001600160a01b031614610c0c57600080fd5b610c1530610acd565b8111158015610c245750600081115b610c5f5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016106d4565b6107b581611639565b6000610637338484610ee7565b6000546001600160a01b03163314610c9f5760405162461bcd60e51b81526004016106d490611f13565b600c91909155600e55565b6000546001600160a01b03163314610cd45760405162461bcd60e51b81526004016106d490611f13565b601955565b6000546001600160a01b03163314610d035760405162461bcd60e51b81526004016106d490611f13565b6001600160a01b038116610d685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e255760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106d4565b6001600160a01b038216610e865760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106d4565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f4b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106d4565b6001600160a01b038216610fad5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106d4565b6000811161100f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106d4565b6001600160a01b03821660009081526009602052604090205460ff16156110485760405162461bcd60e51b81526004016106d490611fac565b6001600160a01b03831660009081526009602052604090205460ff16156110815760405162461bcd60e51b81526004016106d490611fac565b3360009081526009602052604090205460ff16156110b15760405162461bcd60e51b81526004016106d490611fac565b6000546001600160a01b038481169116148015906110dd57506000546001600160a01b03838116911614155b156113eb57601754600160a01b900460ff1661113b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106d4565b6017546001600160a01b03838116911614801561116657506016546001600160a01b03848116911614155b15611218576001600160a01b038216301480159061118d57506001600160a01b0383163014155b80156111a757506015546001600160a01b03838116911614155b80156111c157506015546001600160a01b03848116911614155b15611218576018548111156112185760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106d4565b6017546001600160a01b0383811691161480159061124457506015546001600160a01b03838116911614155b801561125957506001600160a01b0382163014155b801561127057506001600160a01b03821661dead14155b156112e5576019548161128284610acd565b61128c9190611fd3565b106112e55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106d4565b60006112f030610acd565b601a54909150811180801561130f5750601754600160a81b900460ff16155b801561132957506017546001600160a01b03868116911614155b801561133e5750601754600160b01b900460ff165b801561136357506001600160a01b03851660009081526006602052604090205460ff16155b801561138857506001600160a01b03841660009081526006602052604090205460ff16155b156113e857601154600090156113c3576113b860646113b2601154866117c290919063ffffffff16565b90611841565b90506113c381611883565b6113d56113d08285611feb565b611639565b4780156113e5576113e54761157b565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061142d57506001600160a01b03831660009081526006602052604090205460ff165b8061145f57506017546001600160a01b0385811691161480159061145f57506017546001600160a01b03848116911614155b1561146c5750600061152f565b6017546001600160a01b03858116911614801561149757506016546001600160a01b03848116911614155b156114f2576001600160a01b03831660009081526004602052604090204290819055600b54600f55600c54601055600a5414156114f2576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6017546001600160a01b03848116911614801561151d57506016546001600160a01b03858116911614155b1561152f57600d54600f55600e546010555b61153b84848484611890565b50505050565b600081848411156115655760405162461bcd60e51b81526004016106d49190611c9e565b5060006115728486611feb565b95945050505050565b6015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610745573d6000803e3d6000fd5b600060075482111561161c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106d4565b60006116266118c4565b90506116328382611841565b9392505050565b6017805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061168157611681611f48565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156116d557600080fd5b505afa1580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d9190611f8f565b8160018151811061172057611720611f48565b6001600160a01b0392831660209182029290920101526016546117469130911684610dc3565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac9479061177f908590600090869030904290600401612002565b600060405180830381600087803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b6000826117d15750600061063b565b60006117dd8385612073565b9050826117ea8583612092565b146116325760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106d4565b600061163283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118e7565b6107b53061dead83610ee7565b8061189d5761189d611915565b6118a884848461195a565b8061153b5761153b601254600f55601354601055601454601155565b60008060006118d1611a51565b90925090506118e08282611841565b9250505090565b600081836119085760405162461bcd60e51b81526004016106d49190611c9e565b5060006115728486612092565b600f541580156119255750601054155b80156119315750601154155b1561193857565b600f805460125560108054601355601180546014556000928390559082905555565b60008060008060008061196c87611a93565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061199e9087611af0565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546119cd9086611b32565b6001600160a01b0389166000908152600260205260409020556119ef81611b91565b6119f98483611bdb565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a3e91815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea00000611a6d8282611841565b821015611a8a57505060075492683635c9adc5dea0000092509050565b90939092509050565b6000806000806000806000806000611ab08a600f54601054611bff565b9250925092506000611ac06118c4565b90506000806000611ad38e878787611c4e565b919e509c509a509598509396509194505050505091939550919395565b600061163283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611541565b600080611b3f8385611fd3565b9050838110156116325760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106d4565b6000611b9b6118c4565b90506000611ba983836117c2565b30600090815260026020526040902054909150611bc69082611b32565b30600090815260026020526040902055505050565b600754611be89083611af0565b600755600854611bf89082611b32565b6008555050565b6000808080611c1360646113b289896117c2565b90506000611c2660646113b28a896117c2565b90506000611c3e82611c388b86611af0565b90611af0565b9992985090965090945050505050565b6000808080611c5d88866117c2565b90506000611c6b88876117c2565b90506000611c7988886117c2565b90506000611c8b82611c388686611af0565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611ccb57858101830151858201604001528201611caf565b81811115611cdd576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146107b557600080fd5b8035611d1381611cf3565b919050565b60008060408385031215611d2b57600080fd5b8235611d3681611cf3565b946020939093013593505050565b600060208284031215611d5657600080fd5b813561163281611cf3565b600080600060608486031215611d7657600080fd5b8335611d8181611cf3565b92506020840135611d9181611cf3565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611dcb57600080fd5b823567ffffffffffffffff80821115611de357600080fd5b818501915085601f830112611df757600080fd5b813581811115611e0957611e09611da2565b8060051b604051601f19603f83011681018181108582111715611e2e57611e2e611da2565b604052918252848201925083810185019188831115611e4c57600080fd5b938501935b82851015611e7157611e6285611d08565b84529385019392850192611e51565b98975050505050505050565b60008060408385031215611e9057600080fd5b50508035926020909101359150565b600060208284031215611eb157600080fd5b5035919050565b600060208284031215611eca57600080fd5b8135801515811461163257600080fd5b60008060408385031215611eed57600080fd5b8235611ef881611cf3565b91506020830135611f0881611cf3565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f8857611f88611f5e565b5060010190565b600060208284031215611fa157600080fd5b815161163281611cf3565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b60008219821115611fe657611fe6611f5e565b500190565b600082821015611ffd57611ffd611f5e565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120525784516001600160a01b03168352938301939183019160010161202d565b50506001600160a01b03969096166060850152505050608001529392505050565b600081600019048311821515161561208d5761208d611f5e565b500290565b6000826120af57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d560848c83f4d0504106e5bc46721756df0e9c15ea7226c254070a0506e9218864736f6c63430008080033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c80636d8aa8f81161010d578063881dce60116100a0578063a9059cbb1161006f578063a9059cbb14610564578063c552849014610584578063dd62ed3e146105a4578063ea1644d5146105ea578063f2fde38b1461060a57600080fd5b8063881dce60146105105780638da5cb5b146105305780638f9a55c01461054e57806395d89b41146101fe57600080fd5b806374010ece116100dc57806374010ece146104af578063790ca413146104cf5780637c519ffb146104e55780637d1db4a5146104fa57600080fd5b80636d8aa8f8146104455780636fc3eaec1461046557806370a082311461047a578063715018a61461049a57600080fd5b80632fd689e31161018557806349bd5a5e1161015457806349bd5a5e146103d05780634bf2c7c9146103f05780634f6a05c2146104105780635d098b381461042557600080fd5b80632fd689e31461035e578063313ce5671461037457806333251a0b1461039057806338eea22d146103b057600080fd5b806318160ddd116101c157806318160ddd146102e057806323b872dd1461030657806327c8f8351461032657806328bb665a1461033c57600080fd5b806306fdde03146101fe578063095ea7b31461023f5780630f3a325f1461026f5780631694505e146102a857600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5060408051808201825260098152684c696e6b6564696e7560b81b602082015290516102369190611c9e565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004611d18565b61062a565b6040519015158152602001610236565b34801561027b57600080fd5b5061025f61028a366004611d44565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102b457600080fd5b506016546102c8906001600160a01b031681565b6040516001600160a01b039091168152602001610236565b3480156102ec57600080fd5b50683635c9adc5dea000005b604051908152602001610236565b34801561031257600080fd5b5061025f610321366004611d61565b610641565b34801561033257600080fd5b506102c861dead81565b34801561034857600080fd5b5061035c610357366004611db8565b6106aa565b005b34801561036a57600080fd5b506102f8601a5481565b34801561038057600080fd5b5060405160098152602001610236565b34801561039c57600080fd5b5061035c6103ab366004611d44565b610749565b3480156103bc57600080fd5b5061035c6103cb366004611e7d565b6107b8565b3480156103dc57600080fd5b506017546102c8906001600160a01b031681565b3480156103fc57600080fd5b5061035c61040b366004611e9f565b6107ed565b34801561041c57600080fd5b5061035c61081c565b34801561043157600080fd5b5061035c610440366004611d44565b610a01565b34801561045157600080fd5b5061035c610460366004611eb8565b610a5b565b34801561047157600080fd5b5061035c610aa3565b34801561048657600080fd5b506102f8610495366004611d44565b610acd565b3480156104a657600080fd5b5061035c610aef565b3480156104bb57600080fd5b5061035c6104ca366004611e9f565b610b63565b3480156104db57600080fd5b506102f8600a5481565b3480156104f157600080fd5b5061035c610b92565b34801561050657600080fd5b506102f860185481565b34801561051c57600080fd5b5061035c61052b366004611e9f565b610bec565b34801561053c57600080fd5b506000546001600160a01b03166102c8565b34801561055a57600080fd5b506102f860195481565b34801561057057600080fd5b5061025f61057f366004611d18565b610c68565b34801561059057600080fd5b5061035c61059f366004611e7d565b610c75565b3480156105b057600080fd5b506102f86105bf366004611eda565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105f657600080fd5b5061035c610605366004611e9f565b610caa565b34801561061657600080fd5b5061035c610625366004611d44565b610cd9565b6000610637338484610dc3565b5060015b92915050565b600061064e848484610ee7565b6106a0843361069b856040518060600160405280602881526020016120b5602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611541565b610dc3565b5060019392505050565b6000546001600160a01b031633146106dd5760405162461bcd60e51b81526004016106d490611f13565b60405180910390fd5b60005b81518110156107455760016009600084848151811061070157610701611f48565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061073d81611f74565b9150506106e0565b5050565b6000546001600160a01b031633146107735760405162461bcd60e51b81526004016106d490611f13565b6001600160a01b03811660009081526009602052604090205460ff16156107b5576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146107e25760405162461bcd60e51b81526004016106d490611f13565b600b91909155600d55565b6000546001600160a01b031633146108175760405162461bcd60e51b81526004016106d490611f13565b601155565b6000546001600160a01b031633146108465760405162461bcd60e51b81526004016106d490611f13565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b1580156108a657600080fd5b505afa1580156108ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108de9190611f8f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561092657600080fd5b505afa15801561093a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095e9190611f8f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156109a657600080fd5b505af11580156109ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109de9190611f8f565b601780546001600160a01b0319166001600160a01b039290921691909117905550565b6015546001600160a01b0316336001600160a01b031614610a2157600080fd5b601580546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b03163314610a855760405162461bcd60e51b81526004016106d490611f13565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6015546001600160a01b0316336001600160a01b031614610ac357600080fd5b476107b58161157b565b6001600160a01b03811660009081526002602052604081205461063b906115b5565b6000546001600160a01b03163314610b195760405162461bcd60e51b81526004016106d490611f13565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b8d5760405162461bcd60e51b81526004016106d490611f13565b601855565b6000546001600160a01b03163314610bbc5760405162461bcd60e51b81526004016106d490611f13565b601754600160a01b900460ff1615610bd357600080fd5b6017805460ff60a01b1916600160a01b17905542600a55565b6015546001600160a01b0316336001600160a01b031614610c0c57600080fd5b610c1530610acd565b8111158015610c245750600081115b610c5f5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016106d4565b6107b581611639565b6000610637338484610ee7565b6000546001600160a01b03163314610c9f5760405162461bcd60e51b81526004016106d490611f13565b600c91909155600e55565b6000546001600160a01b03163314610cd45760405162461bcd60e51b81526004016106d490611f13565b601955565b6000546001600160a01b03163314610d035760405162461bcd60e51b81526004016106d490611f13565b6001600160a01b038116610d685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e255760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106d4565b6001600160a01b038216610e865760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106d4565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f4b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106d4565b6001600160a01b038216610fad5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106d4565b6000811161100f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106d4565b6001600160a01b03821660009081526009602052604090205460ff16156110485760405162461bcd60e51b81526004016106d490611fac565b6001600160a01b03831660009081526009602052604090205460ff16156110815760405162461bcd60e51b81526004016106d490611fac565b3360009081526009602052604090205460ff16156110b15760405162461bcd60e51b81526004016106d490611fac565b6000546001600160a01b038481169116148015906110dd57506000546001600160a01b03838116911614155b156113eb57601754600160a01b900460ff1661113b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106d4565b6017546001600160a01b03838116911614801561116657506016546001600160a01b03848116911614155b15611218576001600160a01b038216301480159061118d57506001600160a01b0383163014155b80156111a757506015546001600160a01b03838116911614155b80156111c157506015546001600160a01b03848116911614155b15611218576018548111156112185760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106d4565b6017546001600160a01b0383811691161480159061124457506015546001600160a01b03838116911614155b801561125957506001600160a01b0382163014155b801561127057506001600160a01b03821661dead14155b156112e5576019548161128284610acd565b61128c9190611fd3565b106112e55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106d4565b60006112f030610acd565b601a54909150811180801561130f5750601754600160a81b900460ff16155b801561132957506017546001600160a01b03868116911614155b801561133e5750601754600160b01b900460ff165b801561136357506001600160a01b03851660009081526006602052604090205460ff16155b801561138857506001600160a01b03841660009081526006602052604090205460ff16155b156113e857601154600090156113c3576113b860646113b2601154866117c290919063ffffffff16565b90611841565b90506113c381611883565b6113d56113d08285611feb565b611639565b4780156113e5576113e54761157b565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061142d57506001600160a01b03831660009081526006602052604090205460ff165b8061145f57506017546001600160a01b0385811691161480159061145f57506017546001600160a01b03848116911614155b1561146c5750600061152f565b6017546001600160a01b03858116911614801561149757506016546001600160a01b03848116911614155b156114f2576001600160a01b03831660009081526004602052604090204290819055600b54600f55600c54601055600a5414156114f2576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6017546001600160a01b03848116911614801561151d57506016546001600160a01b03858116911614155b1561152f57600d54600f55600e546010555b61153b84848484611890565b50505050565b600081848411156115655760405162461bcd60e51b81526004016106d49190611c9e565b5060006115728486611feb565b95945050505050565b6015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610745573d6000803e3d6000fd5b600060075482111561161c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106d4565b60006116266118c4565b90506116328382611841565b9392505050565b6017805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061168157611681611f48565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156116d557600080fd5b505afa1580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d9190611f8f565b8160018151811061172057611720611f48565b6001600160a01b0392831660209182029290920101526016546117469130911684610dc3565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac9479061177f908590600090869030904290600401612002565b600060405180830381600087803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b6000826117d15750600061063b565b60006117dd8385612073565b9050826117ea8583612092565b146116325760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106d4565b600061163283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118e7565b6107b53061dead83610ee7565b8061189d5761189d611915565b6118a884848461195a565b8061153b5761153b601254600f55601354601055601454601155565b60008060006118d1611a51565b90925090506118e08282611841565b9250505090565b600081836119085760405162461bcd60e51b81526004016106d49190611c9e565b5060006115728486612092565b600f541580156119255750601054155b80156119315750601154155b1561193857565b600f805460125560108054601355601180546014556000928390559082905555565b60008060008060008061196c87611a93565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061199e9087611af0565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546119cd9086611b32565b6001600160a01b0389166000908152600260205260409020556119ef81611b91565b6119f98483611bdb565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a3e91815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea00000611a6d8282611841565b821015611a8a57505060075492683635c9adc5dea0000092509050565b90939092509050565b6000806000806000806000806000611ab08a600f54601054611bff565b9250925092506000611ac06118c4565b90506000806000611ad38e878787611c4e565b919e509c509a509598509396509194505050505091939550919395565b600061163283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611541565b600080611b3f8385611fd3565b9050838110156116325760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106d4565b6000611b9b6118c4565b90506000611ba983836117c2565b30600090815260026020526040902054909150611bc69082611b32565b30600090815260026020526040902055505050565b600754611be89083611af0565b600755600854611bf89082611b32565b6008555050565b6000808080611c1360646113b289896117c2565b90506000611c2660646113b28a896117c2565b90506000611c3e82611c388b86611af0565b90611af0565b9992985090965090945050505050565b6000808080611c5d88866117c2565b90506000611c6b88876117c2565b90506000611c7988886117c2565b90506000611c8b82611c388686611af0565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611ccb57858101830151858201604001528201611caf565b81811115611cdd576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146107b557600080fd5b8035611d1381611cf3565b919050565b60008060408385031215611d2b57600080fd5b8235611d3681611cf3565b946020939093013593505050565b600060208284031215611d5657600080fd5b813561163281611cf3565b600080600060608486031215611d7657600080fd5b8335611d8181611cf3565b92506020840135611d9181611cf3565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611dcb57600080fd5b823567ffffffffffffffff80821115611de357600080fd5b818501915085601f830112611df757600080fd5b813581811115611e0957611e09611da2565b8060051b604051601f19603f83011681018181108582111715611e2e57611e2e611da2565b604052918252848201925083810185019188831115611e4c57600080fd5b938501935b82851015611e7157611e6285611d08565b84529385019392850192611e51565b98975050505050505050565b60008060408385031215611e9057600080fd5b50508035926020909101359150565b600060208284031215611eb157600080fd5b5035919050565b600060208284031215611eca57600080fd5b8135801515811461163257600080fd5b60008060408385031215611eed57600080fd5b8235611ef881611cf3565b91506020830135611f0881611cf3565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f8857611f88611f5e565b5060010190565b600060208284031215611fa157600080fd5b815161163281611cf3565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b60008219821115611fe657611fe6611f5e565b500190565b600082821015611ffd57611ffd611f5e565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120525784516001600160a01b03168352938301939183019160010161202d565b50506001600160a01b03969096166060850152505050608001529392505050565b600081600019048311821515161561208d5761208d611f5e565b500290565b6000826120af57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d560848c83f4d0504106e5bc46721756df0e9c15ea7226c254070a0506e9218864736f6c63430008080033

Deployed Bytecode Sourcemap

4215:14654:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6903:83;;;;;;;;;;-1:-1:-1;6973:5:0;;;;;;;;;;;-1:-1:-1;;;6973:5:0;;;;6903:83;;;;6973:5;6903:83;:::i;:::-;;;;;;;;7828:193;;;;;;;;;;-1:-1:-1;7828:193:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;7828:193:0;1211:187:1;14328:105:0;;;;;;;;;;-1:-1:-1;14328:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;14408:17:0;14385:4;14408:17;;;:9;:17;;;;;;;;;14328:105;5674:41;;;;;;;;;;-1:-1:-1;5674:41:0;;;;-1:-1:-1;;;;;5674:41:0;;;;;;-1:-1:-1;;;;;1845:32:1;;;1827:51;;1815:2;1800:18;5674:41:0;1655:229:1;7180:95:0;;;;;;;;;;-1:-1:-1;4824:12:0;7180:95;;;2035:25:1;;;2023:2;2008:18;7180:95:0;1889:177:1;8029:446:0;;;;;;;;;;-1:-1:-1;8029:446:0;;;;;:::i;:::-;;:::i;5585:80::-;;;;;;;;;;;;5623:42;5585:80;;13970:192;;;;;;;;;;-1:-1:-1;13970:192:0;;;;;:::i;:::-;;:::i;:::-;;5973:49;;;;;;;;;;;;;;;;7089:83;;;;;;;;;;-1:-1:-1;7089:83:0;;4447:1;4140:36:1;;4128:2;4113:18;7089:83:0;3998:184:1;14170:150:0;;;;;;;;;;-1:-1:-1;14170:150:0;;;;;:::i;:::-;;:::i;18590:173::-;;;;;;;;;;-1:-1:-1;18590:173:0;;;;;:::i;:::-;;:::i;5722:28::-;;;;;;;;;;-1:-1:-1;5722:28:0;;;;-1:-1:-1;;;;;5722:28:0;;;18771:91;;;;;;;;;;-1:-1:-1;18771:91:0;;;;;:::i;:::-;;:::i;6554:341::-;;;;;;;;;;;;;:::i;13488:235::-;;;;;;;;;;-1:-1:-1;13488:235:0;;;;;:::i;:::-;;:::i;18065:101::-;;;;;;;;;;-1:-1:-1;18065:101:0;;;;;:::i;:::-;;:::i;14441:196::-;;;;;;;;;;;;;:::i;7283:138::-;;;;;;;;;;-1:-1:-1;7283:138:0;;;;;:::i;:::-;;:::i;1694:148::-;;;;;;;;;;;;;:::i;18178:110::-;;;;;;;;;;-1:-1:-1;18178:110:0;;;;;:::i;:::-;;:::i;4981:25::-;;;;;;;;;;;;;;;;13331:147;;;;;;;;;;;;;:::i;5872:42::-;;;;;;;;;;;;;;;;13737:225;;;;;;;;;;-1:-1:-1;13737:225:0;;;;;:::i;:::-;;:::i;1480:79::-;;;;;;;;;;-1:-1:-1;1518:7:0;1545:6;-1:-1:-1;;;;;1545:6:0;1480:79;;5922:44;;;;;;;;;;;;;;;;7429:199;;;;;;;;;;-1:-1:-1;7429:199:0;;;;;:::i;:::-;;:::i;18425:157::-;;;;;;;;;;-1:-1:-1;18425:157:0;;;;;:::i;:::-;;:::i;7636:184::-;;;;;;;;;;-1:-1:-1;7636:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7785:18:0;;;7753:7;7785:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7636:184;18300:117;;;;;;;;;;-1:-1:-1;18300:117:0;;;;;:::i;:::-;;:::i;1854:244::-;;;;;;;;;;-1:-1:-1;1854:244:0;;;;;:::i;:::-;;:::i;7828:193::-;7930:4;7952:39;319:10;7975:7;7984:6;7952:8;:39::i;:::-;-1:-1:-1;8009:4:0;7828:193;;;;;:::o;8029:446::-;8161:4;8178:36;8188:6;8196:9;8207:6;8178:9;:36::i;:::-;8225:220;8248:6;319:10;8296:138;8352:6;8296:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8296:19:0;;;;;;:11;:19;;;;;;;;319:10;8296:33;;;;;;;;;;:37;:138::i;:::-;8225:8;:220::i;:::-;-1:-1:-1;8463:4:0;8029:446;;;;;:::o;13970:192::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;;;;;;;;;14049:9:::1;14045:110;14066:7;:14;14063:1;:17;14045:110;;;14125:4;14101:9;:21;14111:7;14119:1;14111:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14101:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14101:21:0;:28;;-1:-1:-1;;14101:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14082:3;::::1;::::0;::::1;:::i;:::-;;;;14045:110;;;;13970:192:::0;:::o;14170:150::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14242:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;::::1;;14238:75;;;-1:-1:-1::0;;;;;14276:17:0;::::1;14296:5;14276:17:::0;;;:9:::1;:17;::::0;;;;:25;;-1:-1:-1;;14276:25:0::1;::::0;;14238:75:::1;14170:150:::0;:::o;18590:173::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;18684:14:::1;:29:::0;;;;18724:15:::1;:31:::0;18590:173::o;18771:91::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;18837:8:::1;:17:::0;18771:91::o;6554:341::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;6718:15:::1;:34:::0;;-1:-1:-1;;;;;;6718:34:0::1;6664:42;6718:34:::0;;::::1;::::0;;;6797:26:::1;::::0;;-1:-1:-1;;;6797:26:0;;;;6664:42;;6797:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;6664:42;6797:26;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6779:66:0::1;;6854:4;6861:16;-1:-1:-1::0;;;;;6861:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6779:106;::::0;-1:-1:-1;;;;;;6779:106:0::1;::::0;;;;;;-1:-1:-1;;;;;6547:15:1;;;6779:106:0::1;::::0;::::1;6529:34:1::0;6599:15;;6579:18;;;6572:43;6464:18;;6779:106:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6763:13;:122:::0;;-1:-1:-1;;;;;;6763:122:0::1;-1:-1:-1::0;;;;;6763:122:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;6554:341:0:o;13488:235::-;13586:17;;-1:-1:-1;;;;;13586:17:0;319:10;-1:-1:-1;;;;;13570:33:0;;13562:42;;;;;;13615:17;:45;;-1:-1:-1;;;;;13615:45:0;;;-1:-1:-1;;;;;;13615:45:0;;;;;;;:17;13671:37;;;:18;:37;;;;;:44;;-1:-1:-1;;13671:44:0;13615:45;13671:44;;;13488:235::o;18065:101::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;18132:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18132:26:0::1;-1:-1:-1::0;;;;18132:26:0;;::::1;::::0;;;::::1;::::0;;18065:101::o;14441:196::-;14507:17;;-1:-1:-1;;;;;14507:17:0;319:10;-1:-1:-1;;;;;14491:33:0;;14483:42;;;;;;14565:21;14597:32;14565:21;14597:12;:32::i;7283:138::-;-1:-1:-1;;;;;7396:16:0;;7349:7;7396:16;;;:7;:16;;;;;;7376:37;;:19;:37::i;1694:148::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;1801:1:::1;1785:6:::0;;1764:40:::1;::::0;-1:-1:-1;;;;;1785:6:0;;::::1;::::0;1764:40:::1;::::0;1801:1;;1764:40:::1;1832:1;1815:19:::0;;-1:-1:-1;;;;;;1815:19:0::1;::::0;;1694:148::o;18178:110::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;18254:12:::1;:26:::0;18178:110::o;13331:147::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;13390:11:::1;::::0;-1:-1:-1;;;13390:11:0;::::1;;;13389:12;13381:21;;;::::0;::::1;;13413:11;:18:::0;;-1:-1:-1;;;;13413:18:0::1;-1:-1:-1::0;;;13413:18:0::1;::::0;;13455:15:::1;13442:10;:28:::0;13331:147::o;13737:225::-;13817:17;;-1:-1:-1;;;;;13817:17:0;319:10;-1:-1:-1;;;;;13801:33:0;;13793:42;;;;;;13864:24;13882:4;13864:9;:24::i;:::-;13854:6;:34;;:48;;;;;13901:1;13892:6;:10;13854:48;13846:73;;;;-1:-1:-1;;;13846:73:0;;6828:2:1;13846:73:0;;;6810:21:1;6867:2;6847:18;;;6840:30;-1:-1:-1;;;6886:18:1;;;6879:42;6938:18;;13846:73:0;6626:336:1;13846:73:0;13930:24;13947:6;13930:16;:24::i;7429:199::-;7534:4;7556:42;319:10;7580:9;7591:6;7556:9;:42::i;18425:157::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;18513:12:::1;:24:::0;;;;18548:13:::1;:26:::0;18425:157::o;18300:117::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;18379:14:::1;:30:::0;18300:117::o;1854:244::-;1607:6;;-1:-1:-1;;;;;1607:6:0;319:10;1607:22;1599:67;;;;-1:-1:-1;;;1599:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1943:22:0;::::1;1935:73;;;::::0;-1:-1:-1;;;1935:73:0;;7169:2:1;1935:73:0::1;::::0;::::1;7151:21:1::0;7208:2;7188:18;;;7181:30;7247:34;7227:18;;;7220:62;-1:-1:-1;;;7298:18:1;;;7291:36;7344:19;;1935:73:0::1;6967:402:1::0;1935:73:0::1;2045:6;::::0;;2024:38:::1;::::0;-1:-1:-1;;;;;2024:38:0;;::::1;::::0;2045:6;::::1;::::0;2024:38:::1;::::0;::::1;2073:6;:17:::0;;-1:-1:-1;;;;;;2073:17:0::1;-1:-1:-1::0;;;;;2073:17:0;;;::::1;::::0;;;::::1;::::0;;1854:244::o;9294:369::-;-1:-1:-1;;;;;9421:19:0;;9413:68;;;;-1:-1:-1;;;9413:68:0;;7576:2:1;9413:68:0;;;7558:21:1;7615:2;7595:18;;;7588:30;7654:34;7634:18;;;7627:62;-1:-1:-1;;;7705:18:1;;;7698:34;7749:19;;9413:68:0;7374:400:1;9413:68:0;-1:-1:-1;;;;;9500:21:0;;9492:68;;;;-1:-1:-1;;;9492:68:0;;7981:2:1;9492:68:0;;;7963:21:1;8020:2;8000:18;;;7993:30;8059:34;8039:18;;;8032:62;-1:-1:-1;;;8110:18:1;;;8103:32;8152:19;;9492:68:0;7779:398:1;9492:68:0;-1:-1:-1;;;;;9571:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9623:32;;2035:25:1;;;9623:32:0;;2008:18:1;9623:32:0;;;;;;;9294:369;;;:::o;9671:2928::-;-1:-1:-1;;;;;9793:18:0;;9785:68;;;;-1:-1:-1;;;9785:68:0;;8384:2:1;9785:68:0;;;8366:21:1;8423:2;8403:18;;;8396:30;8462:34;8442:18;;;8435:62;-1:-1:-1;;;8513:18:1;;;8506:35;8558:19;;9785:68:0;8182:401:1;9785:68:0;-1:-1:-1;;;;;9872:16:0;;9864:64;;;;-1:-1:-1;;;9864:64:0;;8790:2:1;9864:64:0;;;8772:21:1;8829:2;8809:18;;;8802:30;8868:34;8848:18;;;8841:62;-1:-1:-1;;;8919:18:1;;;8912:33;8962:19;;9864:64:0;8588:399:1;9864:64:0;9956:1;9947:6;:10;9939:64;;;;-1:-1:-1;;;9939:64:0;;9194:2:1;9939:64:0;;;9176:21:1;9233:2;9213:18;;;9206:30;9272:34;9252:18;;;9245:62;-1:-1:-1;;;9323:18:1;;;9316:39;9372:19;;9939:64:0;8992:405:1;9939:64:0;-1:-1:-1;;;;;10023:13:0;;;;;;:9;:13;;;;;;;;10022:14;10014:40;;;;-1:-1:-1;;;10014:40:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10074:15:0;;;;;;:9;:15;;;;;;;;10073:16;10065:42;;;;-1:-1:-1;;;10065:42:0;;;;;;;:::i;:::-;319:10;10127:23;;;;:9;:23;;;;;;;;10126:24;10118:50;;;;-1:-1:-1;;;10118:50:0;;;;;;;:::i;:::-;1518:7;1545:6;-1:-1:-1;;;;;10185:15:0;;;1545:6;;10185:15;;;;:32;;-1:-1:-1;1518:7:0;1545:6;-1:-1:-1;;;;;10204:13:0;;;1545:6;;10204:13;;10185:32;10181:1562;;;10253:11;;-1:-1:-1;;;10253:11:0;;;;10248:87;;10285:34;;-1:-1:-1;;;10285:34:0;;9946:2:1;10285:34:0;;;9928:21:1;9985:2;9965:18;;;9958:30;10024:26;10004:18;;;9997:54;10068:18;;10285:34:0;9744:348:1;10248:87:0;10373:13;;-1:-1:-1;;;;;10367:19:0;;;10373:13;;10367:19;:55;;;;-1:-1:-1;10406:15:0;;-1:-1:-1;;;;;10390:32:0;;;10406:15;;10390:32;;10367:55;10363:307;;;-1:-1:-1;;;;;10447:19:0;;10461:4;10447:19;;;;:44;;-1:-1:-1;;;;;;10470:21:0;;10486:4;10470:21;;10447:44;:71;;;;-1:-1:-1;10501:17:0;;-1:-1:-1;;;;;10495:23:0;;;10501:17;;10495:23;;10447:71;:100;;;;-1:-1:-1;10530:17:0;;-1:-1:-1;;;;;10522:25:0;;;10530:17;;10522:25;;10447:100;10443:212;;;10590:12;;10580:6;:22;;10572:63;;;;-1:-1:-1;;;10572:63:0;;10299:2:1;10572:63:0;;;10281:21:1;10338:2;10318:18;;;10311:30;10377;10357:18;;;10350:58;10425:18;;10572:63:0;10097:352:1;10572:63:0;10696:13;;-1:-1:-1;;;;;10690:19:0;;;10696:13;;10690:19;;;;:46;;-1:-1:-1;10719:17:0;;-1:-1:-1;;;;;10713:23:0;;;10719:17;;10713:23;;10690:46;:69;;;;-1:-1:-1;;;;;;10740:19:0;;10754:4;10740:19;;10690:69;:90;;;;-1:-1:-1;;;;;;10763:17:0;;5623:42;10763:17;;10690:90;10686:236;;;10834:14;;10825:6;10809:13;10819:2;10809:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10801:87;;;;-1:-1:-1;;;10801:87:0;;10789:2:1;10801:87:0;;;10771:21:1;10828:2;10808:18;;;10801:30;10867:34;10847:18;;;10840:62;-1:-1:-1;;;10918:18:1;;;10911:33;10961:19;;10801:87:0;10587:399:1;10801:87:0;10950:28;10981:24;10999:4;10981:9;:24::i;:::-;11058:19;;10950:55;;-1:-1:-1;11035:42:0;;;11110:18;;;;-1:-1:-1;11122:6:0;;-1:-1:-1;;;11122:6:0;;;;11121:7;11110:18;:43;;;;-1:-1:-1;11140:13:0;;-1:-1:-1;;;;;11132:21:0;;;11140:13;;11132:21;;11110:43;:58;;;;-1:-1:-1;11157:11:0;;-1:-1:-1;;;11157:11:0;;;;11110:58;:87;;;;-1:-1:-1;;;;;;11173:24:0;;;;;;:18;:24;;;;;;;;11172:25;11110:87;:114;;;;-1:-1:-1;;;;;;11202:22:0;;;;;;:18;:22;;;;;;;;11201:23;11110:114;11106:626;;;11291:8;;11245:19;;11291:12;11287:166;;11342:45;11381:5;11342:34;11367:8;;11342:20;:24;;:34;;;;:::i;:::-;:38;;:45::i;:::-;11328:59;;11410:23;11421:11;11410:10;:23::i;:::-;11471:52;11488:34;11511:11;11488:20;:34;:::i;:::-;11471:16;:52::i;:::-;11571:21;11615:22;;11611:106;;11662:35;11675:21;11662:12;:35::i;:::-;11226:506;;11106:626;10219:1524;;10181:1562;-1:-1:-1;;;;;11800:24:0;;11763:12;11800:24;;;:18;:24;;;;;;11778:4;;11800:24;;;:50;;-1:-1:-1;;;;;;11828:22:0;;;;;;:18;:22;;;;;;;;11800:50;11799:102;;;-1:-1:-1;11864:13:0;;-1:-1:-1;;;;;11856:21:0;;;11864:13;;11856:21;;;;:44;;-1:-1:-1;11887:13:0;;-1:-1:-1;;;;;11881:19:0;;;11887:13;;11881:19;;11856:44;11795:743;;;-1:-1:-1;11928:5:0;11795:743;;;11977:13;;-1:-1:-1;;;;;11969:21:0;;;11977:13;;11969:21;:55;;;;-1:-1:-1;12008:15:0;;-1:-1:-1;;;;;11994:30:0;;;12008:15;;11994:30;;11969:55;11966:350;;;-1:-1:-1;;;;;12049:11:0;;;;;;:7;:11;;;;;12063:15;12049:29;;;;12113:14;;12101:9;:26;12160:12;;12150:7;:22;12218:10;;12199:29;12195:106;;;-1:-1:-1;;;;;12257:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;12257:20:0;12273:4;12257:20;;;12195:106;12346:13;;-1:-1:-1;;;;;12340:19:0;;;12346:13;;12340:19;:55;;;;-1:-1:-1;12379:15:0;;-1:-1:-1;;;;;12363:32:0;;;12379:15;;12363:32;;12340:55;12336:191;;;12450:15;;12438:9;:27;12498:13;;12488:7;:23;12336:191;12550:41;12565:4;12571:2;12575:6;12583:7;12550:14;:41::i;:::-;9774:2825;9671:2928;;;:::o;2466:224::-;2586:7;2622:12;2614:6;;;;2606:29;;;;-1:-1:-1;;;2606:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2646:9:0;2658:5;2662:1;2658;:5;:::i;:::-;2646:17;2466:224;-1:-1:-1;;;;;2466:224:0:o;13224:99::-;13281:17;;:34;;-1:-1:-1;;;;;13281:17:0;;;;:34;;;;;13308:6;;13281:17;:34;:17;:34;13308:6;13281:17;:34;;;;;;;;;;;;;;;;;;;8483:323;8578:7;8636;;8625;:18;;8603:110;;;;-1:-1:-1;;;8603:110:0;;11323:2:1;8603:110:0;;;11305:21:1;11362:2;11342:18;;;11335:30;11401:34;11381:18;;;11374:62;-1:-1:-1;;;11452:18:1;;;11445:40;11502:19;;8603:110:0;11121:406:1;8603:110:0;8724:19;8746:10;:8;:10::i;:::-;8724:32;-1:-1:-1;8774:24:0;:7;8724:32;8774:11;:24::i;:::-;8767:31;8483:323;-1:-1:-1;;;8483:323:0:o;12733:483::-;6116:6;:13;;-1:-1:-1;;;;6116:13:0;-1:-1:-1;;;6116:13:0;;;12835:16:::1;::::0;;12849:1:::1;12835:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12835:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12835:16:0::1;12811:40;;12880:4;12862;12867:1;12862:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12862:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12906:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12906:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12862:7;;12906:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12896:4;12901:1;12896:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12896:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12971:15:::1;::::0;12939:62:::1;::::0;12956:4:::1;::::0;12971:15:::1;12989:11:::0;12939:8:::1;:62::i;:::-;13012:15;::::0;:196:::1;::::0;-1:-1:-1;;;13012:196:0;;-1:-1:-1;;;;;13012:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13093:11;;13012:15:::1;::::0;13135:4;;13162::::1;::::0;13182:15:::1;::::0;13012:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6152:6:0;:14;;-1:-1:-1;;;;6152:14:0;;;-1:-1:-1;;;;12733:483:0:o;2698:246::-;2756:7;2780:6;2776:47;;-1:-1:-1;2810:1:0;2803:8;;2776:47;2833:9;2845:5;2849:1;2845;:5;:::i;:::-;2833:17;-1:-1:-1;2878:1:0;2869:5;2873:1;2833:17;2869:5;:::i;:::-;:10;2861:56;;;;-1:-1:-1;;;2861:56:0;;13114:2:1;2861:56:0;;;13096:21:1;13153:2;13133:18;;;13126:30;13192:34;13172:18;;;13165:62;-1:-1:-1;;;13243:18:1;;;13236:31;13284:19;;2861:56:0;12912:397:1;2952:132:0;3010:7;3037:39;3041:1;3044;3037:39;;;;;;;;;;;;;;;;;:3;:39::i;12607:118::-;12667:50;12685:4;5623:42;12705:11;12667:9;:50::i;14645:282::-;14801:7;14796:28;;14810:14;:12;:14::i;:::-;14835:44;14853:6;14861:9;14872:6;14835:17;:44::i;:::-;14895:7;14890:29;;14904:15;9187:17;;9175:9;:29;9225:15;;9215:7;:25;9262:16;;9251:8;:27;9131:155;17620:166;17662:7;17683:15;17700;17719:19;:17;:19::i;:::-;17682:56;;-1:-1:-1;17682:56:0;-1:-1:-1;17758:20:0;17682:56;;17758:11;:20::i;:::-;17751:27;;;;17620:166;:::o;3092:223::-;3212:7;3247:12;3240:5;3232:28;;;;-1:-1:-1;;;3232:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3271:9:0;3283:5;3287:1;3283;:5;:::i;8814:309::-;8861:9;;:14;:30;;;;-1:-1:-1;8879:7:0;;:12;8861:30;:47;;;;-1:-1:-1;8895:8:0;;:13;8861:47;8857:60;;;8814:309::o;8857:60::-;8953:9;;;8933:17;:29;8991:7;;;8973:15;:25;9028:8;;;9009:16;:27;-1:-1:-1;9057:13:0;;;;9081:11;;;;9103:12;8814:309::o;14935:610::-;15082:15;15112:23;15150:12;15177:23;15215:12;15242:13;15269:19;15280:7;15269:10;:19::i;:::-;-1:-1:-1;;;;;15317:15:0;;;;;;:7;:15;;;;;;15067:221;;-1:-1:-1;15067:221:0;;-1:-1:-1;15067:221:0;;-1:-1:-1;15067:221:0;-1:-1:-1;15067:221:0;-1:-1:-1;15067:221:0;-1:-1:-1;15317:28:0;;15067:221;15317:19;:28::i;:::-;-1:-1:-1;;;;;15299:15:0;;;;;;;:7;:15;;;;;;:46;;;;15377:18;;;;;;;:39;;15400:15;15377:22;:39::i;:::-;-1:-1:-1;;;;;15356:18:0;;;;;;:7;:18;;;;;:60;15427:16;15437:5;15427:9;:16::i;:::-;15454:23;15466:4;15472;15454:11;:23::i;:::-;15510:9;-1:-1:-1;;;;;15493:44:0;15502:6;-1:-1:-1;;;;;15493:44:0;;15521:15;15493:44;;;;2035:25:1;;2023:2;2008:18;;1889:177;15493:44:0;;;;;;;;15056:489;;;;;;14935:610;;;:::o;17794:263::-;17892:7;;17845;;;;4824:12;17960:20;17892:7;4824:12;17960:11;:20::i;:::-;17950:7;:30;17946:61;;;-1:-1:-1;;17990:7:0;;;4824:12;;-1:-1:-1;17794:263:0;-1:-1:-1;17794:263:0:o;17946:61::-;18032:7;;18041;;-1:-1:-1;17794:263:0;-1:-1:-1;17794:263:0:o;15964:625::-;16064:7;16086;16108;16130;16152;16174;16210:23;16235:12;16249:13;16279:40;16291:7;16300:9;;16311:7;;16279:11;:40::i;:::-;16209:110;;;;;;16330:19;16352:10;:8;:10::i;:::-;16330:32;;16374:15;16391:23;16416:12;16445:46;16457:7;16466:4;16472:5;16479:11;16445;:46::i;:::-;16373:118;;-1:-1:-1;16373:118:0;-1:-1:-1;16373:118:0;-1:-1:-1;16552:15:0;;-1:-1:-1;16569:4:0;;-1:-1:-1;16575:5:0;;-1:-1:-1;;;;;15964:625:0;;;;;;;:::o;2322:136::-;2380:7;2407:43;2411:1;2414;2407:43;;;;;;;;;;;;;;;;;:3;:43::i;2135:179::-;2193:7;;2225:5;2229:1;2225;:5;:::i;:::-;2213:17;;2254:1;2249;:6;;2241:46;;;;-1:-1:-1;;;2241:46:0;;13516:2:1;2241:46:0;;;13498:21:1;13555:2;13535:18;;;13528:30;13594:29;13574:18;;;13567:57;13641:18;;2241:46:0;13314:351:1;15553:211:0;15606:19;15628:10;:8;:10::i;:::-;15606:32;-1:-1:-1;15649:13:0;15665:22;:5;15606:32;15665:9;:22::i;:::-;15739:4;15723:22;;;;:7;:22;;;;;;15649:38;;-1:-1:-1;15723:33:0;;15649:38;15723:26;:33::i;:::-;15714:4;15698:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15553:211:0:o;15772:147::-;15850:7;;:17;;15862:4;15850:11;:17::i;:::-;15840:7;:27;15891:10;;:20;;15906:4;15891:14;:20::i;:::-;15878:10;:33;-1:-1:-1;;15772:147:0:o;16597:471::-;16766:7;;;;16860:30;16886:3;16860:21;:7;16872:8;16860:11;:21::i;:30::-;16845:45;-1:-1:-1;16901:13:0;16917:28;16941:3;16917:19;:7;16929:6;16917:11;:19::i;:28::-;16901:44;-1:-1:-1;16956:23:0;16982:28;16901:44;16982:17;:7;16994:4;16982:11;:17::i;:::-;:21;;:28::i;:::-;16956:54;17048:4;;-1:-1:-1;17054:5:0;;-1:-1:-1;16597:471:0;;-1:-1:-1;;;;;16597:471:0:o;17076:536::-;17270:7;;;;17367:24;:7;17379:11;17367;:24::i;:::-;17349:42;-1:-1:-1;17402:12:0;17417:21;:4;17426:11;17417:8;:21::i;:::-;17402:36;-1:-1:-1;17449:13:0;17465:22;:5;17475:11;17465:9;:22::i;:::-;17449:38;-1:-1:-1;17498:23:0;17524:28;17449:38;17524:17;:7;17536:4;17524:11;:17::i;:28::-;17573:7;;;;-1:-1:-1;17599:4:0;;-1:-1:-1;17076:536:0;;-1:-1:-1;;;;;;;17076:536:0:o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1403:247::-;1462:6;1515:2;1503:9;1494:7;1490:23;1486:32;1483:52;;;1531:1;1528;1521:12;1483:52;1570:9;1557:23;1589:31;1614:5;1589:31;:::i;2071:456::-;2148:6;2156;2164;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2272:9;2259:23;2291:31;2316:5;2291:31;:::i;:::-;2341:5;-1:-1:-1;2398:2:1;2383:18;;2370:32;2411:33;2370:32;2411:33;:::i;:::-;2071:456;;2463:7;;-1:-1:-1;;;2517:2:1;2502:18;;;;2489:32;;2071:456::o;2740:127::-;2801:10;2796:3;2792:20;2789:1;2782:31;2832:4;2829:1;2822:15;2856:4;2853:1;2846:15;2872:1121;2956:6;2987:2;3030;3018:9;3009:7;3005:23;3001:32;2998:52;;;3046:1;3043;3036:12;2998:52;3086:9;3073:23;3115:18;3156:2;3148:6;3145:14;3142:34;;;3172:1;3169;3162:12;3142:34;3210:6;3199:9;3195:22;3185:32;;3255:7;3248:4;3244:2;3240:13;3236:27;3226:55;;3277:1;3274;3267:12;3226:55;3313:2;3300:16;3335:2;3331;3328:10;3325:36;;;3341:18;;:::i;:::-;3387:2;3384:1;3380:10;3419:2;3413:9;3482:2;3478:7;3473:2;3469;3465:11;3461:25;3453:6;3449:38;3537:6;3525:10;3522:22;3517:2;3505:10;3502:18;3499:46;3496:72;;;3548:18;;:::i;:::-;3584:2;3577:22;3634:18;;;3668:15;;;;-1:-1:-1;3710:11:1;;;3706:20;;;3738:19;;;3735:39;;;3770:1;3767;3760:12;3735:39;3794:11;;;;3814:148;3830:6;3825:3;3822:15;3814:148;;;3896:23;3915:3;3896:23;:::i;:::-;3884:36;;3847:12;;;;3940;;;;3814:148;;;3981:6;2872:1121;-1:-1:-1;;;;;;;;2872:1121:1:o;4187:248::-;4255:6;4263;4316:2;4304:9;4295:7;4291:23;4287:32;4284:52;;;4332:1;4329;4322:12;4284:52;-1:-1:-1;;4355:23:1;;;4425:2;4410:18;;;4397:32;;-1:-1:-1;4187:248:1:o;4440:180::-;4499:6;4552:2;4540:9;4531:7;4527:23;4523:32;4520:52;;;4568:1;4565;4558:12;4520:52;-1:-1:-1;4591:23:1;;4440:180;-1:-1:-1;4440:180:1:o;4625:273::-;4681:6;4734:2;4722:9;4713:7;4709:23;4705:32;4702:52;;;4750:1;4747;4740:12;4702:52;4789:9;4776:23;4842:5;4835:13;4828:21;4821:5;4818:32;4808:60;;4864:1;4861;4854:12;4903:388;4971:6;4979;5032:2;5020:9;5011:7;5007:23;5003:32;5000:52;;;5048:1;5045;5038:12;5000:52;5087:9;5074:23;5106:31;5131:5;5106:31;:::i;:::-;5156:5;-1:-1:-1;5213:2:1;5198:18;;5185:32;5226:33;5185:32;5226:33;:::i;:::-;5278:7;5268:17;;;4903:388;;;;;:::o;5296:356::-;5498:2;5480:21;;;5517:18;;;5510:30;5576:34;5571:2;5556:18;;5549:62;5643:2;5628:18;;5296:356::o;5657:127::-;5718:10;5713:3;5709:20;5706:1;5699:31;5749:4;5746:1;5739:15;5773:4;5770:1;5763:15;5789:127;5850:10;5845:3;5841:20;5838:1;5831:31;5881:4;5878:1;5871:15;5905:4;5902:1;5895:15;5921:135;5960:3;-1:-1:-1;;5981:17:1;;5978:43;;;6001:18;;:::i;:::-;-1:-1:-1;6048:1:1;6037:13;;5921:135::o;6061:251::-;6131:6;6184:2;6172:9;6163:7;6159:23;6155:32;6152:52;;;6200:1;6197;6190:12;6152:52;6232:9;6226:16;6251:31;6276:5;6251:31;:::i;9402:337::-;9604:2;9586:21;;;9643:2;9623:18;;;9616:30;-1:-1:-1;;;9677:2:1;9662:18;;9655:43;9730:2;9715:18;;9402:337::o;10454:128::-;10494:3;10525:1;10521:6;10518:1;10515:13;10512:39;;;10531:18;;:::i;:::-;-1:-1:-1;10567:9:1;;10454:128::o;10991:125::-;11031:4;11059:1;11056;11053:8;11050:34;;;11064:18;;:::i;:::-;-1:-1:-1;11101:9:1;;10991:125::o;11532:980::-;11794:4;11842:3;11831:9;11827:19;11873:6;11862:9;11855:25;11899:2;11937:6;11932:2;11921:9;11917:18;11910:34;11980:3;11975:2;11964:9;11960:18;11953:31;12004:6;12039;12033:13;12070:6;12062;12055:22;12108:3;12097:9;12093:19;12086:26;;12147:2;12139:6;12135:15;12121:29;;12168:1;12178:195;12192:6;12189:1;12186:13;12178:195;;;12257:13;;-1:-1:-1;;;;;12253:39:1;12241:52;;12348:15;;;;12313:12;;;;12289:1;12207:9;12178:195;;;-1:-1:-1;;;;;;;12429:32:1;;;;12424:2;12409:18;;12402:60;-1:-1:-1;;;12493:3:1;12478:19;12471:35;12390:3;11532:980;-1:-1:-1;;;11532:980:1:o;12517:168::-;12557:7;12623:1;12619;12615:6;12611:14;12608:1;12605:21;12600:1;12593:9;12586:17;12582:45;12579:71;;;12630:18;;:::i;:::-;-1:-1:-1;12670:9:1;;12517:168::o;12690:217::-;12730:1;12756;12746:132;;12800:10;12795:3;12791:20;12788:1;12781:31;12835:4;12832:1;12825:15;12863:4;12860:1;12853:15;12746:132;-1:-1:-1;12892:9:1;;12690:217::o

Swarm Source

ipfs://d560848c83f4d0504106e5bc46721756df0e9c15ea7226c254070a0506e92188
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.