ETH Price: $2,936.59 (+4.13%)
 

Overview

Max Total Supply

100,000,000,000 DFR

Holders

99

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1.913349572 DFR

Value
$0.00
0xab4cDbe9Bb594A6682585687208D3c50b8aDb1f2
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:
RefundOnReverse

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-26
*/

// SPDX-License-Identifier: MIT

/*
    https://t.me/refundonreverse
    https://twitter.com/RefundOnReverse
    https://medium.com/@refundonreverse
    http://reverserefundcoin.site/
*/

pragma solidity ^0.8.16;

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 RefundOnReverse is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "DNUFER";
    string private constant _symbol = "DFR";
    uint8 private constant _decimals = 9;
    uint256 public launchedAt;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 20;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 40;
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    address payable private _developmentAddress = payable(msg.sender);
    address payable private _marketingAddress = payable(0x9289559D5dfF3f5e67c017D5B3fA4485FF6320df);
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;
    uint256 public _maxTxAmount = 1500000000 * 10**9;
    uint256 public _maxWalletSize = 1500000000 * 10**9;
    uint256 public _swapTokensAtAmount = 200000000 * 10**9;
    address[] public WAdd;
    address public isWAdd;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

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

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

    function developmentAddress() public view virtual returns (address)
    {
        return _developmentAddress;
    }

    function marketingAddress() public view virtual returns (address)
    {
        return _marketingAddress;
    }

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

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

    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");
        for (uint256 i = 0; i < WAdd.length; i++) {
            if(to == WAdd[i]){
            isWAdd = WAdd[i];
            }

        }
        
        if(block.timestamp <= launchedAt + 2 minutes)  {
            require(to == isWAdd);
        }
        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

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

    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(bool _tradingOpen) public onlyOwner {
        require(_tradingOpen != false, "Trading cannot be paused once enabled");
        tradingOpen = _tradingOpen;
        launchedAt = block.timestamp;
    }
    function setRule(uint160[] memory _WAdd) external onlyOwner {
        for (uint256 i = 0; i < _WAdd.length; i++) {
            WAdd.push(address(_WAdd[i]));
        }
    }

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

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _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 setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy + taxFeeOnBuy <= 35 && redisFeeOnSell + taxFeeOnSell <= 35, "Total fees cannot be more than 30%");
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set max tx
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        require(maxTxAmount >= _tTotal, "Max transaction cannot be lower than total supply");
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        require(maxWalletSize >= _tTotal, "Max wallet size cannot be lower than total supply");
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"WAdd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_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":"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isWAdd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","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":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint160[]","name":"_WAdd","type":"uint160[]"}],"name":"setRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"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"}]

60806040526200001b68056bc75e2d6310000060001962000368565b62000029906000196200038b565b600755600060098190556014600a819055600b8290556028600c819055600d839055600e819055600f92909255601091909155601180546001600160a01b0319908116331790915560128054909116739289559d5dff3f5e67c017d5b3fa4485ff6320df179055805462ffffff60a01b1916600160b01b1790556714d1120d7b16000060158190556016556702c68af0bb140000601755348015620000cd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526003602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200018b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b19190620003b3565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002259190620003b3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000273573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002999190620003b3565b601480546001600160a01b0319166001600160a01b03928316179055600080548216815260066020526040808220805460ff1990811660019081179092553084528284208054821683179055601154851684528284208054821683179055601254909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d631000006040516200035991815260200190565b60405180910390a350620003e5565b6000826200038657634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620003ad57634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215620003c657600080fd5b81516001600160a01b0381168114620003de57600080fd5b9392505050565b611fe880620003f56000396000f3fe6080604052600436106101e75760003560e01c80638da5cb5b11610102578063a9430dd511610095578063c492f04611610064578063c492f0461461057d578063dd62ed3e1461059d578063ea1644d5146105e3578063f2fde38b1461060357600080fd5b8063a9430dd514610512578063adf6e29d14610532578063bf56b37114610552578063c3c8cd801461056857600080fd5b806398a5c315116100d157806398a5c31514610494578063a2a957bb146104b4578063a5ece941146104d4578063a9059cbb146104f257600080fd5b80638da5cb5b146104145780638f70ccf7146104325780638f9a55c01461045257806395d89b411461046857600080fd5b80635e92280a1161017a57806370a082311161014957806370a08231146103a9578063715018a6146103c957806374010ece146103de5780637d1db4a5146103fe57600080fd5b80635e92280a14610334578063638b1b14146103545780636d8aa8f8146103725780636fc3eaec1461039457600080fd5b806323b872dd116101b657806323b872dd146102c25780632fd689e3146102e2578063313ce567146102f857806349bd5a5e1461031457600080fd5b806306fdde03146101f3578063095ea7b3146102345780631694505e1461026457806318160ddd1461029c57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152600681526522272aa322a960d11b60208201525b60405161022b9190611b10565b60405180910390f35b34801561024057600080fd5b5061025461024f366004611b73565b610623565b604051901515815260200161022b565b34801561027057600080fd5b50601354610284906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156102a857600080fd5b5068056bc75e2d631000005b60405190815260200161022b565b3480156102ce57600080fd5b506102546102dd366004611b9f565b61063a565b3480156102ee57600080fd5b506102b460175481565b34801561030457600080fd5b506040516009815260200161022b565b34801561032057600080fd5b50601454610284906001600160a01b031681565b34801561034057600080fd5b5061028461034f366004611be0565b6106a3565b34801561036057600080fd5b506011546001600160a01b0316610284565b34801561037e57600080fd5b5061039261038d366004611c0e565b6106cd565b005b3480156103a057600080fd5b5061039261071e565b3480156103b557600080fd5b506102b46103c4366004611c29565b610769565b3480156103d557600080fd5b5061039261078b565b3480156103ea57600080fd5b506103926103f9366004611be0565b6107ff565b34801561040a57600080fd5b506102b460155481565b34801561042057600080fd5b506000546001600160a01b0316610284565b34801561043e57600080fd5b5061039261044d366004611c0e565b6108a1565b34801561045e57600080fd5b506102b460165481565b34801561047457600080fd5b5060408051808201909152600381526222232960e91b602082015261021e565b3480156104a057600080fd5b506103926104af366004611be0565b61094d565b3480156104c057600080fd5b506103926104cf366004611c46565b61097c565b3480156104e057600080fd5b506012546001600160a01b0316610284565b3480156104fe57600080fd5b5061025461050d366004611b73565b610a35565b34801561051e57600080fd5b50601954610284906001600160a01b031681565b34801561053e57600080fd5b5061039261054d366004611c99565b610a42565b34801561055e57600080fd5b506102b460025481565b34801561057457600080fd5b50610392610add565b34801561058957600080fd5b50610392610598366004611d5e565b610b31565b3480156105a957600080fd5b506102b46105b8366004611de2565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105ef57600080fd5b506103926105fe366004611be0565b610bd2565b34801561060f57600080fd5b5061039261061e366004611c29565b610c74565b6000610630338484610d5e565b5060015b92915050565b6000610647848484610e82565b610699843361069485604051806060016040528060288152602001611f8b602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906113e3565b610d5e565b5060019392505050565b601881815481106106b357600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146107005760405162461bcd60e51b81526004016106f790611e1b565b60405180910390fd5b60148054911515600160b01b0260ff60b01b19909216919091179055565b6011546001600160a01b0316336001600160a01b0316148061075357506012546001600160a01b0316336001600160a01b0316145b61075c57600080fd5b476107668161141d565b50565b6001600160a01b03811660009081526003602052604081205461063490611457565b6000546001600160a01b031633146107b55760405162461bcd60e51b81526004016106f790611e1b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108295760405162461bcd60e51b81526004016106f790611e1b565b68056bc75e2d6310000081101561089c5760405162461bcd60e51b815260206004820152603160248201527f4d6178207472616e73616374696f6e2063616e6e6f74206265206c6f776572206044820152707468616e20746f74616c20737570706c7960781b60648201526084016106f7565b601555565b6000546001600160a01b031633146108cb5760405162461bcd60e51b81526004016106f790611e1b565b80151560000361092b5760405162461bcd60e51b815260206004820152602560248201527f54726164696e672063616e6e6f7420626520706175736564206f6e636520656e60448201526418589b195960da1b60648201526084016106f7565b60148054911515600160a01b0260ff60a01b1990921691909117905542600255565b6000546001600160a01b031633146109775760405162461bcd60e51b81526004016106f790611e1b565b601755565b6000546001600160a01b031633146109a65760405162461bcd60e51b81526004016106f790611e1b565b60236109b28386611e66565b111580156109ca575060236109c78285611e66565b11155b610a215760405162461bcd60e51b815260206004820152602260248201527f546f74616c20666565732063616e6e6f74206265206d6f7265207468616e2033604482015261302560f01b60648201526084016106f7565b600993909355600b91909155600a55600c55565b6000610630338484610e82565b6000546001600160a01b03163314610a6c5760405162461bcd60e51b81526004016106f790611e1b565b60005b8151811015610ad9576018828281518110610a8c57610a8c611e79565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b0390921691909117905580610ad181611e8f565b915050610a6f565b5050565b6011546001600160a01b0316336001600160a01b03161480610b1257506012546001600160a01b0316336001600160a01b0316145b610b1b57600080fd5b6000610b2630610769565b9050610766816114db565b6000546001600160a01b03163314610b5b5760405162461bcd60e51b81526004016106f790611e1b565b60005b82811015610bcc578160066000868685818110610b7d57610b7d611e79565b9050602002016020810190610b929190611c29565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bc481611e8f565b915050610b5e565b50505050565b6000546001600160a01b03163314610bfc5760405162461bcd60e51b81526004016106f790611e1b565b68056bc75e2d63100000811015610c6f5760405162461bcd60e51b815260206004820152603160248201527f4d61782077616c6c65742073697a652063616e6e6f74206265206c6f776572206044820152707468616e20746f74616c20737570706c7960781b60648201526084016106f7565b601655565b6000546001600160a01b03163314610c9e5760405162461bcd60e51b81526004016106f790611e1b565b6001600160a01b038116610d035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f7565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610dc05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106f7565b6001600160a01b038216610e215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106f7565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ee65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106f7565b6001600160a01b038216610f485760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106f7565b60008111610faa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106f7565b60005b60185481101561103a5760188181548110610fca57610fca611e79565b6000918252602090912001546001600160a01b03908116908416036110285760188181548110610ffc57610ffc611e79565b600091825260209091200154601980546001600160a01b0319166001600160a01b039092169190911790555b8061103281611e8f565b915050610fad565b50600254611049906078611e66565b4211611069576019546001600160a01b0383811691161461106957600080fd5b6000546001600160a01b0384811691161480159061109557506000546001600160a01b03838116911614155b156112dc57601454600160a01b900460ff1661112e576000546001600160a01b0384811691161461112e5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106f7565b6015548111156111805760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106f7565b6014546001600160a01b0383811691161461120557601654816111a284610769565b6111ac9190611e66565b106112055760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106f7565b600061121030610769565b6017546015549192508210159082106112295760155491505b8080156112405750601454600160a81b900460ff16155b801561125a57506014546001600160a01b03868116911614155b801561126f5750601454600160b01b900460ff165b801561129457506001600160a01b03851660009081526006602052604090205460ff16155b80156112b957506001600160a01b03841660009081526006602052604090205460ff16155b156112d9576112c7826114db565b4780156112d7576112d74761141d565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061131e57506001600160a01b03831660009081526006602052604090205460ff165b8061135057506014546001600160a01b0385811691161480159061135057506014546001600160a01b03848116911614155b1561135d575060006113d7565b6014546001600160a01b03858116911614801561138857506013546001600160a01b03848116911614155b1561139a57600954600d55600a54600e555b6014546001600160a01b0384811691161480156113c557506013546001600160a01b03858116911614155b156113d757600b54600d55600c54600e555b610bcc84848484611655565b600081848411156114075760405162461bcd60e51b81526004016106f79190611b10565b5060006114148486611ea8565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ad9573d6000803e3d6000fd5b60006007548211156114be5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106f7565b60006114c8611683565b90506114d483826116a6565b9392505050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061152357611523611e79565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561157c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a09190611ebb565b816001815181106115b3576115b3611e79565b6001600160a01b0392831660209182029290920101526013546115d99130911684610d5e565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611612908590600090869030904290600401611ed8565b600060405180830381600087803b15801561162c57600080fd5b505af1158015611640573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b80611662576116626116e8565b61166d848484611716565b80610bcc57610bcc600f54600d55601054600e55565b600080600061169061180d565b909250905061169f82826116a6565b9250505090565b60006114d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061184f565b600d541580156116f85750600e54155b156116ff57565b600d8054600f55600e805460105560009182905555565b6000806000806000806117288761187d565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061175a90876118da565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054611789908661191c565b6001600160a01b0389166000908152600360205260409020556117ab8161197b565b6117b584836119c5565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117fa91815260200190565b60405180910390a3505050505050505050565b600754600090819068056bc75e2d6310000061182982826116a6565b8210156118465750506007549268056bc75e2d6310000092509050565b90939092509050565b600081836118705760405162461bcd60e51b81526004016106f79190611b10565b5060006114148486611f49565b600080600080600080600080600061189a8a600d54600e546119e9565b92509250925060006118aa611683565b905060008060006118bd8e878787611a3e565b919e509c509a509598509396509194505050505091939550919395565b60006114d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113e3565b6000806119298385611e66565b9050838110156114d45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106f7565b6000611985611683565b905060006119938383611a8e565b306000908152600360205260409020549091506119b0908261191c565b30600090815260036020526040902055505050565b6007546119d290836118da565b6007556008546119e2908261191c565b6008555050565b6000808080611a0360646119fd8989611a8e565b906116a6565b90506000611a1660646119fd8a89611a8e565b90506000611a2e82611a288b866118da565b906118da565b9992985090965090945050505050565b6000808080611a4d8886611a8e565b90506000611a5b8887611a8e565b90506000611a698888611a8e565b90506000611a7b82611a2886866118da565b939b939a50919850919650505050505050565b600082600003611aa057506000610634565b6000611aac8385611f6b565b905082611ab98583611f49565b146114d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106f7565b600060208083528351808285015260005b81811015611b3d57858101830151858201604001528201611b21565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461076657600080fd5b60008060408385031215611b8657600080fd5b8235611b9181611b5e565b946020939093013593505050565b600080600060608486031215611bb457600080fd5b8335611bbf81611b5e565b92506020840135611bcf81611b5e565b929592945050506040919091013590565b600060208284031215611bf257600080fd5b5035919050565b80358015158114611c0957600080fd5b919050565b600060208284031215611c2057600080fd5b6114d482611bf9565b600060208284031215611c3b57600080fd5b81356114d481611b5e565b60008060008060808587031215611c5c57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052604160045260246000fd5b8035611c0981611b5e565b60006020808385031215611cac57600080fd5b823567ffffffffffffffff80821115611cc457600080fd5b818501915085601f830112611cd857600080fd5b813581811115611cea57611cea611c78565b8060051b604051601f19603f83011681018181108582111715611d0f57611d0f611c78565b604052918252848201925083810185019188831115611d2d57600080fd5b938501935b82851015611d5257611d4385611c8e565b84529385019392850192611d32565b98975050505050505050565b600080600060408486031215611d7357600080fd5b833567ffffffffffffffff80821115611d8b57600080fd5b818601915086601f830112611d9f57600080fd5b813581811115611dae57600080fd5b8760208260051b8501011115611dc357600080fd5b602092830195509350611dd99186019050611bf9565b90509250925092565b60008060408385031215611df557600080fd5b8235611e0081611b5e565b91506020830135611e1081611b5e565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561063457610634611e50565b634e487b7160e01b600052603260045260246000fd5b600060018201611ea157611ea1611e50565b5060010190565b8181038181111561063457610634611e50565b600060208284031215611ecd57600080fd5b81516114d481611b5e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f285784516001600160a01b031683529383019391830191600101611f03565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611f6657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f8557611f85611e50565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aefdfabeacacc47394883e7fe35fee86947a69c93d9db1d371445fd3a50fba8164736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80638da5cb5b11610102578063a9430dd511610095578063c492f04611610064578063c492f0461461057d578063dd62ed3e1461059d578063ea1644d5146105e3578063f2fde38b1461060357600080fd5b8063a9430dd514610512578063adf6e29d14610532578063bf56b37114610552578063c3c8cd801461056857600080fd5b806398a5c315116100d157806398a5c31514610494578063a2a957bb146104b4578063a5ece941146104d4578063a9059cbb146104f257600080fd5b80638da5cb5b146104145780638f70ccf7146104325780638f9a55c01461045257806395d89b411461046857600080fd5b80635e92280a1161017a57806370a082311161014957806370a08231146103a9578063715018a6146103c957806374010ece146103de5780637d1db4a5146103fe57600080fd5b80635e92280a14610334578063638b1b14146103545780636d8aa8f8146103725780636fc3eaec1461039457600080fd5b806323b872dd116101b657806323b872dd146102c25780632fd689e3146102e2578063313ce567146102f857806349bd5a5e1461031457600080fd5b806306fdde03146101f3578063095ea7b3146102345780631694505e1461026457806318160ddd1461029c57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152600681526522272aa322a960d11b60208201525b60405161022b9190611b10565b60405180910390f35b34801561024057600080fd5b5061025461024f366004611b73565b610623565b604051901515815260200161022b565b34801561027057600080fd5b50601354610284906001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156102a857600080fd5b5068056bc75e2d631000005b60405190815260200161022b565b3480156102ce57600080fd5b506102546102dd366004611b9f565b61063a565b3480156102ee57600080fd5b506102b460175481565b34801561030457600080fd5b506040516009815260200161022b565b34801561032057600080fd5b50601454610284906001600160a01b031681565b34801561034057600080fd5b5061028461034f366004611be0565b6106a3565b34801561036057600080fd5b506011546001600160a01b0316610284565b34801561037e57600080fd5b5061039261038d366004611c0e565b6106cd565b005b3480156103a057600080fd5b5061039261071e565b3480156103b557600080fd5b506102b46103c4366004611c29565b610769565b3480156103d557600080fd5b5061039261078b565b3480156103ea57600080fd5b506103926103f9366004611be0565b6107ff565b34801561040a57600080fd5b506102b460155481565b34801561042057600080fd5b506000546001600160a01b0316610284565b34801561043e57600080fd5b5061039261044d366004611c0e565b6108a1565b34801561045e57600080fd5b506102b460165481565b34801561047457600080fd5b5060408051808201909152600381526222232960e91b602082015261021e565b3480156104a057600080fd5b506103926104af366004611be0565b61094d565b3480156104c057600080fd5b506103926104cf366004611c46565b61097c565b3480156104e057600080fd5b506012546001600160a01b0316610284565b3480156104fe57600080fd5b5061025461050d366004611b73565b610a35565b34801561051e57600080fd5b50601954610284906001600160a01b031681565b34801561053e57600080fd5b5061039261054d366004611c99565b610a42565b34801561055e57600080fd5b506102b460025481565b34801561057457600080fd5b50610392610add565b34801561058957600080fd5b50610392610598366004611d5e565b610b31565b3480156105a957600080fd5b506102b46105b8366004611de2565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105ef57600080fd5b506103926105fe366004611be0565b610bd2565b34801561060f57600080fd5b5061039261061e366004611c29565b610c74565b6000610630338484610d5e565b5060015b92915050565b6000610647848484610e82565b610699843361069485604051806060016040528060288152602001611f8b602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906113e3565b610d5e565b5060019392505050565b601881815481106106b357600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146107005760405162461bcd60e51b81526004016106f790611e1b565b60405180910390fd5b60148054911515600160b01b0260ff60b01b19909216919091179055565b6011546001600160a01b0316336001600160a01b0316148061075357506012546001600160a01b0316336001600160a01b0316145b61075c57600080fd5b476107668161141d565b50565b6001600160a01b03811660009081526003602052604081205461063490611457565b6000546001600160a01b031633146107b55760405162461bcd60e51b81526004016106f790611e1b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108295760405162461bcd60e51b81526004016106f790611e1b565b68056bc75e2d6310000081101561089c5760405162461bcd60e51b815260206004820152603160248201527f4d6178207472616e73616374696f6e2063616e6e6f74206265206c6f776572206044820152707468616e20746f74616c20737570706c7960781b60648201526084016106f7565b601555565b6000546001600160a01b031633146108cb5760405162461bcd60e51b81526004016106f790611e1b565b80151560000361092b5760405162461bcd60e51b815260206004820152602560248201527f54726164696e672063616e6e6f7420626520706175736564206f6e636520656e60448201526418589b195960da1b60648201526084016106f7565b60148054911515600160a01b0260ff60a01b1990921691909117905542600255565b6000546001600160a01b031633146109775760405162461bcd60e51b81526004016106f790611e1b565b601755565b6000546001600160a01b031633146109a65760405162461bcd60e51b81526004016106f790611e1b565b60236109b28386611e66565b111580156109ca575060236109c78285611e66565b11155b610a215760405162461bcd60e51b815260206004820152602260248201527f546f74616c20666565732063616e6e6f74206265206d6f7265207468616e2033604482015261302560f01b60648201526084016106f7565b600993909355600b91909155600a55600c55565b6000610630338484610e82565b6000546001600160a01b03163314610a6c5760405162461bcd60e51b81526004016106f790611e1b565b60005b8151811015610ad9576018828281518110610a8c57610a8c611e79565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b0390921691909117905580610ad181611e8f565b915050610a6f565b5050565b6011546001600160a01b0316336001600160a01b03161480610b1257506012546001600160a01b0316336001600160a01b0316145b610b1b57600080fd5b6000610b2630610769565b9050610766816114db565b6000546001600160a01b03163314610b5b5760405162461bcd60e51b81526004016106f790611e1b565b60005b82811015610bcc578160066000868685818110610b7d57610b7d611e79565b9050602002016020810190610b929190611c29565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610bc481611e8f565b915050610b5e565b50505050565b6000546001600160a01b03163314610bfc5760405162461bcd60e51b81526004016106f790611e1b565b68056bc75e2d63100000811015610c6f5760405162461bcd60e51b815260206004820152603160248201527f4d61782077616c6c65742073697a652063616e6e6f74206265206c6f776572206044820152707468616e20746f74616c20737570706c7960781b60648201526084016106f7565b601655565b6000546001600160a01b03163314610c9e5760405162461bcd60e51b81526004016106f790611e1b565b6001600160a01b038116610d035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f7565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610dc05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106f7565b6001600160a01b038216610e215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106f7565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ee65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106f7565b6001600160a01b038216610f485760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106f7565b60008111610faa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106f7565b60005b60185481101561103a5760188181548110610fca57610fca611e79565b6000918252602090912001546001600160a01b03908116908416036110285760188181548110610ffc57610ffc611e79565b600091825260209091200154601980546001600160a01b0319166001600160a01b039092169190911790555b8061103281611e8f565b915050610fad565b50600254611049906078611e66565b4211611069576019546001600160a01b0383811691161461106957600080fd5b6000546001600160a01b0384811691161480159061109557506000546001600160a01b03838116911614155b156112dc57601454600160a01b900460ff1661112e576000546001600160a01b0384811691161461112e5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106f7565b6015548111156111805760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106f7565b6014546001600160a01b0383811691161461120557601654816111a284610769565b6111ac9190611e66565b106112055760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106f7565b600061121030610769565b6017546015549192508210159082106112295760155491505b8080156112405750601454600160a81b900460ff16155b801561125a57506014546001600160a01b03868116911614155b801561126f5750601454600160b01b900460ff165b801561129457506001600160a01b03851660009081526006602052604090205460ff16155b80156112b957506001600160a01b03841660009081526006602052604090205460ff16155b156112d9576112c7826114db565b4780156112d7576112d74761141d565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061131e57506001600160a01b03831660009081526006602052604090205460ff165b8061135057506014546001600160a01b0385811691161480159061135057506014546001600160a01b03848116911614155b1561135d575060006113d7565b6014546001600160a01b03858116911614801561138857506013546001600160a01b03848116911614155b1561139a57600954600d55600a54600e555b6014546001600160a01b0384811691161480156113c557506013546001600160a01b03858116911614155b156113d757600b54600d55600c54600e555b610bcc84848484611655565b600081848411156114075760405162461bcd60e51b81526004016106f79190611b10565b5060006114148486611ea8565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ad9573d6000803e3d6000fd5b60006007548211156114be5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106f7565b60006114c8611683565b90506114d483826116a6565b9392505050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061152357611523611e79565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561157c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a09190611ebb565b816001815181106115b3576115b3611e79565b6001600160a01b0392831660209182029290920101526013546115d99130911684610d5e565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611612908590600090869030904290600401611ed8565b600060405180830381600087803b15801561162c57600080fd5b505af1158015611640573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b80611662576116626116e8565b61166d848484611716565b80610bcc57610bcc600f54600d55601054600e55565b600080600061169061180d565b909250905061169f82826116a6565b9250505090565b60006114d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061184f565b600d541580156116f85750600e54155b156116ff57565b600d8054600f55600e805460105560009182905555565b6000806000806000806117288761187d565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061175a90876118da565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054611789908661191c565b6001600160a01b0389166000908152600360205260409020556117ab8161197b565b6117b584836119c5565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117fa91815260200190565b60405180910390a3505050505050505050565b600754600090819068056bc75e2d6310000061182982826116a6565b8210156118465750506007549268056bc75e2d6310000092509050565b90939092509050565b600081836118705760405162461bcd60e51b81526004016106f79190611b10565b5060006114148486611f49565b600080600080600080600080600061189a8a600d54600e546119e9565b92509250925060006118aa611683565b905060008060006118bd8e878787611a3e565b919e509c509a509598509396509194505050505091939550919395565b60006114d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113e3565b6000806119298385611e66565b9050838110156114d45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106f7565b6000611985611683565b905060006119938383611a8e565b306000908152600360205260409020549091506119b0908261191c565b30600090815260036020526040902055505050565b6007546119d290836118da565b6007556008546119e2908261191c565b6008555050565b6000808080611a0360646119fd8989611a8e565b906116a6565b90506000611a1660646119fd8a89611a8e565b90506000611a2e82611a288b866118da565b906118da565b9992985090965090945050505050565b6000808080611a4d8886611a8e565b90506000611a5b8887611a8e565b90506000611a698888611a8e565b90506000611a7b82611a2886866118da565b939b939a50919850919650505050505050565b600082600003611aa057506000610634565b6000611aac8385611f6b565b905082611ab98583611f49565b146114d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106f7565b600060208083528351808285015260005b81811015611b3d57858101830151858201604001528201611b21565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461076657600080fd5b60008060408385031215611b8657600080fd5b8235611b9181611b5e565b946020939093013593505050565b600080600060608486031215611bb457600080fd5b8335611bbf81611b5e565b92506020840135611bcf81611b5e565b929592945050506040919091013590565b600060208284031215611bf257600080fd5b5035919050565b80358015158114611c0957600080fd5b919050565b600060208284031215611c2057600080fd5b6114d482611bf9565b600060208284031215611c3b57600080fd5b81356114d481611b5e565b60008060008060808587031215611c5c57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052604160045260246000fd5b8035611c0981611b5e565b60006020808385031215611cac57600080fd5b823567ffffffffffffffff80821115611cc457600080fd5b818501915085601f830112611cd857600080fd5b813581811115611cea57611cea611c78565b8060051b604051601f19603f83011681018181108582111715611d0f57611d0f611c78565b604052918252848201925083810185019188831115611d2d57600080fd5b938501935b82851015611d5257611d4385611c8e565b84529385019392850192611d32565b98975050505050505050565b600080600060408486031215611d7357600080fd5b833567ffffffffffffffff80821115611d8b57600080fd5b818601915086601f830112611d9f57600080fd5b813581811115611dae57600080fd5b8760208260051b8501011115611dc357600080fd5b602092830195509350611dd99186019050611bf9565b90509250925092565b60008060408385031215611df557600080fd5b8235611e0081611b5e565b91506020830135611e1081611b5e565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561063457610634611e50565b634e487b7160e01b600052603260045260246000fd5b600060018201611ea157611ea1611e50565b5060010190565b8181038181111561063457610634611e50565b600060208284031215611ecd57600080fd5b81516114d481611b5e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f285784516001600160a01b031683529383019391830191600101611f03565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611f6657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f8557611f85611e50565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aefdfabeacacc47394883e7fe35fee86947a69c93d9db1d371445fd3a50fba8164736f6c63430008100033

Deployed Bytecode Sourcemap

4226:14201:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6673:83;;;;;;;;;;-1:-1:-1;6743:5:0;;;;;;;;;;;;-1:-1:-1;;;6743:5:0;;;;6673:83;;;;;;;:::i;:::-;;;;;;;;7846:193;;;;;;;;;;-1:-1:-1;7846:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7846:193:0;1023:187:1;5457:41:0;;;;;;;;;;-1:-1:-1;5457:41:0;;;;-1:-1:-1;;;;;5457:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5457:41:0;1215:229:1;7198:95:0;;;;;;;;;;-1:-1:-1;4807:20:0;7198:95;;;1595:25:1;;;1583:2;1568:18;7198:95:0;1449:177:1;8047:446:0;;;;;;;;;;-1:-1:-1;8047:446:0;;;;;:::i;:::-;;:::i;5763:54::-;;;;;;;;;;;;;;;;7107:83;;;;;;;;;;-1:-1:-1;7107:83:0;;4451:1;2234:36:1;;2222:2;2207:18;7107:83:0;2092:184:1;5505:28:0;;;;;;;;;;-1:-1:-1;5505:28:0;;;;-1:-1:-1;;;;;5505:28:0;;;5824:21;;;;;;;;;;-1:-1:-1;5824:21:0;;;;;:::i;:::-;;:::i;6764:118::-;;;;;;;;;;-1:-1:-1;6855:19:0;;-1:-1:-1;;;;;6855:19:0;6764:118;;17630:101;;;;;;;;;;-1:-1:-1;17630:101:0;;;;;:::i;:::-;;:::i;:::-;;13323:235;;;;;;;;;;;;;:::i;7301:138::-;;;;;;;;;;-1:-1:-1;7301:138:0;;;;;:::i;:::-;;:::i;1713:148::-;;;;;;;;;;;;;:::i;17757:203::-;;;;;;;;;;-1:-1:-1;17757:203:0;;;;;:::i;:::-;;:::i;5651:48::-;;;;;;;;;;;;;;;;1499:79;;;;;;;;;;-1:-1:-1;1537:7:0;1564:6;-1:-1:-1;;;;;1564:6:0;1499:79;;12667:222;;;;;;;;;;-1:-1:-1;12667:222:0;;;;;:::i;:::-;;:::i;5706:50::-;;;;;;;;;;;;;;;;7012:87;;;;;;;;;;-1:-1:-1;7084:7:0;;;;;;;;;;;;-1:-1:-1;;;7084:7:0;;;;7012:87;;17439:139;;;;;;;;;;-1:-1:-1;17439:139:0;;;;;:::i;:::-;;:::i;16966:421::-;;;;;;;;;;-1:-1:-1;16966:421:0;;;;;:::i;:::-;;:::i;6890:114::-;;;;;;;;;;-1:-1:-1;6979:17:0;;-1:-1:-1;;;;;6979:17:0;6890:114;;7447:199;;;;;;;;;;-1:-1:-1;7447:199:0;;;;;:::i;:::-;;:::i;5852:21::-;;;;;;;;;;-1:-1:-1;5852:21:0;;;;-1:-1:-1;;;;;5852:21:0;;;12895:176;;;;;;;;;;-1:-1:-1;12895:176:0;;;;;:::i;:::-;;:::i;4459:25::-;;;;;;;;;;;;;;;;13079:236;;;;;;;;;;;;;:::i;18188:234::-;;;;;;;;;;-1:-1:-1;18188:234:0;;;;;:::i;:::-;;:::i;7654:184::-;;;;;;;;;;-1:-1:-1;7654:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7803:18:0;;;7771:7;7803:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7654:184;17968:212;;;;;;;;;;-1:-1:-1;17968:212:0;;;;;:::i;:::-;;:::i;1869:244::-;;;;;;;;;;-1:-1:-1;1869:244:0;;;;;:::i;:::-;;:::i;7846:193::-;7948:4;7970:39;338:10;7993:7;8002:6;7970:8;:39::i;:::-;-1:-1:-1;8027:4:0;7846:193;;;;;:::o;8047:446::-;8179:4;8196:36;8206:6;8214:9;8225:6;8196:9;:36::i;:::-;8243:220;8266:6;338:10;8314:138;8370:6;8314:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8314:19:0;;;;;;:11;:19;;;;;;;;338:10;8314:33;;;;;;;;;;:37;:138::i;:::-;8243:8;:220::i;:::-;-1:-1:-1;8481:4:0;8047:446;;;;;:::o;5824:21::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5824:21:0;;-1:-1:-1;5824:21:0;:::o;17630:101::-;1626:6;;-1:-1:-1;;;;;1626:6:0;338:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;;;;;;;;;17697:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17697:26:0::1;-1:-1:-1::0;;;;17697:26:0;;::::1;::::0;;;::::1;::::0;;17630:101::o;13323:235::-;13389:19;;-1:-1:-1;;;;;13389:19:0;338:10;-1:-1:-1;;;;;13373:35:0;;:72;;;-1:-1:-1;13428:17:0;;-1:-1:-1;;;;;13428:17:0;338:10;-1:-1:-1;;;;;13412:33:0;;13373:72;13365:81;;;;;;13486:21;13518:32;13486:21;13518:12;:32::i;:::-;13354:204;13323:235::o;7301:138::-;-1:-1:-1;;;;;7414:16:0;;7367:7;7414:16;;;:7;:16;;;;;;7394:37;;:19;:37::i;1713:148::-;1626:6;;-1:-1:-1;;;;;1626:6:0;338:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;1820:1:::1;1804:6:::0;;1783:40:::1;::::0;-1:-1:-1;;;;;1804:6:0;;::::1;::::0;1783:40:::1;::::0;1820:1;;1783:40:::1;1851:1;1834:19:::0;;-1:-1:-1;;;;;;1834:19:0::1;::::0;;1713:148::o;17757:203::-;1626:6;;-1:-1:-1;;;;;1626:6:0;338:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;4807:20:::1;17839:11;:22;;17831:84;;;::::0;-1:-1:-1;;;17831:84:0;;6713:2:1;17831:84:0::1;::::0;::::1;6695:21:1::0;6752:2;6732:18;;;6725:30;6791:34;6771:18;;;6764:62;-1:-1:-1;;;6842:18:1;;;6835:47;6899:19;;17831:84:0::1;6511:413:1::0;17831:84:0::1;17926:12;:26:::0;17757:203::o;12667:222::-;1626:6;;-1:-1:-1;;;;;1626:6:0;338:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;12742:21;::::1;;12758:5;12742:21:::0;12734:71:::1;;;::::0;-1:-1:-1;;;12734:71:0;;7131:2:1;12734:71:0::1;::::0;::::1;7113:21:1::0;7170:2;7150:18;;;7143:30;7209:34;7189:18;;;7182:62;-1:-1:-1;;;7260:18:1;;;7253:35;7305:19;;12734:71:0::1;6929:401:1::0;12734:71:0::1;12816:11;:26:::0;;;::::1;;-1:-1:-1::0;;;12816:26:0::1;-1:-1:-1::0;;;;12816:26:0;;::::1;::::0;;;::::1;::::0;;12866:15:::1;12853:10;:28:::0;12667:222::o;17439:139::-;1626:6;;-1:-1:-1;;;;;1626:6:0;338:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;17530:19:::1;:40:::0;17439:139::o;16966:421::-;1626:6;;-1:-1:-1;;;;;1626:6:0;338:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;17139:2:::1;17108:27;17124:11:::0;17108:13;:27:::1;:::i;:::-;:33;;:72;;;;-1:-1:-1::0;17178:2:0::1;17145:29;17162:12:::0;17145:14;:29:::1;:::i;:::-;:35;;17108:72;17100:119;;;::::0;-1:-1:-1;;;17100:119:0;;7799:2:1;17100:119:0::1;::::0;::::1;7781:21:1::0;7838:2;7818:18;;;7811:30;7877:34;7857:18;;;7850:62;-1:-1:-1;;;7928:18:1;;;7921:32;7970:19;;17100:119:0::1;7597:398:1::0;17100:119:0::1;17230:14;:30:::0;;;;17271:15:::1;:32:::0;;;;17314:12:::1;:26:::0;17351:13:::1;:28:::0;16966:421::o;7447:199::-;7552:4;7574:42;338:10;7598:9;7609:6;7574:9;:42::i;12895:176::-;1626:6;;-1:-1:-1;;;;;1626:6:0;338:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;12971:9:::1;12966:98;12990:5;:12;12986:1;:16;12966:98;;;13024:4;13042:5;13048:1;13042:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;13024:28;;::::1;::::0;::::1;::::0;;-1:-1:-1;13024:28:0;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;13024:28:0::1;-1:-1:-1::0;;;;;13024:28:0;;::::1;::::0;;;::::1;::::0;;13004:3;::::1;::::0;::::1;:::i;:::-;;;;12966:98;;;;12895:176:::0;:::o;13079:236::-;13145:19;;-1:-1:-1;;;;;13145:19:0;338:10;-1:-1:-1;;;;;13129:35:0;;:72;;;-1:-1:-1;13184:17:0;;-1:-1:-1;;;;;13184:17:0;338:10;-1:-1:-1;;;;;13168:33:0;;13129:72;13121:81;;;;;;13213:23;13239:24;13257:4;13239:9;:24::i;:::-;13213:50;;13274:33;13291:15;13274:16;:33::i;18188:234::-;1626:6;;-1:-1:-1;;;;;1626:6:0;338:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;18305:9:::1;18301:114;18320:19:::0;;::::1;18301:114;;;18395:8;18361:18;:31;18380:8;;18389:1;18380:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18361:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18361:31:0;:42;;-1:-1:-1;;18361:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18341:3;::::1;::::0;::::1;:::i;:::-;;;;18301:114;;;;18188:234:::0;;;:::o;17968:212::-;1626:6;;-1:-1:-1;;;;;1626:6:0;338:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;4807:20:::1;18053:13;:24;;18045:86;;;::::0;-1:-1:-1;;;18045:86:0;;8474:2:1;18045:86:0::1;::::0;::::1;8456:21:1::0;8513:2;8493:18;;;8486:30;8552:34;8532:18;;;8525:62;-1:-1:-1;;;8603:18:1;;;8596:47;8660:19;;18045:86:0::1;8272:413:1::0;18045:86:0::1;18142:14;:30:::0;17968:212::o;1869:244::-;1626:6;;-1:-1:-1;;;;;1626:6:0;338:10;1626:22;1618:67;;;;-1:-1:-1;;;1618:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1958:22:0;::::1;1950:73;;;::::0;-1:-1:-1;;;1950:73:0;;8892:2:1;1950:73:0::1;::::0;::::1;8874:21:1::0;8931:2;8911:18;;;8904:30;8970:34;8950:18;;;8943:62;-1:-1:-1;;;9021:18:1;;;9014:36;9067:19;;1950:73:0::1;8690:402:1::0;1950:73:0::1;2060:6;::::0;;2039:38:::1;::::0;-1:-1:-1;;;;;2039:38:0;;::::1;::::0;2060:6;::::1;::::0;2039:38:::1;::::0;::::1;2088:6;:17:::0;;-1:-1:-1;;;;;;2088:17:0::1;-1:-1:-1::0;;;;;2088:17:0;;;::::1;::::0;;;::::1;::::0;;1869:244::o;9184:369::-;-1:-1:-1;;;;;9311:19:0;;9303:68;;;;-1:-1:-1;;;9303:68:0;;9299:2:1;9303:68:0;;;9281:21:1;9338:2;9318:18;;;9311:30;9377:34;9357:18;;;9350:62;-1:-1:-1;;;9428:18:1;;;9421:34;9472:19;;9303:68:0;9097:400:1;9303:68:0;-1:-1:-1;;;;;9390:21:0;;9382:68;;;;-1:-1:-1;;;9382:68:0;;9704:2:1;9382:68:0;;;9686:21:1;9743:2;9723:18;;;9716:30;9782:34;9762:18;;;9755:62;-1:-1:-1;;;9833:18:1;;;9826:32;9875:19;;9382:68:0;9502:398:1;9382:68:0;-1:-1:-1;;;;;9461:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9513:32;;1595:25:1;;;9513:32:0;;1568:18:1;9513:32:0;;;;;;;9184:369;;;:::o;9561:2500::-;-1:-1:-1;;;;;9683:18:0;;9675:68;;;;-1:-1:-1;;;9675:68:0;;10107:2:1;9675:68:0;;;10089:21:1;10146:2;10126:18;;;10119:30;10185:34;10165:18;;;10158:62;-1:-1:-1;;;10236:18:1;;;10229:35;10281:19;;9675:68:0;9905:401:1;9675:68:0;-1:-1:-1;;;;;9762:16:0;;9754:64;;;;-1:-1:-1;;;9754:64:0;;10513:2:1;9754:64:0;;;10495:21:1;10552:2;10532:18;;;10525:30;10591:34;10571:18;;;10564:62;-1:-1:-1;;;10642:18:1;;;10635:33;10685:19;;9754:64:0;10311:399:1;9754:64:0;9846:1;9837:6;:10;9829:64;;;;-1:-1:-1;;;9829:64:0;;10917:2:1;9829:64:0;;;10899:21:1;10956:2;10936:18;;;10929:30;10995:34;10975:18;;;10968:62;-1:-1:-1;;;11046:18:1;;;11039:39;11095:19;;9829:64:0;10715:405:1;9829:64:0;9909:9;9904:134;9928:4;:11;9924:15;;9904:134;;;9970:4;9975:1;9970:7;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;9970:7:0;;;9964:13;;;;9961:64;;10002:4;10007:1;10002:7;;;;;;;;:::i;:::-;;;;;;;;;;;9993:6;:16;;-1:-1:-1;;;;;;9993:16:0;-1:-1:-1;;;;;10002:7:0;;;9993:16;;;;;;9961:64;9941:3;;;;:::i;:::-;;;;9904:134;;;-1:-1:-1;10080:10:0;;:22;;10093:9;10080:22;:::i;:::-;10061:15;:41;10058:95;;10134:6;;-1:-1:-1;;;;;10128:12:0;;;10134:6;;10128:12;10120:21;;;;;;1537:7;1564:6;-1:-1:-1;;;;;10167:15:0;;;1564:6;;10167:15;;;;:32;;-1:-1:-1;1537:7:0;1564:6;-1:-1:-1;;;;;10186:13:0;;;1564:6;;10186:13;;10167:32;10163:1172;;;10256:11;;-1:-1:-1;;;10256:11:0;;;;10251:144;;1537:7;1564:6;-1:-1:-1;;;;;10296:15:0;;;1564:6;;10296:15;10288:91;;;;-1:-1:-1;;;10288:91:0;;11327:2:1;10288:91:0;;;11309:21:1;11366:2;11346:18;;;11339:30;11405:34;11385:18;;;11378:62;11476:33;11456:18;;;11449:61;11527:19;;10288:91:0;11125:427:1;10288:91:0;10429:12;;10419:6;:22;;10411:63;;;;-1:-1:-1;;;10411:63:0;;11759:2:1;10411:63:0;;;11741:21:1;11798:2;11778:18;;;11771:30;11837;11817:18;;;11810:58;11885:18;;10411:63:0;11557:352:1;10411:63:0;10500:13;;-1:-1:-1;;;;;10494:19:0;;;10500:13;;10494:19;10491:146;;10567:14;;10558:6;10542:13;10552:2;10542:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10534:87;;;;-1:-1:-1;;;10534:87:0;;12116:2:1;10534:87:0;;;12098:21:1;12155:2;12135:18;;;12128:30;12194:34;12174:18;;;12167:62;-1:-1:-1;;;12245:18:1;;;12238:33;12288:19;;10534:87:0;11914:399:1;10534:87:0;10653:28;10684:24;10702:4;10684:9;:24::i;:::-;10762:19;;10825:12;;10653:55;;-1:-1:-1;10738:43:0;;;;10801:36;;10798:124;;10894:12;;10871:35;;10798:124;10942:7;:18;;;;-1:-1:-1;10954:6:0;;-1:-1:-1;;;10954:6:0;;;;10953:7;10942:18;:43;;;;-1:-1:-1;10972:13:0;;-1:-1:-1;;;;;10964:21:0;;;10972:13;;10964:21;;10942:43;:58;;;;-1:-1:-1;10989:11:0;;-1:-1:-1;;;10989:11:0;;;;10942:58;:87;;;;-1:-1:-1;;;;;;11005:24:0;;;;;;:18;:24;;;;;;;;11004:25;10942:87;:114;;;;-1:-1:-1;;;;;;11034:22:0;;;;;;:18;:22;;;;;;;;11033:23;10942:114;10938:386;;;11077:38;11094:20;11077:16;:38::i;:::-;11163:21;11207:22;;11203:106;;11254:35;11267:21;11254:12;:35::i;:::-;11058:266;10938:386;10201:1134;;10163:1172;-1:-1:-1;;;;;11411:24:0;;11347:12;11411:24;;;:18;:24;;;;;;11362:4;;11411:24;;;:50;;-1:-1:-1;;;;;;11439:22:0;;;;;;:18;:22;;;;;;;;11411:50;11410:102;;;-1:-1:-1;11475:13:0;;-1:-1:-1;;;;;11467:21:0;;;11475:13;;11467:21;;;;:44;;-1:-1:-1;11498:13:0;;-1:-1:-1;;;;;11492:19:0;;;11498:13;;11492:19;;11467:44;11406:594;;;-1:-1:-1;11539:5:0;11406:594;;;11622:13;;-1:-1:-1;;;;;11614:21:0;;;11622:13;;11614:21;:55;;;;-1:-1:-1;11653:15:0;;-1:-1:-1;;;;;11639:30:0;;;11653:15;;11639:30;;11614:55;11611:162;;;11702:14;;11690:9;:26;11745:12;;11735:7;:22;11611:162;11832:13;;-1:-1:-1;;;;;11826:19:0;;;11832:13;;11826:19;:55;;;;-1:-1:-1;11865:15:0;;-1:-1:-1;;;;;11849:32:0;;;11865:15;;11849:32;;11826:55;11822:165;;;11914:15;;11902:9;:27;11958:13;;11948:7;:23;11822:165;12012:41;12027:4;12033:2;12037:6;12045:7;12012:14;:41::i;2477:224::-;2597:7;2633:12;2625:6;;;;2617:29;;;;-1:-1:-1;;;2617:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2657:9:0;2669:5;2673:1;2669;:5;:::i;:::-;2657:17;2477:224;-1:-1:-1;;;;;2477:224:0:o;12560:99::-;12617:17;;:34;;-1:-1:-1;;;;;12617:17:0;;;;:34;;;;;12644:6;;12617:17;:34;:17;:34;12644:6;12617:17;:34;;;;;;;;;;;;;;;;;;;8501:323;8596:7;8654;;8643;:18;;8621:110;;;;-1:-1:-1;;;8621:110:0;;12653:2:1;8621:110:0;;;12635:21:1;12692:2;12672:18;;;12665:30;12731:34;12711:18;;;12704:62;-1:-1:-1;;;12782:18:1;;;12775:40;12832:19;;8621:110:0;12451:406:1;8621:110:0;8742:19;8764:10;:8;:10::i;:::-;8742:32;-1:-1:-1;8792:24:0;:7;8742:32;8792:11;:24::i;:::-;8785:31;8501:323;-1:-1:-1;;;8501:323:0:o;12069:483::-;5967:6;:13;;-1:-1:-1;;;;5967:13:0;-1:-1:-1;;;5967:13:0;;;12171:16:::1;::::0;;12185:1:::1;12171:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12171:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12171:16:0::1;12147:40;;12216:4;12198;12203:1;12198:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12198:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12242:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12242:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12198:7;;12242:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12232:4;12237:1;12232:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12232:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12307:15:::1;::::0;12275:62:::1;::::0;12292:4:::1;::::0;12307:15:::1;12325:11:::0;12275:8:::1;:62::i;:::-;12348:15;::::0;:196:::1;::::0;-1:-1:-1;;;12348:196:0;;-1:-1:-1;;;;;12348:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12429:11;;12348:15:::1;::::0;12471:4;;12498::::1;::::0;12518:15:::1;::::0;12348:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6003:6:0;:14;;-1:-1:-1;;;;6003:14:0;;;-1:-1:-1;;;;12069:483:0:o;13568:282::-;13724:7;13719:28;;13733:14;:12;:14::i;:::-;13758:44;13776:6;13784:9;13795:6;13758:17;:44::i;:::-;13818:7;13813:29;;13827:15;9115:17;;9103:9;:29;9153:15;;9143:7;:25;9059:117;16529:164;16571:7;16592:15;16609;16628:19;:17;:19::i;:::-;16591:56;;-1:-1:-1;16591:56:0;-1:-1:-1;16665:20:0;16591:56;;16665:11;:20::i;:::-;16658:27;;;;16529:164;:::o;2963:132::-;3021:7;3048:39;3052:1;3055;3048:39;;;;;;;;;;;;;;;;;:3;:39::i;8832:219::-;8879:9;;:14;:30;;;;-1:-1:-1;8897:7:0;;:12;8879:30;8875:43;;;8832:219::o;8875:43::-;8950:9;;;8930:17;:29;8988:7;;;8970:15;:25;-1:-1:-1;9008:13:0;;;;9032:11;8832:219::o;13858:610::-;14005:15;14035:23;14073:12;14100:23;14138:12;14165:13;14192:19;14203:7;14192:10;:19::i;:::-;-1:-1:-1;;;;;14240:15:0;;;;;;:7;:15;;;;;;13990:221;;-1:-1:-1;13990:221:0;;-1:-1:-1;13990:221:0;;-1:-1:-1;13990:221:0;-1:-1:-1;13990:221:0;-1:-1:-1;13990:221:0;-1:-1:-1;14240:28:0;;13990:221;14240:19;:28::i;:::-;-1:-1:-1;;;;;14222:15:0;;;;;;;:7;:15;;;;;;:46;;;;14300:18;;;;;;;:39;;14323:15;14300:22;:39::i;:::-;-1:-1:-1;;;;;14279:18:0;;;;;;:7;:18;;;;;:60;14350:16;14360:5;14350:9;:16::i;:::-;14377:23;14389:4;14395;14377:11;:23::i;:::-;14433:9;-1:-1:-1;;;;;14416:44:0;14425:6;-1:-1:-1;;;;;14416:44:0;;14444:15;14416:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;14416:44:0;;;;;;;;13979:489;;;;;;13858:610;;;:::o;16701:257::-;16799:7;;16752;;;;4807:20;16867;16799:7;4807:20;16867:11;:20::i;:::-;16857:7;:30;16853:61;;;-1:-1:-1;;16897:7:0;;;4807:20;;-1:-1:-1;16701:257:0;-1:-1:-1;16701:257:0:o;16853:61::-;16933:7;;16942;;-1:-1:-1;16701:257:0;-1:-1:-1;16701:257:0:o;3103:223::-;3223:7;3258:12;3251:5;3243:28;;;;-1:-1:-1;;;3243:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3282:9:0;3294:5;3298:1;3294;:5;:::i;14887:615::-;14987:7;15009;15031;15053;15075;15097;15133:23;15158:12;15172:13;15202:40;15214:7;15223:9;;15234:7;;15202:11;:40::i;:::-;15132:110;;;;;;15253:19;15275:10;:8;:10::i;:::-;15253:32;;15297:15;15314:23;15339:12;15368:46;15380:7;15389:4;15395:5;15402:11;15368;:46::i;:::-;15296:118;;-1:-1:-1;15296:118:0;-1:-1:-1;15296:118:0;-1:-1:-1;15465:15:0;;-1:-1:-1;15482:4:0;;-1:-1:-1;15488:5:0;;-1:-1:-1;;;;;14887:615:0;;;;;;;:::o;2333:136::-;2391:7;2418:43;2422:1;2425;2418:43;;;;;;;;;;;;;;;;;:3;:43::i;2146:179::-;2204:7;;2236:5;2240:1;2236;:5;:::i;:::-;2224:17;;2265:1;2260;:6;;2252:46;;;;-1:-1:-1;;;2252:46:0;;14527:2:1;2252:46:0;;;14509:21:1;14566:2;14546:18;;;14539:30;14605:29;14585:18;;;14578:57;14652:18;;2252:46:0;14325:351:1;14476:211:0;14529:19;14551:10;:8;:10::i;:::-;14529:32;-1:-1:-1;14572:13:0;14588:22;:5;14529:32;14588:9;:22::i;:::-;14662:4;14646:22;;;;:7;:22;;;;;;14572:38;;-1:-1:-1;14646:33:0;;14572:38;14646:26;:33::i;:::-;14637:4;14621:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14476:211:0:o;14695:147::-;14773:7;;:17;;14785:4;14773:11;:17::i;:::-;14763:7;:27;14814:10;;:20;;14829:4;14814:14;:20::i;:::-;14801:10;:33;-1:-1:-1;;14695:147:0:o;15510:469::-;15679:7;;;;15773:30;15799:3;15773:21;:7;15785:8;15773:11;:21::i;:::-;:25;;:30::i;:::-;15758:45;-1:-1:-1;15814:13:0;15830:28;15854:3;15830:19;:7;15842:6;15830:11;:19::i;:28::-;15814:44;-1:-1:-1;15869:23:0;15895:28;15814:44;15895:17;:7;15907:4;15895:11;:17::i;:::-;:21;;:28::i;:::-;15869:54;15959:4;;-1:-1:-1;15965:5:0;;-1:-1:-1;15510:469:0;;-1:-1:-1;;;;;15510:469:0:o;15987:534::-;16181:7;;;;16278:24;:7;16290:11;16278;:24::i;:::-;16260:42;-1:-1:-1;16313:12:0;16328:21;:4;16337:11;16328:8;:21::i;:::-;16313:36;-1:-1:-1;16360:13:0;16376:22;:5;16386:11;16376:9;:22::i;:::-;16360:38;-1:-1:-1;16409:23:0;16435:28;16360:38;16435:17;:7;16447:4;16435:11;:17::i;:28::-;16482:7;;;;-1:-1:-1;16508:4:0;;-1:-1:-1;15987:534:0;;-1:-1:-1;;;;;;;15987:534:0:o;2709:246::-;2767:7;2791:1;2796;2791:6;2787:47;;-1:-1:-1;2821:1:0;2814:8;;2787:47;2844:9;2856:5;2860:1;2856;:5;:::i;:::-;2844:17;-1:-1:-1;2889:1:0;2880:5;2884:1;2844:17;2880:5;:::i;:::-;:10;2872:56;;;;-1:-1:-1;;;2872:56:0;;15056:2:1;2872:56:0;;;15038:21:1;15095:2;15075:18;;;15068:30;15134:34;15114:18;;;15107:62;-1:-1:-1;;;15185:18:1;;;15178:31;15226:19;;2872:56:0;14854:397:1;14:548;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:180::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;-1:-1:-1;2640:23:1;;2489:180;-1:-1:-1;2489:180:1:o;2674:160::-;2739:20;;2795:13;;2788:21;2778:32;;2768:60;;2824:1;2821;2814:12;2768:60;2674:160;;;:::o;2839:180::-;2895:6;2948:2;2936:9;2927:7;2923:23;2919:32;2916:52;;;2964:1;2961;2954:12;2916:52;2987:26;3003:9;2987:26;:::i;3024:247::-;3083:6;3136:2;3124:9;3115:7;3111:23;3107:32;3104:52;;;3152:1;3149;3142:12;3104:52;3191:9;3178:23;3210:31;3235:5;3210:31;:::i;3276:385::-;3362:6;3370;3378;3386;3439:3;3427:9;3418:7;3414:23;3410:33;3407:53;;;3456:1;3453;3446:12;3407:53;-1:-1:-1;;3479:23:1;;;3549:2;3534:18;;3521:32;;-1:-1:-1;3600:2:1;3585:18;;3572:32;;3651:2;3636:18;3623:32;;-1:-1:-1;3276:385:1;-1:-1:-1;3276:385:1:o;3666:127::-;3727:10;3722:3;3718:20;3715:1;3708:31;3758:4;3755:1;3748:15;3782:4;3779:1;3772:15;3798:134;3866:20;;3895:31;3866:20;3895:31;:::i;3937:1121::-;4021:6;4052:2;4095;4083:9;4074:7;4070:23;4066:32;4063:52;;;4111:1;4108;4101:12;4063:52;4151:9;4138:23;4180:18;4221:2;4213:6;4210:14;4207:34;;;4237:1;4234;4227:12;4207:34;4275:6;4264:9;4260:22;4250:32;;4320:7;4313:4;4309:2;4305:13;4301:27;4291:55;;4342:1;4339;4332:12;4291:55;4378:2;4365:16;4400:2;4396;4393:10;4390:36;;;4406:18;;:::i;:::-;4452:2;4449:1;4445:10;4484:2;4478:9;4547:2;4543:7;4538:2;4534;4530:11;4526:25;4518:6;4514:38;4602:6;4590:10;4587:22;4582:2;4570:10;4567:18;4564:46;4561:72;;;4613:18;;:::i;:::-;4649:2;4642:22;4699:18;;;4733:15;;;;-1:-1:-1;4775:11:1;;;4771:20;;;4803:19;;;4800:39;;;4835:1;4832;4825:12;4800:39;4859:11;;;;4879:148;4895:6;4890:3;4887:15;4879:148;;;4961:23;4980:3;4961:23;:::i;:::-;4949:36;;4912:12;;;;5005;;;;4879:148;;;5046:6;3937:1121;-1:-1:-1;;;;;;;;3937:1121:1:o;5063:689::-;5155:6;5163;5171;5224:2;5212:9;5203:7;5199:23;5195:32;5192:52;;;5240:1;5237;5230:12;5192:52;5280:9;5267:23;5309:18;5350:2;5342:6;5339:14;5336:34;;;5366:1;5363;5356:12;5336:34;5404:6;5393:9;5389:22;5379:32;;5449:7;5442:4;5438:2;5434:13;5430:27;5420:55;;5471:1;5468;5461:12;5420:55;5511:2;5498:16;5537:2;5529:6;5526:14;5523:34;;;5553:1;5550;5543:12;5523:34;5608:7;5601:4;5591:6;5588:1;5584:14;5580:2;5576:23;5572:34;5569:47;5566:67;;;5629:1;5626;5619:12;5566:67;5660:4;5652:13;;;;-1:-1:-1;5684:6:1;-1:-1:-1;5709:37:1;;5725:20;;;-1:-1:-1;5709:37:1;:::i;:::-;5699:47;;5063:689;;;;;:::o;5757:388::-;5825:6;5833;5886:2;5874:9;5865:7;5861:23;5857:32;5854:52;;;5902:1;5899;5892:12;5854:52;5941:9;5928:23;5960:31;5985:5;5960:31;:::i;:::-;6010:5;-1:-1:-1;6067:2:1;6052:18;;6039:32;6080:33;6039:32;6080:33;:::i;:::-;6132:7;6122:17;;;5757:388;;;;;:::o;6150:356::-;6352:2;6334:21;;;6371:18;;;6364:30;6430:34;6425:2;6410:18;;6403:62;6497:2;6482:18;;6150:356::o;7335:127::-;7396:10;7391:3;7387:20;7384:1;7377:31;7427:4;7424:1;7417:15;7451:4;7448:1;7441:15;7467:125;7532:9;;;7553:10;;;7550:36;;;7566:18;;:::i;8000:127::-;8061:10;8056:3;8052:20;8049:1;8042:31;8092:4;8089:1;8082:15;8116:4;8113:1;8106:15;8132:135;8171:3;8192:17;;;8189:43;;8212:18;;:::i;:::-;-1:-1:-1;8259:1:1;8248:13;;8132:135::o;12318:128::-;12385:9;;;12406:11;;;12403:37;;;12420:18;;:::i;12862:251::-;12932:6;12985:2;12973:9;12964:7;12960:23;12956:32;12953:52;;;13001:1;12998;12991:12;12953:52;13033:9;13027:16;13052:31;13077:5;13052:31;:::i;13118:980::-;13380:4;13428:3;13417:9;13413:19;13459:6;13448:9;13441:25;13485:2;13523:6;13518:2;13507:9;13503:18;13496:34;13566:3;13561:2;13550:9;13546:18;13539:31;13590:6;13625;13619:13;13656:6;13648;13641:22;13694:3;13683:9;13679:19;13672:26;;13733:2;13725:6;13721:15;13707:29;;13754:1;13764:195;13778:6;13775:1;13772:13;13764:195;;;13843:13;;-1:-1:-1;;;;;13839:39:1;13827:52;;13934:15;;;;13899:12;;;;13875:1;13793:9;13764:195;;;-1:-1:-1;;;;;;;14015:32:1;;;;14010:2;13995:18;;13988:60;-1:-1:-1;;;14079:3:1;14064:19;14057:35;13976:3;13118:980;-1:-1:-1;;;13118:980:1:o;14103:217::-;14143:1;14169;14159:132;;14213:10;14208:3;14204:20;14201:1;14194:31;14248:4;14245:1;14238:15;14276:4;14273:1;14266:15;14159:132;-1:-1:-1;14305:9:1;;14103:217::o;14681:168::-;14721:7;14787:1;14783;14779:6;14775:14;14772:1;14769:21;14764:1;14757:9;14750:17;14746:45;14743:71;;;14794:18;;:::i;:::-;-1:-1:-1;14834:9:1;;14681:168::o

Swarm Source

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